PB5.0升级2008全年升级包后 定制内核 生成的NK.nb0无法运行

zzh   2010-3-12 10:16 楼主
第一步:把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添加到内核,谢谢

回复评论 (14)

NK超过32M要在setting里边设置一下的,否则会有问题。
点赞  2010-3-12 10:25
重新试过了,去了很多组件,编译生成NK.bin只有26.9M,但是NK.nb0仍旧是32M,不知什么原因?
点赞  2010-3-12 11:37
NK.NB0是32M正常,这个是根据config.bib生成的,当需要的文件大于32M时会生成NK.NB1。
你可能要看一下BSP中哪里打印了SWI exception!!!这段话
点赞  2010-3-12 11:52
还有我的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
点赞  2010-3-12 12:03
那为什么第一步操作,即把.net compact framework 2.0 add to OS编译生成的NK.bin有27.9M,但NK.nb0只有29M?并且可以运行。
而我这次减少了很多组件,并且编译生成的NK.bin也只有26.9M,但NK.nb0还是有32M?
点赞  2010-3-12 12:12
我的.BN0一直都是32M,不足的地方会补充0,至于你那个29M不清楚为什么
点赞  2010-3-12 12:17
引用: 引用 12 楼 veabol 的回复:
我的.BN0一直都是32M,不足的地方会补充0,至于你那个29M不清楚为什么


你好,请问你没有试过把sql server ce 2.0或sql mobile加入到内核?
点赞  2010-3-12 12:23
先去掉一些其它暂时不用的组件或者加载进去的文件,让NK文件小于32M试试
点赞  2010-3-12 10:25
问题应该不在升级2008年的补丁包上,
可能是你选择了sql mobile,导致NK过大引起的。

你可以看看config.bib里NK配置为多大。
点赞  2010-3-12 10:28
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)



这些是信息
点赞  2010-3-12 11:39
引用: 引用 4 楼 qiushuke 的回复:
重新试过了,去了很多组件,编译生成NK.bin只有26.9M,但是NK.nb0仍旧是32M,不知什么原因?


调整config.bib
点赞  2010-3-12 11:54
我比较了一下,只要是编译后生成不能运行的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...
点赞  2010-3-12 12:02
引用: 引用 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了。
点赞  2010-3-12 12:06
没加过SQL,但是这个应该与SQL无关。
点赞  2010-3-12 12:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复