关于WinCE中config.bib的问题

这两天在看关于bootloader的事情。以前的同事提到开机速度的问题,顺便也就提到了nk的大小的问题。这一连串的事情使得想回头再看看config.bib的事情。这篇文章也算来总结下。也接触过一些ARM的芯片以及对应的BSP包。config.bib文件在msdn上一段解释如下:

The Config.bib file is the first place to declare how much memory will be made available to the kernel. A single entry is required and should indicate the default amount of RAM that is possible for the device.

所以我们可以了解到config.bib的作用。接下来我们还是用实际的例子来做解释。例如,本人现在在使用A公司的芯片,该公司的image采用的是XIP的模式,他们BSP包中的config.bib中列出了xip中所设计内容的分配,具体如下:

XIPKERNEL     80200000  00400000  RAMIMAGE
  NK                  80600000  03400000  NANDIMAGE
  CHAIN               83a00000  00001000  RESERVED

我们来做一个简单的加减法,

00400000+03400000+00001000 = 3801000 = 58724352

这里大家晕了。3801000 = 58724352 其中 0x3801000 = 58724352Byte = 58M左右。

呵呵。这下子就看懂了吧。然后我回头来看最终烧录到flash中的xip.nb0文件,就是58M。

这个是一个非主流ARM的image。那我们在回头来看看2440是个什么样子的。

本人手头上有个一个mini2440的板子,现在更新到最新的bsp wince5.0的。我们一起来看看他的config.bib片段。在这里mini2440采用的是nk.bin烧录的形式。原厂提供的nk.bin的大小是25M。好了。我们迫不及待的去看config了。下面是mini2440的config片段:

MEMORY
    NK      80200000  01E00000  RAMIMAGE
    RAM     82000000  01E00000  RAM

我们在来做一个进制转换01E00000  = 31457280 31M. 这里为什么会不一样了呢,我们在看看nk.nb0文件,是30.7M多。这里需要解释的是这两个文件的区别了:

nk.bin和nk.nb0都是CE的镜像。然而,我们在下载的过程中常常会遇到,有时候下载nk.bin,有时确是下载nk.nb0,这两者到底有什么区别呢?
首先,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格式的文件,必须按其格式定义解开到其指定的地址空间的位置才能执行。

这是老生常谈了。我们赶紧看看文章中提及的ROMSIZE。ROMSIZE=01e00000。果不其然。

这一下我们了解了两个知识。一个是config.bib的问题,一个是nk.bin/nb0的问题

下面大家一起来分析一个问题,例如,我用过的S社现在也就是S&C社的一颗ARM芯片。下面我给出它的conifg片段,大家算算他的xip.nb0的大小,猜猜他nk.bin可能的大小:

 

    TINYNK        8CE50000        00600000        RAMIMAGE
    DRIVERS     82000000        00200000        NANDIMAGE
    NK          82200000        01D00000        NANDIMAGE

 

答案很简单了。这里大家自己算算就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】源码分析C++的string实现

转自:源码分析C的string实现 - 知乎 我们平时使用C开发过程中或多或少都会使用std::string,但您了解string具体是如何实现的吗,这里程序喵给大家从源码角度分析一下。 读完本文相信您可以回答以下问题: string的常见的实现方式…

wince bib文件合成

在WINCE中,reg文件和bib文件是两种重要的文件,它影响了整个的CE系统。在解析的过程中,原始的Common.bib, Config.bib, Project.bib, Platform.bib等文件会合成为ce.bib,而原始的Common.reg, Project.reg, Platform.reg等文件会合成Reginit.ini文件,并进一…

WINCE的BIB文件解析

BIB的全称为Binary Image Builder,在Wince编译过程中的最后MakeImage阶段会用到BIB文件,BIB文件的作用是指示构建系统如何构建二进制映像。所有的BIB文件会被合并成CE.bib文件,然后打包工具Romimage.exe会根据BIB文件中的描述来决定哪些文件最…

做一个项目,平时都用到哪些工具提高效率(上)

做.NET 相关项目,Visual Studio 2008,SQL Server 2000/2005是标准的配置,但是,除此之外,还可以应用哪些工具来提高工作效率,让项目做的更轻松。 1 需要一个代码生成工具,生成实体层,数据访问代…

【转】傅里叶分析之掐死教程(完整版)更新于2014.06.06

转自:傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 知乎 作 者:韩 昊 知 乎:Heinrich 微 博:花生油工人 知乎专栏:与时间无关的故事 谨以此文献给大连海事大学的吴楠老师,柳…

wince6.0编译命令分析

