在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>VxWorks的bootrom代碼改進解析

VxWorks的bootrom代碼改進解析

2017-11-08 | rar | 0.3 MB | 次下載 | 1積分

資料介紹

摘要:在Wind River公司開發的VxWorks嵌入式操作系統平臺上,改進交換機產品bootrom軟件的實現方式;給出實現方法和改進目的,為BSP開發人員提供一套全新的bootrom實現方案。?

?????? 關鍵詞:VxWorks bootrom BSP makefile?

1 問題的提出?

?????? VxWorks是Wind River公司開發的一種嵌入式操作系統,具有強大的功能和友好的用戶界面。VxWorks軟件應用非常廣泛,不僅應用在網絡設備、家用電器當中,而且還應用在航天、導彈等高端領域。在網絡設備應用領域中,通常利用VxWorks來開發bootrom代碼、BSP(Boadr Support Packet)代碼以及上層的網絡協議代碼。?

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

?????? 因此,必須使用新的方法來簡化bootrom代碼編譯,而且要在保證提供網口功能的情況下,系統提供的bootrom軟件小于512KB。?
VxWorks的bootrom代碼改進解析
?

2 實現方法?

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

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

?????? (1)責任分明?

?????? 開發產品是一個復雜的工程,需要多人合作完成。對于CPU子系統和網口驅動系統這兩塊內容來說,更需要責任明確。通過建立工程來調試代碼,可以準確地定位錯誤文件和函數的位置。是BSP代碼出現問題,還是網口驅動代碼出現問題,可以一目了然,做到責任明確。?

?????? (2)提高效率?

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

2.2 編寫殼代碼并實現加載?

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

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

?????? 殼函數usrInit()代碼如下:?

void usrInit(void){?

volatile FUNCPTR absEntry;?

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

(UCHAR *)(RAM_LOW_ADRS),&_binArrayEndbinArrayStart)!=OK)?

return;?

absEntry=(FUNCPTR)(RAM_LOW_ADRS);?

(absEntry)();?

}?

?????? 其中RAM_LOW_ADRS為系統低地址,是操作系統運行的起始地址,但bootrom可以利用低地址來實現在系統高地址的運行。宏ROM_OFFSET用于準確定位函數地址,因為bootrom中運行的代碼要求以相對地址方式來尋址,而不能以絕對地址方式尋址。_binArrayStart為壓縮后二進制代碼的開始符,_binArrayEnd為壓縮后二進制代碼的結束符。Inflate()是VxWorks軟件的解壓縮函數,用于解壓縮由deflate()壓縮函數壓縮的二進制文件映像。同時,需要將下述代碼添加到編譯規則文件rules.vxWorks中的相應部分:?

$(CC)-c $(CFLAGS)$(BSP_DIR)/unzip.c-o$(BSP_DIR)/unzip.o?

$(LD)$(LDFLAGS)-e sysInit -Ttext $(RAM_LOW_ADRS)o?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 美女写真福利视频 | 色婷婷影院 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 亚洲一区二区三区免费看 | 天天色综| tom影院亚洲国产一区二区 | 色多多视频在线 | 亚洲色图偷窥自拍 | 免费的毛片网站 | 国模极品一区二区三区 | 久久综合九色综合97婷婷群聊 | 5151hh四虎国产精品 | 在线天堂资源www中文在线 | 香蕉久久夜色精品国产小说 | 性做久久久久久网站 | 欧美性猛交xxxxbbbb | 国产成人av在线 | 欧美黄色一级片视频 | 91九色porny蝌蚪 | 好硬好大好爽女房东在线观看 | 日韩美女奶水喂男人在线观看 | 日本加勒比视频在线观看 | 日本三级香港三级三级人!妇久 | 182tv免费视视频线路一二三 | 欧美特黄三级在线观看 | 欧美一级乱理片免费观看 | 国产成人精品曰本亚洲 | 无遮挡很爽很污很黄在线网站 | 欧美色综合高清免费 | 久久久久久久综合 | 免费国产黄网站在线观看视频 | 婷婷六月激情 | 1024国产高清精品推荐 | 四虎影视4hu4虎成人 | 色天使色护士 在线视频观看 | 日本三级日产三级国产三级 | 欧美色吧视频在线观看 | 天天干中文字幕 | 人人干人人艹 | 欧美日a| 国产精品久久1024 |