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,用来保存资料。
  • 相关阅读:
    洛谷 P1508 Likecloud-吃、吃、吃
    Codevs 1158 尼克的任务
    2017.10.6 国庆清北 D6T2 同余方程组
    2017.10.6 国庆清北 D6T1 排序
    2017.10.3 国庆清北 D3T3 解迷游戏
    2017.10.3 国庆清北 D3T2 公交车
    2017.10.3 国庆清北 D3T1 括号序列
    2017.10.4 国庆清北 D4T1 财富
    2017.10.7 国庆清北 D7T2 第k大区间
    2017.10.7 国庆清北 D7T1 计数
  • 原文地址:https://www.cnblogs.com/AndyGe/p/1562054.html
Copyright © 2011-2022 走看看