下面从CSDN帮助文档简要说明vs2005下面的系统编译命令,这些命令位于Build->Advanced Build Commonds 一共有六条命令,分别是: 1.Sysgen 2.Clean Sysgen 3.Build and Sysgen 4.Rebuild and Clean Sysgen 5.Build Current BSP and Subprojec…

【转】C,C++宏中#与##的讲解

转自:C,C宏中#与##的讲解 - MoreWindows - 博客园 文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C中常用的预定义宏》 宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的…

wince对中文字体的支持

最近情况真的是很糟,小小年纪,得了好几样小毛病,弄得每天都提不起精神来,恍恍惚惚的,幸好有妻子的支持,她不论自己多忙多累,一看到我情绪不好,就给与很多安慰,百般鼓励&a…

提示信息的窗口效果

代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>提示信息的窗口效果<…

【转】C++中如何区分构造函数与重载operator()得到的仿函数?

转自&#xff1a;C中如何区分构造函数与重载operator()得到的仿函数?求大神!_360问答 此外,你觉得仿函数(functor)是否能完全取代function呢? 以下是个人使用C仿函数&#xff0c;function表达式的一些体悟。 首先是定义形式&#xff1a; 构造函数无返回值&#xff0c;而o…

WINCE添加新字体需要注意的一些问题

之前测试使用dgwulm.ttf字体&#xff08;GPS软件WolfNCU中带的&#xff09;&#xff0c;发现了一些添加新字体的时候可能被忽视的问题。 在WINCE系统中&#xff0c;除了将字体文件加入到系统内核NK之外&#xff0c;还可以动态的方式添加新字体&#xff0c;使用函数AddFontReso…

开源CRM Hipergate

Hipergate是一个用java写的开源CRM。有一个在线演示的Demo(http://demo-en.hipergate.org/)&#xff0c;并且支持中文。 该软件运行的屏幕截图请看这里&#xff1a;http://www.hipergate.org/docs/screenshots/ 开发语言&#xff1a; Java 操作系统&#xff1a; 跨平台 软件主…

【转】RAX,eax,ax,ah,al 关系

转自&#xff1a;RAX,eax,ax,ah,al 关系_迪迦 • 奥特曼-CSDN博客_rax和eax |63..32|31..16|15-8|7-0||AH.|AL.||AX.....||EAX............| |RAX...................|一般寄存器:AX、BX、CX、DX AX:累积暂存器&#xff0c;BX:基底暂存器&#xff0c;CX:计数暂存器&#xff0c…

MSDN中关于链接字体的解释(非常有用)

Windows Embedded CE提供了链接字库的能力&#xff0c;它可以将一个或多个字库链接到另一个字库上&#xff0c;前者称为被链接字库&#xff0c;后者称为基本字库。一旦你链接了字库&#xff0c;你就可以使用被链接的字库显示在基本字库中不存在的码字。比如&#xff0c;将日文字…

sharepoint站点移植方案

1、备份网站和内容数据库 "%systemdrive%\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe" -o backup -url http://172.18.33.238:8000 -filename "E:\backup\%date:~0,10%.data" –overwrite 2、备份文件系统…

【转】ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍

转自&#xff1a;ARM 之七 主流编译器&#xff08;armcc、iar、gcc for arm、LLVM(clang)&#xff09;详细介绍_itexp-CSDN博客_armcc 必备 在讲解各编译器之前&#xff0c;必须先了解一下以下文件。这些文件在编译器目录下或者编译生成目标平台的可执行程序时经常见到。此外&a…

WinCE内核裁减(中文字体)及字库和内核的分离

每次定制中文系统时&#xff0c;NK总是比英文大10M左右&#xff0c;启动时在bootloader中将内核Copy到内存时也花时间&#xff0c;同时也占用了很多内存&#xff0c;留给系统和应用的内存就少了10M左右&#xff0c;真是浪费呀&#xff0c;看到都心痛&#xff01;本人研究了一下…

【转】深入浅出理解有限状态机

转自&#xff1a;深入浅出理解有限状态机 - 知乎 有限状态机是一种用来进行对象行为建模的工具&#xff0c;其作用主要是描述对象在它的生命周期内所经历的状态序列&#xff0c;以及如何响应来自外界的各种事件。在计算机科学中&#xff0c;有限状态机被广泛用于建模应用行为、…

2010读书计划

跟别人学着将今年想看的书发出来&#xff1a; 1.Implementing Lean Software Development --Mary and Tom Poppendieck 2.沉浮 3.Algorithm of the intelligent web --haralambos Marmanis 4.数据结构-严蔚敏 还有今年是比较重要的一年&#xff0c;加油。。。转载于:https://ww…

wince 环境变量

wince工程的环境变量在PBInitEnv.bat文件中存储&#xff0c;经测试&#xff0c;如果在下面增加了新的变量&#xff0c;在此文件中会出现