编译WINCE60的项目产生了Stepldr.nb0,Stepldr.nb1,stepldr.nb2三个文件,产生的Stepldr.bin文件显示大小为3。98KB,为什么会这样?我要弄NB0文件的话,用那一个呢?Stepldr.nb0,Stepldr.nb1,stepldr.nb2三个文件显示的大小都是4KB。
STEPLDR。BIB文件中的配置情况为:
MEMORY
;-----------------------------------------------------
; NAME ADDRESS SIZE TYPE
;-----------------------------------------------------
STEPLDR 00000000 00001000 RAMIMAGE ; Image:4 KB (in Stepping Stone)
RAM 500F0000 0000C000 RAM ; RAM : 48 KB
STACK 500FC000 00004000 RESERVED; Stack : 16 KB (sharing with Eboot)
CONFIG
COMPRESSION = OFF
PROFILE = OFF
KERNELFIXUPS = ON
ROMOFFSET=FFFFF000
ROMSTART = 00000000
ROMWIDTH = 32
ROMSIZE = 00001000
MODULES
; Name Path Memory Type
; ---------- -------------------------------------------------------------- -----------
nk.exe $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\stepldr.exe STEPLDR
好像wince产生的nb0都会有个4K的头,所以你设置stepldr的长度是4K是不够的
所以他就产生了stepldr.nb0 nb1 nb2等分卷的镜像文件
可以把STEPLDR先设成32K,产生一个nb0,然后再用第三方工具跳过4K的头把需要的部分截取出来
这样行吗?我看BIN的大小不止4KB啊!看了8KB多,分成4KB一个文件,所以会成3个NB0/1/2文件,但为什么在WINDOWS的文件属性看STEPLDR.BIN的大小只有3.98KB?用VIEWBIN工具看却又是显示8KB多.为什么?搞不懂啊!
bin不把一些内存的空洞计入内,所以bin文件实际的大小要小于nb0的大小
wince的romiamge很奇怪,它总是在头上添加一个几乎全零的头,第一条指令就是跳到4K以后的代码执行
反正我拿到的bsp通过截取stepldr.nb0的方法做的
E:\WINCE500\PBWorkspaces\smdk2440a\RelDir\smdk2440a_ARMV4I_Release>debug STEPLDR.nb0
-rcx
CX 3000
:1000
-w 1100
Writing 01000 bytes
-q
引用: 引用 3 楼 hhyh612 的回复:
bin不把一些内存的空洞计入内,所以bin文件实际的大小要小于nb0的大小
wince的romiamge很奇怪,它总是在头上添加一个几乎全零的头,第一条指令就是跳到4K以后的代码执行
反正我拿到的bsp通过截取stepldr.nb0的方法做的
E:\WINCE500\PBWorkspaces\smdk2440a\RelDir\smdk2440a_ARMV4I_Release>debug STEPLDR.nb0
-rcx
CX 3000
:1000
-w 1100
Writing 01000 bytes
-q
------------------------在没有Nor Flash的情况下,怎么烧写NAND FLASH才能正常启动,具体步骤是怎么做的?
把stepldr.nb0烧到nandflash第一个块
然后硬件跳线上要设置成从nand启动就可以了