激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

Bootrom功能改進(jìn)經(jīng)驗談

時(shí)間:2024-08-19 20:07:51 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

Bootrom功能改進(jìn)經(jīng)驗談

摘要:以VxWorks嵌入式實(shí)時(shí)操作系統為例,介紹了改進(jìn)啟動(dòng)代碼(Bootrom)功能的四點(diǎn)經(jīng)驗:(1)具備故障保護功能的Bootrom的自我在線(xiàn)更新;(2)增加重啟功能;(3)自動(dòng)運行應用軟件;(4)多種應用軟件的選擇。

VxWorks是美國WindRiver System公司于1983年設計開(kāi)發(fā)后個(gè)運行在目標機上的高性能、可裁減的嵌入式實(shí)時(shí)操作系統(RTOS)。它是一種功能強大而且比較復雜的操作系統,包括了進(jìn)程管理、存儲管理、設備管理、文件系統管理、網(wǎng)絡(luò )協(xié)議及系統應用等幾部分。VxWorks為程序員提供了高效的實(shí)時(shí)多任務(wù)調度、中斷管理、實(shí)時(shí)的系統資源以及實(shí)時(shí)的任務(wù)間通信。其核心功能主要有微內核、任務(wù)間通信機制、網(wǎng)絡(luò )支持、文件系統和I/O管理、POSIX標準實(shí)時(shí)擴展以及C 等其他標準支持。在各種CPU平臺上提供了統一的編程接口和一致的運行特性,盡可能地屏蔽不同CPU之間的底層差異。應用程序員可以將盡可能多的精力放在應用程序本身,而不必關(guān)心系統資源的管理。VxWorks以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應用在通信、軍事、航空、航天等高精類(lèi)技術(shù)及實(shí)時(shí)要求極高的領(lǐng)域中,如衛星通信、彈道制導、飛機導航等。

設計師通常利用VxWorks開(kāi)發(fā)Bootrom代碼。Bootrom相當于PC機中的BIOS,它完成對加載過(guò)程中所需設備的初始化及驅動(dòng);然后,通過(guò)某種可選擇的通信手段(如網(wǎng)口、串口),將VxWorks內核加載。VxWorks內核相關(guān)于PC機上的操作系統,如Linux、Windows。此外,Bootrom還提供了一些輔助功能,如地址內容查看、地址內容修改和Bootrom菜單顯示信息控制等功能。但是,在實(shí)際應用中,這些功能不夠豐富,便利性不足。本文介紹了幾點(diǎn)筆者在工作中行之有效的改進(jìn)Bootrom功能的經(jīng)驗。

1 具備故障保護功能的Bootrom的自我在線(xiàn)更新

Bootrom一般以二進(jìn)制文件的方式保存在非易失懷存儲介質(zhì),例如Flash、CF卡、EPROM中。通常需要仿無(wú)休止器、燒結器或JTAG工具等才能將代碼燒入這類(lèi)介質(zhì),在實(shí)際應用中非常不便。以Flash為例介紹如何在線(xiàn)更新Bootrom。

首先,為了做到故障保護,防止在更新過(guò)程中發(fā)生更新文件出錯、斷電等災難性故障,Bootrom的數據必須在更新之前備份在Flash的另一區域。因此,Flash中必須存在兩片物理區域,暫且命名為PA和PB,每片512KB(假設Bootrom文件小于512KB)。兩片物理區域的起始地址可以互換,其中一片區域的起始地址必須為系統的上電啟動(dòng)地址,這個(gè)地址因處理器而異,例如,PowerPC體系結構的處理器的啟動(dòng)地址一般是0xfff00100,而MIPS體系結構的處理器的啟動(dòng)地址是0xbfc00000。在邏輯上,以啟動(dòng)地址開(kāi)始的區域為主Boot區,另一片區域為備Boot區。

為了實(shí)現地址互聯(lián)換,在CPU模塊和Flash芯片之間,增加了一片CPLD(可編程邏輯器件)和一個(gè)跳線(xiàn)或撥號開(kāi)關(guān),開(kāi)關(guān)信號JP輸入到CPLD。CPU訪(fǎng)問(wèn)Flash的地址信號和片選信號經(jīng)過(guò)CPLD進(jìn)行地址互換,再到Flash芯片。如果不跳線(xiàn)(默認情況),JP信號為高,則PA的起始地址為啟動(dòng)地址,PA為主Boot區,PB為備Boot區;否則,JP信號為低,PB的起始地址為啟動(dòng)地址,PB為主Boot區,PA為備Boot區。默認情況下,PA為主Boot區。如圖1。

如果系統中有兩片Flash芯片,可以不用CPLD,選用另一種地址互換方式,如圖2。兩個(gè)二選一邏輯實(shí)現兩片Flash片選信號(CS)的互換,從而實(shí)現了地址的互換。

地址互換機制屏蔽了PA和PB實(shí)際物理位置的差別,給底層軟件提供了一個(gè)統一的接口,帶來(lái)的好處不言而喻。Bootrom數據總線(xiàn)是從主Boot區備份到備Boot區,系統總是從主Boot區啟動(dòng)。

其次,編寫(xiě)Flash擦寫(xiě)驅動(dòng)函數。Flash是一種讀寫(xiě)非對稱(chēng)器件,讀數據與普通器件一樣,比較簡(jiǎn)單;而寫(xiě)必須根據芯片廠(chǎng)商提供的算法,先擦除欲寫(xiě)入數據的區域,以扇區(Sector)為單位,然后寫(xiě)入數據。函數flashUpdate(char *sourceAddr,char *destAddr,int Length)集成了擦除和寫(xiě)入兩個(gè)步驟。

再次,在文件bootConfig.cr Bootrom操作接口函數bootCmdLoop()中增加新命令“u”(update的編寫(xiě))。

switch(*(pLine )){

……

case 'u'; /*更新Bootrom*/

…… /*下載更新代碼并更新*/

break;

……

}

“u”命令的實(shí)現流程如圖3。除了flashUpdate()之外,其它函數都由VxWorks本身提供。如果更新挫敗,則改變JP設置,從備份Bootrom啟動(dòng),再次更新Bootrom或運行應用軟件。

2 增加重啟功能

VxWorks的Bootrom用戶(hù)命令缺少重啟功能,給調試和實(shí)際應用帶來(lái)諸多不便。與Bootrom在線(xiàn)更新方法相同,增加這項功能其實(shí)并不難,只要在函數bootCmdLoop()中增加新命令“r”(reset的縮寫(xiě)),在命令中調用系統重啟函數sysReboot()即可。SysReboot()由設計師根據系統的不同自行編寫(xiě)。

Switch(*(pLine )){

……

case 'r'; /*重啟系統*/

sysReboot();

break;

……

}

舉一反三,還可以根據需要在Bootrom中增加許多自己的命令

【Bootrom功能改進(jìn)經(jīng)驗談】相關(guān)文章:

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

論我國訴訟費調節功能的缺失和改進(jìn)03-22

改進(jìn)管理 強化功能 參與國際物流市場(chǎng)競爭03-18

制度的功能01-12

聲樂(lè )社會(huì )功能與心理功能的探討03-05

旅游的審美功能03-21

論分部報告的改進(jìn)03-23

如何改進(jìn)成本管理03-22

功能語(yǔ)法視角下的英語(yǔ)報紙新聞標題的功能03-11

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频