PB5.0升级2008全年升级包后 定制内核 生成的NK.nb0无法运行
第一步:把PB5.0升级2008全年升级包,在优龙2410开发板资料提供的ARMSYS2410.pbxml基础上把.net compact framework 2.0 add to OS,编译通过,生成的NK.nb0(大小为29M),在DNW下可以通过USB下载到开发板,下载地址为0X30200000,下载后选择Y运行,可以看到wince系统正常启动,同时通过U盘把vs2005编译生成的C#应用程序拷到WINCE下双击可以正常运行;
第二步:在前面基础上把sql mobile add to OS,编译通过生成NK.nb0(大小为32M),同样下载到0X30200000,下载后选择Y运行,DNW显示SWI exception!!!软中断异常,不知什么原因?
第三步:在第一步基础上把sql server ce 2.0,同样上述操作,结果DNW还是显示SWI exception!!!请高手指教,一般wince系统要通过PB把数据库添加到内核需要怎么操作或注意点?sql server ce 2.0对应于sql server 2000,如果我要实现wince下数据库与xp下sql server 2005数据交换,同时C#的应用程序可以同wince下数据库绑定运行,是否应该把sql mobile添加到内核,谢谢
NK超过32M要在setting里边设置一下的,否则会有问题。
重新试过了,去了很多组件,编译生成NK.bin只有26.9M,但是NK.nb0仍旧是32M,不知什么原因?
NK.NB0是32M正常,这个是根据config.bib生成的,当需要的文件大于32M时会生成NK.NB1。
你可能要看一下BSP中哪里打印了SWI exception!!!这段话
还有我的config.bib
MEMORY
NK 80001000 01E00000 RAMIMAGE
RAM 8C200000 01E00000 RAM
FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 8c002000 00000800 RESERVED
SDIO_DMA 8c010000 00010000 RESERVED
ARGS 8C020800 00000800 RESERVED
DBGSER_DMA 8c022000 00002000 RESERVED
SER_DMA 8c024000 00002000 RESERVED
IR_DMA 8c026000 00002000 RESERVED
EDBG 8c030000 00020000 RESERVED
DISPLAY 8c100000 00100000 RESERVED
CONFIG
COMPRESSION=ON
KERNELFIXUPS=ON
IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF
;
; ROMFLAGS is a bitmask of options for the kernel
; ROMFLAGS 0x0001 Disallow Paging
; ROMFLAGS 0x0002 Not all KMode
; ROMFLAGS 0x0010 Trust Module only
;
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ELSE
ROMFLAGS=10
ENDIF
ELSE
IF IMGNOTALLKMODE
ROMFLAGS=02
ELSE
ROMFLAGS=00
ENDIF
ENDIF
ROMSTART=80010000
ROMWIDTH=32
ROMSIZE=02000000
那为什么第一步操作,即把.net compact framework 2.0 add to OS编译生成的NK.bin有27.9M,但NK.nb0只有29M?并且可以运行。
而我这次减少了很多组件,并且编译生成的NK.bin也只有26.9M,但NK.nb0还是有32M?
我的.BN0一直都是32M,不足的地方会补充0,至于你那个29M不清楚为什么
引用: 引用 12 楼 veabol 的回复:
我的.BN0一直都是32M,不足的地方会补充0,至于你那个29M不清楚为什么
你好,请问你没有试过把sql server ce 2.0或sql mobile加入到内核?
先去掉一些其它暂时不用的组件或者加载进去的文件,让NK文件小于32M试试
问题应该不在升级2008年的补丁包上,
可能是你选择了sql mobile,导致NK过大引起的。
你可以看看config.bib里NK配置为多大。
Start 81921fc8 Len 0003ca50
Start 8195ea18 Len 00056614
Start 819b502c Len 00047e84
Start 819fceb0 Len 00039504
Start 81a363b4 Len 00033b64
Start 81a69f18 Len 00067794
Start 81ad16ac Len 00000054
Start 81ad1700 Len 000016f4
Creating rom file E:\WINCE500\PBWorkspaces\ARMSYS2410-2010.03.11\RelDir\smdk2410_ARMV4I_Release\NK.nb0
Done!
Warning: Record starting at ffff1000 is outside of rom range, skipping...
Warning: Record starting at ffff1040 is outside of rom range, skipping...
Warning: Record starting at ffff1048 is outside of rom range, skipping...
Warning: Record starting at ffff2000 is outside of rom range, skipping...
makeimg: Check for E:\WINCE500\PBWorkspaces\ARMSYS2410-2010.03.11\RelDir\smdk2410_ARMV4I_Release\PostRomImage.bat to run.
makeimg: Check for E:\WINCE500\PBWorkspaces\ARMSYS2410-2010.03.11\RelDir\smdk2410_ARMV4I_Release\PostMakeImg.bat to run.
makeimg: Change directory to E:\WINCE500.
makeimg: run command: cmd /C E:\WINCE500\public\common\oak\misc\pbpostmakeimg
驱动器 E 中的卷是 本地磁盘
卷的序列号是 E8EC-F13B
E:\WINCE500\PBWorkspaces\ARMSYS2410-2010.03.11\RelDir\smdk2410_ARMV4I_Release 的目录
2010-03-12 11:29 27,797,207 NK.bin
1 个文件 27,797,207 字节
0 个目录 9,993,744,384 可用字节
BLDDEMO: ARMSYS2410 build complete.
ARMSYS2410 - 0 error(s), 209 warning(s)
这些是信息
引用: 引用 4 楼 qiushuke 的回复:
重新试过了,去了很多组件,编译生成NK.bin只有26.9M,但是NK.nb0仍旧是32M,不知什么原因?
调整config.bib
我比较了一下,只要是编译后生成不能运行的NK.nb0(32M)的几次都有这段话:
Warning: Record starting at ffff1000 is outside of rom range, skipping...
Warning: Record starting at ffff1040 is outside of rom range, skipping...
Warning: Record starting at ffff1048 is outside of rom range, skipping...
Warning: Record starting at ffff2000 is outside of rom range, skipping...
引用: 引用 8 楼 qiushuke 的回复:
我比较了一下,只要是编译后生成不能运行的NK.nb0(32M)的几次都有这段话:
Warning: Record starting at ffff1000 is outside of rom range, skipping...
Warning: Record starting at ffff1040 is outside of rom range, skipping...
Warning: Record starting at ffff1048 is outside of rom range, skipping...
Warning: Record starting at ffff2000 is outside of rom range, skipping...
看信息应该是超过32M了。