- 相關推薦
基于VxWorks的bootrom代碼改進
摘要:在Wind River公司開發(fā)的VxWorks嵌入式操作系統(tǒng)平臺上,改進交換機產(chǎn)品bootrom軟件的實現(xiàn)方式;給出實現(xiàn)方法和改進目的,為BSP開發(fā)人員提供一套全新的bootrom實現(xiàn)方案。關鍵詞:VxWorks bootrom BSP makefile
1 問題的提出
VxWorks是Wind River公司開發(fā)的一種嵌入式操作系統(tǒng),具有強大的功能和友好的用戶界面。VxWorks軟件應用非常廣泛,不僅應用在網(wǎng)絡設備、家用電器當中,而且還應用在航天、導彈等高端領域。在網(wǎng)絡設備應用領域中,通常利用VxWorks來開發(fā)bootrom代碼、BSP(Boadr Support Packet)代碼以及上層的網(wǎng)絡協(xié)議代碼。
通常,Bootrom軟件有以下功能:①通過串口下載操作系統(tǒng)映像;②通過串口升級自身映像;③通過串口下載系統(tǒng)配置文件、系統(tǒng)信息文件;④加載操作系統(tǒng)映像,使其正常啟動;⑤其它的輔助功能,如地址內(nèi)容查看功能、址內(nèi)容修改功能和bootrom菜單顯示信息控制的功能等。對于通常的bootrom代碼編譯,大多數(shù)用戶選擇使用GNU make的DOS命令來進行。因為如果bootrom不提供網(wǎng)口功能的話,單純的CPU驅(qū)動部分代碼量是不大的;但如果提供網(wǎng)口功能的話,代碼量相對較大,文件之間的內(nèi)在關系比較復雜,因此,系統(tǒng)使用GNU make的DOS命令來編譯生成bootrom就顯得有點麻煩。Makefile文件主要是由“目標”(target)、“依賴性”(dependencies)和“動作”組成的一系列規(guī)則,而VxWorks提供的GNU make工具就是根據(jù)Makefile指定的規(guī)則來編譯和鏈接程序的。Makefile基本結(jié)構(gòu)雖然簡單,但正確、靈活地運用這些規(guī)則并不是那么輕松的事情。即使根據(jù)GNU Makefile規(guī)則書寫出適當?shù)腗akefile文件,但隨著代碼的改變,Makefile還需要經(jīng)常修改,這就增加了BSP開發(fā)人員的負擔。而且,對于交換產(chǎn)品而言,其成本控制是非常嚴格的。對于存放bootrom軟件的Flash來說,通常要求大小為512KB,這樣就需要考慮到容量的限制。
因此,必須使用新的方法來簡化bootrom代碼編譯,而且要在保證提供網(wǎng)口功能的情況下,系統(tǒng)提供的bootrom軟件小于512KB。
2 實現(xiàn)方法
2.1 通過建立工程生成bootrom映像
采用建立工程的方式可以有效地解決這個問題。首先依據(jù)bootrom中的BSP代碼來新建一個工程,然后將網(wǎng)中驅(qū)動代碼加入到建好的工程中。這樣就可以通過編譯工程實現(xiàn)帶有網(wǎng)口下載功能的bootrom軟件。但對于VxWorks嵌入式系統(tǒng)而言,它有自己一套規(guī)范,求bootrom軟件在加電后必須從romInit()函數(shù)開始運行,而建立工程所得的入口函數(shù)為sysInit()。因此需要增加一個系統(tǒng)殼代碼,這個殼代碼所要完成的任務就是加載bootrom工程的映像,并從romInit()開始執(zhí)行bootrom代碼。通過建立工程來調(diào)試bootrom代碼有以下優(yōu)點。
(1)責任分明
開發(fā)產(chǎn)品是一個復雜的工程,需要多人合作完成。對于CPU子系統(tǒng)和網(wǎng)口驅(qū)動系統(tǒng)這兩塊內(nèi)容來說,更需要責任明確。通過建立工程來調(diào)試代碼,可以準確地定位錯誤文件和函數(shù)的位置。是BSP代碼出現(xiàn)問題,還是網(wǎng)口驅(qū)動代碼出現(xiàn)問題,可以一目了然,做到責
[1] [2] [3] [4]
【基于VxWorks的bootrom代碼改進】相關文章:
基于EVMS的軟件過程改進04-27
基于嵌入式操作系統(tǒng)VxWorks的實時通訊的實現(xiàn)05-02
基于可視圖法的改進Dijkstra算法05-02
基于改進的HD距離的星圖識別算法04-27