基于S3C2410的Windows CE 5.0 BSP移植
3.4 移植小結(jié)
此次移植是升級BSP,而硬件上基本沒有變化,因此很多代碼不需做修改即可使用,通過以上移植,不難發(fā)現(xiàn)此類移植BSP過程中所要做的工作主要在以下幾個方面:
⑴ 修改dir文件,在dir文件中指定了當(dāng)前目錄哪些文件夾被系統(tǒng)編譯,編譯器根據(jù)dir層層搜索,而移植BSP不可避免的帶來了目錄的變化,通過修改dir來指定新的編譯路徑。
⑵ 修改sources文件,在sources文件中,指定了編譯類型有PLATFORM,OAK;編譯的時候引用的庫 sourcelib,targetlib不一樣,移植的時候一定得注意。目標(biāo)文件類型有Library,Dynlink,program;include 字段包含的則是編譯時候所需要的頭文件目錄。有個比較特殊的sources是位于Platform(例如smdk2410)下的sources.cmn,它包含了該平臺的通用庫,頭文件路徑,這個文件在移植過程中需要修改的,否則,編譯出錯。
⑶ 修改platform.bib,platform.reg等文件,因為這兩個文件決定了鏡像中包含哪些模塊(dll)以及注冊表相關(guān)信息,驅(qū)動移植的過程中,每個模塊的改動都需要修改這兩個配置文件。
⑷ 驅(qū)動源文件中的頭文件的修改以及函數(shù),變量修改等,這些依據(jù)編譯時候出現(xiàn)的錯誤來確定。
除此之外,各部分的移植還需特別注意的地方有:
Bootloader部分:因為bootloader下載,燒寫,啟動鏡像過程會涉及到內(nèi)存地址的問題,各種入口地址不能出錯誤,以及內(nèi)存超出范圍,沖突都需要特別小心。尤其是g_oalAddressTable這個表,這個表定義了物理地址虛擬地址之間的轉(zhuǎn)換以及內(nèi)存的大小,如果設(shè)置不正確,將出現(xiàn)校驗錯誤,下載失敗或者鏡像無法啟動等錯誤。
OAL部分:startup.s以及OEMInitDebugSerial兩函數(shù)需要特別注意,這兩個主要是初始化硬件及串口,這是系統(tǒng)運(yùn)行及驅(qū)動調(diào)試的基礎(chǔ),如果硬件配置以及調(diào)試串口有改變,則需要適當(dāng)?shù)男薷?。此次BSP移植,因硬件平臺沒有變化,因此OAL部分很多代碼無須修改即可使用。
驅(qū)動部分:Windows CE4.2與Windows CE5.0的結(jié)構(gòu),庫有了很大的改變,因此需要修改引用庫路徑,以及頭文件的引用路徑,大部分驅(qū)動都將會遇到這樣的問題。
4 結(jié)束語
本文創(chuàng)新點:通過對BSP結(jié)構(gòu)分析,將具體平臺的Windows CE 4.2 BSP移植到Windows CE 5.0版本,包括移植bootloader,OAL,驅(qū)動程序,使之能夠通過編譯并生成鏡像,已經(jīng)能在平臺上成功運(yùn)行。通過這次移植,使筆者體會到BSP 移植是一個挺復(fù)雜,煩瑣的過程,因Windows CE 5.0跟Windows CE 4.2 BSP包的組織結(jié)構(gòu)不同,導(dǎo)致很多鏈接庫無法找到或者是這些庫已經(jīng)被替換,刪除,只有耐心的根據(jù)這些錯誤提示來定位,有時候也需要去makefile里去找答案。不過移植BSP比重新開發(fā)BSP更加節(jié)省開發(fā)時間,從而縮短產(chǎn)品的研發(fā)。
參考文獻(xiàn):
[1] 潘永才,魯啟華,田茂.基于s3c2410的GPS通信實現(xiàn)[J].現(xiàn)代電子技術(shù),2006,15,157-159
[2] 林濤.嵌入式操作系統(tǒng)Windows CE的研究[J].微計算機(jī)信息,2006,6-2,91-93
[3] 呂秀平,李小民.Windows CE.NET的定制和裁剪[J].科學(xué)技術(shù)與工程.6卷第21期,2006年11月,p3483-3486
[4] 曹榮,劉峰.一種DSP嵌入式多媒體應(yīng)用系統(tǒng)板級支持包的研究[J] .第26卷第3期,2006年3月,p746-748
[5] 何宗健.Windows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.
評論