关于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
?
答案很簡單了。這里大家自己算算就好了。
總結
以上是生活随笔為你收集整理的关于WinCE中config.bib的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信绑定信用卡的优缺点,这些风险必须防范
- 下一篇: WinCE中的RAM-Based Reg