zoukankan      html  css  js  c++  java
  • nk.bin VS nk.nb0

    bin是一种二进制镜像格式,以片断(section)为单位组织数据,每个片断都包括一个头,头里指定了起始地址,长度,校验值。Platform Builder调用工具将WINCE内核所有文件以bin格式合并成一个文件,默认文件名为nk.bin。BootLoader又以同样的格式将nk.bin分解成多个文件放到RAM中。可以在命令行中键入“viewbin nk.bin”来查看bin文件中具体包括了哪些内容。键入Cvrtbin命令转换.bin格式文件为.sre格式或者.abx格式。

    nb0格式是原始的二进制镜像,它不包括头,一般情况下将内核下载到设备的RAM中运行都采用nb0格式。要生成nbx格式的文件,需要在相关.bib文件中确定如下值:ROMSTART、ROMWIDTH、ROMSIZE。 文件尺寸比bin大,可以直接在ROM或者Flash上运行。


    首先,NK.BIN中的内容是被压缩过的,NK.NB0中的内容是没有压缩的。
    两者大小的区别是因为在生成过程中BIN会将你设定的后面的NULL自动去掉,而NB0就不会。
    NB0的大小就是第三个变量ROMSIZE所设置的大小。
    由于nk.nb0是非压缩的数据,里面的数据就是NK展开以后在内存里面的数据。
    而nk.bin是有压缩的数据,里面的数据是压缩以后类似于成块形的数据,被loader拷贝到内存以后没有区别。
    由于bin文件需要解压,因而其下载方式也不一样, 通常,通过串口直接下载用nb0,pb下载用bin。

    其次,nk.nb0是可以直接烧到FLASH/ROM中的,是代码镜像,可以直接跳转到其入口执行。
    而nk.bin是Microsoft binary image格式的文件,必须按其格式定义解开到其指定的地址空间的位置才能执行


    1 NK.bin和NK.nb0都可下载到RAM中,如果下载到RAM的是NK.bin文件因为是压缩的,显然需要先通过BootLoader进行先解压才能往NAND Flash中烧写。而如果下载到RAM中的NK.nb0就不需要解压了,可以直接烧写到Flash即可。 

    2 至于不能保存文件,则是因为系统的映像都是在RAM中运行的,当断电后当然也就丢失了,可以将文件保存到FLASH中,通常都是把剩余的NandFlash做成ResidentFlash(在资源管理项),例如,一般RAM9学习板的Flash都是64M,系统映像文件可能占用了32M,哪么你还可以用至少30M(BootLoader也要占用空间)作为ResidentFlash,用来保存资料。
  • 相关阅读:
    Linux----------系统管理之释放内存
    阿里云OSS挂载到ECS(注意fuse版本,必须和源码对应)
    数据库图形化管理工具navicat
    linux集群管理工具clustershell
    记一次nginx启动报错
    虚拟化之KVM
    虚拟化之-XEN(未完待续)
    虚拟化
    Linux----------Jenkins基础
    Linux日常系统管理命令
  • 原文地址:https://www.cnblogs.com/AndyGe/p/1562054.html
Copyright © 2011-2022 走看看