使用平台:omap3530+wince6.0
最近幾個月一直在弄bootloader,利用sd卡公升級系統以及bootloader,主要的功能差不多做完了,但是啟動速度是乙個問題,26m的核心啟動大概需要12~13s的時間,遠遠不能達到使用者的需求,我們決定採用multi-bin來提高啟動速度。工作主要是他做的,我主要跟他打下手,現在功能實現了,我覺得有必要記下來,以便以後查起來方便。
multi-bin的實現需要一些基礎知識:bin檔案格式的理解、bib、reg檔案的配置、binfs的理解記憶eboot中對flash的分割槽操作,這些資料在我的部落格裡都有**的~~~現在說一下實現過程。
if imgmultibin
kernel 84001000 00600000 ramimage ; 6mb
chain 84601000 00001000 reserved ; 4k
nk 84602000 039fe000 nandimage; 64mb - 6mb - 4k - 4k
else
nk 84001000 03fff000 ramimage ; 64mb - 4k
endif
ram 88000000 03000000 ram ; 48mb
display 8b000000 01000000 reserved ; 16mb
這裡說明下,在使用binfs之後,nandimage在bib檔案裡劃分的memory的範圍就屬於binfs管理了,在kernel需要訪問這個記憶體範圍的nb0資料的時候會讓binfs.dll去讀取。
在kernel.bin中包含基本的dll,本例中包含的dll如下所示:
nk.exe
kernel.dll
coredll.dll
k.coredll.dll
oalioctl.dll
filesys.dll
fsdmgr.dll
mspart.dll
romfsd.dll
binfs.dll
boot.hv
k.fpcrt.dll
ceddk.dll
nand.dll
device.dll
devmgr.dll
regenum.dll
busenum.dll
pm.dll
pmext.dll
wince.nls
這些基本的配置過後,最重要的就是在eboot中實現binfs分割槽,這算是我的老本行了,弄了幾個月eboot了,閉上眼都知道怎麼回事~~~~~~
主要就是用微軟提供的那些函式,bp開頭的,這裡不方便貼出來。
這些都弄好後,接下去就是燒寫到flash裡去了,有兩種方式:一種是用pb通過usb或者乙太網燒寫;還有一種就是通過我們自己的公升級方式---sd卡,檔名定義好,解析.bin檔案到flash即可,flash裡儲存的一定是nb0,不然,啟動的時候再解析會很慢。
實現的大致流程就是這樣的,但是我的那個牛人同事用了可移植性比較好的方法,相容原來的方式,用乙個環境變數就可以切換兩種方式,不得不佩服他下~~~
他在c:/wince600/platform/ti_evm_3530/files下新增binfshelper.vbs、kitlrequiredfiles.lst、preromimage.bat、
requiredfiles.lst檔案,修改了config.bib、platform.reg,利用romimage.bat呼叫preromimage.bat檔案,然後呼叫binfshelper.vbs指令碼檔案,將兩個檔案列表中的dll檔案新增到ce.bib檔案中,即成為最終的儲存空間配置檔案,他沒有修改platform.bib檔案,可移植性很強~~
實現後測試啟動時間由原來的12~13s縮減到8s左右,感覺在6.0中實現不了傳說中的2s啟動~~~客戶要求是要5s進作業系統介面,所以,接下來的工作就是優化nanflash驅動,提高讀資料效率。~~
WinCe 下 Mass Storage 的實現
mass storage的實際應用就是u盤,目標板和pc通過usb相連,pc可以把目標板識別為u盤,在很多產品上都很常用。這裡介紹一下在wince系統中u盤功能的實現。在談wince的usb mass storage實現之前,首先要具備以下條件 1.開發板支援usbclient裝置。2.開發板上至少...
WinCE下Socket程式設計
wince下socket程式設計 wince 不支援win32中socket非同步類 那個mfc類忘記啥名字了 在軟體開發中 網路程式設計 是必不可少的基本功了 本文所講的 socket 程式設計也就是網路程式設計中的一種形式 當然你如果想問我什麼叫 socket 很遺憾的是我也不能準確的告訴你!但...
WinCE系統下BootLoader的開發
wince系統下bootloader的開發 未知 引言windows ce.net是微軟公司向嵌入式領域推出的一款作業系統。它最大程度繼承了桌面版windows作業系統的豐富功能,同時又副入了許多新特性,以適應嵌入式領域的實際情況和要求。無論是商業應用需求,還是人們的多 消費需求,都能被採用ce作業...