1. BIN:
Microsoft Windows CE binary image data format(.bin)文件格式中包含若干个独立的纪录(section),需要分别加载到ram中执行。.bin文件格式可以使得映像尺寸最小,加载时间短,但需要Boot loader给于解释加载才能运行。
2. NB0:
.nb0文件就是可执行映像在嵌入式系统中运行时的二进制数据的快照。nb0文件的尺寸要比bin大,但是可以直接运行。
通常,通过串口直接下载用nb0,PB通过网线下载用bin。
3. 关于系统内核
nk.nb0是代码镜像,可以直接跳转到其入口执行。
而nk.bin是Microsoft binary image格式的文件,必须按其格式定义解开到其指定的地址空间的位置才能执行。
Bootloader可以支持下载NB0也可支持下载BIN。比较常见的做法是Bootloader将nk.bin文件减压成nk.nb0后,通过网线下载到RAM里。再用Bootloader的功能,将RAM里面特定地址空间(就是装有nk.nb0的那块地址空间)里的内容打包,压缩成nk.bin格式,烧写到Flash里面。下次启动系统,就可以直接解压Flash里面的已有系统了。
这里提到的bin是一种二进制镜像格式,以片断(section)为单位组织数据,每个片断都包括一个头,头里指定了起始地址,长度,校验值。Platform Builder调用工具将WINCE内核所有文件以bin格式合并成一个文件,默认文件名为nk.bin。
BootLoader又以同样的格式将 nk.bin分解成多个文件放到RAM中。可以在命令行中键入“viewbin nk.bin”来查看bin文件中具体包括了哪些内容。键入Cvrtbin命令转换.bin格式文件为.sre格式或者.abx格式。
要生成nbx格式的文件,需要在相关.bib文件中确定如下值:ROMSTART、ROMWIDTH、ROMSIZE。
在config.bib(boot.bib)文件中,有如下三个设置:
bin文件的格式:
BIN文件的详细格式如下:
文件头(长度:7字节,内容固定),相当于字符串“B000FF”加一个回车符
42 30 30 30 46 46 0A
紧跟着的是整个映像的基本信息:(8字节)
00 00 00 00 00 00 00 00
映射到的首地址 整个映像的长度
接下来是各个段的定义
00 00 00 00 00 00 00 00 00 00 00 00 00 00 …… 00 00
段的首地址 段的长度 校验码 映像数据,长度已给出
每个段的定义都同上面一样。