<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 基于VxWorks的bootrom代碼改進(jìn)

    時間:2024-07-24 05:05:23 理工畢業(yè)論文 我要投稿
    • 相關(guān)推薦

    基于VxWorks的bootrom代碼改進(jìn)

    摘要:在Wind River公司開發(fā)的VxWorks嵌入式操作系統(tǒng)平臺上,改進(jìn)交換機(jī)產(chǎn)品bootrom軟件的實(shí)現(xiàn)方式;給出實(shí)現(xiàn)方法和改進(jìn)目的,為BSP開發(fā)人員提供一套全新的bootrom實(shí)現(xiàn)方案。

    1 問題的提出

    VxWorks是Wind River公司開發(fā)的一種嵌入式操作系統(tǒng),具有強(qiáng)大的功能和友好的用戶界面。VxWorks軟件應(yīng)用非常廣泛,不僅應(yīng)用在網(wǎng)絡(luò)設(shè)備、家用電器當(dāng)中,而且還應(yīng)用在航天、導(dǎo)彈等高端領(lǐng)域。在網(wǎng)絡(luò)設(shè)備應(yīng)用領(lǐng)域中,通常利用VxWorks來開發(fā)bootrom代碼、BSP(Boadr Support Packet)代碼以及上層的網(wǎng)絡(luò)協(xié)議代碼。

    通常,Bootrom軟件有以下功能:①通過串口下載操作系統(tǒng)映像;②通過串口升級自身映像;③通過串口下載系統(tǒng)配置文件、系統(tǒng)信息文件;④加載操作系統(tǒng)映像,使其正常啟動;⑤其它的輔助功能,如地址內(nèi)容查看功能、址內(nèi)容修改功能和bootrom菜單顯示信息控制的功能等。對于通常的bootrom代碼編譯,大多數(shù)用戶選擇使用GNU make的DOS命令來進(jìn)行。因?yàn)槿绻鸼ootrom不提供網(wǎng)口功能的話,單純的CPU驅(qū)動部分代碼量是不大的;但如果提供網(wǎng)口功能的話,代碼量相對較大,文件之間的內(nèi)在關(guān)系比較復(fù)雜,因此,系統(tǒng)使用GNU make的DOS命令來編譯生成bootrom就顯得有點(diǎn)麻煩。Makefile文件主要是由“目標(biāo)”(target)、“依賴性”(dependencies)和“動作”組成的一系列規(guī)則,而VxWorks提供的GNU make工具就是根據(jù)Makefile指定的規(guī)則來編譯和鏈接程序的。Makefile基本結(jié)構(gòu)雖然簡單,但正確、靈活地運(yùn)用這些規(guī)則并不是那么輕松的事情。即使根據(jù)GNU Makefile規(guī)則書寫出適當(dāng)?shù)腗akefile文件,但隨著代碼的改變,Makefile還需要經(jīng)常修改,這就增加了BSP開發(fā)人員的負(fù)擔(dān)。而且,對于交換產(chǎn)品而言,其成本控制是非常嚴(yán)格的。對于存放bootrom軟件的Flash來說,通常要求大小為512KB,這樣就需要考慮到容量的限制。

    因此,必須使用新的方法來簡化bootrom代碼編譯,而且要在保證提供網(wǎng)口功能的情況下,系統(tǒng)提供的bootrom軟件小于512KB。

    2 實(shí)現(xiàn)方法

    2.1 通過建立工程生成bootrom映像

    采用建立工程的方式可以有效地解決這個問題。首先依據(jù)bootrom中的BSP代碼來新建一個工程,然后將網(wǎng)中驅(qū)動代碼加入到建好的工程中。這樣就可以通過編譯工程實(shí)現(xiàn)帶有網(wǎng)口下載功能的bootrom軟件。但對于VxWorks嵌入式系統(tǒng)而言,它有自己一套規(guī)范,求bootrom軟件在加電后必須從romInit()函數(shù)開始運(yùn)行,而建立工程所得的入口函數(shù)為sysInit()。因此需要增加一個系統(tǒng)殼代碼,這個殼代碼所要完成的任務(wù)就是加載bootrom工程的映像,并從romInit()開始執(zhí)行bootrom代碼。通過建立工程來調(diào)試bootrom代碼有以下優(yōu)點(diǎn)。

    (1)責(zé)任分明

    開發(fā)產(chǎn)品是一個復(fù)雜的工程,需要多人合作完成。對于CPU子系統(tǒng)和網(wǎng)口驅(qū)動系統(tǒng)這兩塊內(nèi)容來說,更需要責(zé)任明確。通過建立工程來調(diào)試代碼,可以準(zhǔn)確地定位錯誤文件和函數(shù)的位置。是BSP代碼出現(xiàn)問題,還是網(wǎng)口驅(qū)動代碼出現(xiàn)問題,可以一目了然,做到責(zé)任明確。

    (2)提高效率

    通過建立工程可以節(jié)省書寫Makefile文件時間,并可以讓VxWorks軟件的友好圖形界面這優(yōu)點(diǎn)得到更好的體現(xiàn)。另外,建立工程也可以減少文件編譯排錯的難度,方便工程文件的調(diào)試以及功能的驗(yàn)證,從而大大提高工作效率,加快工作進(jìn)度。

    2.2 編寫殼代碼并實(shí)現(xiàn)加載

    建立工程生成映像文件的入口函數(shù)為sysInit(),而VxWorks規(guī)范中要求系統(tǒng)加電后要從romInit()函數(shù)開始運(yùn)行。因此,需要設(shè)計一個方案來加載編譯工程得到的映像,而且要具備初始化CPU和SDRAM存儲空間的功能。

    首先,系統(tǒng)從romInit()函數(shù)中開始運(yùn)行,完成CPU和SDRAM初始化,跳轉(zhuǎn)到函數(shù)romStart()運(yùn)行。然后,加載第二份bootrom代碼到系統(tǒng)的低地址處,運(yùn)行殼代碼中的sysInit()函數(shù),并調(diào)用自己構(gòu)造的解壓函數(shù)usrInit(),將壓縮后的工程映像文件解壓縮到系統(tǒng)高地址處,之后系統(tǒng)繼續(xù)運(yùn)行解壓后的bootrom代碼。此時,系統(tǒng)開始運(yùn)行sysInit()函數(shù),調(diào)用VxWorks系統(tǒng)中的usrInit()函數(shù),開始初始化系統(tǒng)硬件、內(nèi)核以及其它外圍設(shè)備。

    殼函數(shù)usrInit()代碼如下:

    void usrInit(void){

    volatile FUNCPTR absEntry;

    if(inflate((UCHAR*)ROM_OFFSET(_binArrayStart),

    (UCHAR *)(RAM_LOW_ADRS),

    【基于VxWorks的bootrom代碼改進(jìn)】相關(guān)文章:

    Bootrom功能改進(jìn)經(jīng)驗(yàn)談03-20

    基于Rhapsody和VxWorks的自動取款機(jī)系統(tǒng)03-18

    基于VxWorks的多DSP系統(tǒng)的多任務(wù)程序設(shè)計03-18

    基于Vxworks實(shí)時操作系統(tǒng)的串口通信程序設(shè)計與實(shí)現(xiàn)03-18

    基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計03-19

    基于改進(jìn)的Ostu閾值的運(yùn)動目標(biāo)分割方法03-07

    基于改進(jìn)的Kalman濾波的雷達(dá)信號PRI估計03-07

    基于員工能力的績效改進(jìn)方案設(shè)計03-25

    基于嵌入式操作系統(tǒng)VxWorks的SCSI硬盤高速記錄系統(tǒng)03-18

    主站蜘蛛池模板: 最新精品亚洲成a人在线观看| 伊人久久精品无码av一区| 麻豆国内精品欧美在线| 国产精品国产精品国产专区不卡| 免费看一级毛片在线观看精品视频 | 欧美精品色婷婷五月综合| 久久国产精品-国产精品| 精品福利视频一区二区三区 | 国产精品久久久久久久久免费| 亚洲国产精品碰碰| 久久精品国产第一区二区| 91嫩草亚洲精品| 国产精品嫩草视频永久网址| 国产精品视频第一区二区三区| 亚洲国产精品福利片在线观看| 青草国产精品视频。| 精品久久久久久国产牛牛app| 99精品欧美一区二区三区| 精品日产一区二区三区手机| 91视频精品全国免费观看| 国产探花在线精品一区二区| 日韩精品久久久肉伦网站| 亚洲国产另类久久久精品 | 国产欧美日韩精品专区| 999久久久国产精品| 91精品国产福利在线观看麻豆| 久久99精品国产99久久6男男| 国产精品国产三级国产专播 | 精品国产一区二区三区免费| 999成人精品视频在线| WWW国产精品内射老师| japanese乱人伦精品| 精品国产91久久久久久久| 国产精品亚洲专区在线观看| 国产成人精品免费视| 国产成人精品综合网站| 久久er热视频在这里精品| 亚洲精品欧美综合在线| 成人精品一区二区久久久| 国产成人精品日本亚洲专区| 国产精品亚洲产品一区二区三区|