當(dāng)前位置:首頁 > 嵌入式 > 嵌入式動態(tài)
[導(dǎo)讀] 世界上很少有什么項目能給嵌入式固件開發(fā)人員提供足夠多的開發(fā)時間。事實上,嵌入式固件開發(fā)就好像氣體一樣,會占據(jù)它所在的整個空間。而這往往意味著項目結(jié)束階段的測試和

 世界上很少有什么項目能給嵌入式固件開發(fā)人員提供足夠多的開發(fā)時間。事實上,嵌入式固件開發(fā)就好像氣體一樣,會占據(jù)它所在的整個空間。而這往往意味著項目結(jié)束階段的測試和質(zhì)量評估承受壓力,進而提高風(fēng)險。項目經(jīng)理為如何跟上項目計劃進度發(fā)愁,嵌入式設(shè)計人員和測試工程師也面臨開發(fā)時間和測試覆蓋質(zhì)量之間的矛盾。要是所有人都能實現(xiàn)自己的目標該多好。要是硬件設(shè)計能在代碼完成前就進一步推進該多好。要是固件測試在生產(chǎn)構(gòu)造階段也能繼續(xù)進行該多好。要是整個團隊都能明確如果設(shè)計情況不好,他們總是能夠通過現(xiàn)場升級實現(xiàn)重大修改該多好。這樣,所有人晚上都能睡個安穩(wěn)覺,而通過適當(dāng)利用嵌入式引導(dǎo)加載程序(bootloader),這完全有可能實現(xiàn)。

首先我們先明確一下有關(guān)術(shù)語。引導(dǎo)加載程序是一段常駐微處理器中的代碼,有時也位于只讀存儲器(ROM)中(在工廠制造時編寫)或者位于板載閃存存儲器的預(yù)留區(qū)域??杉虞d引導(dǎo)代碼能載入內(nèi)存并作為正常工作期間在微處理器上運行的主應(yīng)用代碼??杉虞d引導(dǎo)代碼可通過引導(dǎo)加載程序更新。產(chǎn)品固件的現(xiàn)場升級正是通過板載引導(dǎo)加載程序?qū)崿F(xiàn)的。

那么,什么是引導(dǎo)加載程序呢?引導(dǎo)加載程序就是位于給定微控制器上受保護程序存儲器中的一部分代碼。它通常是加電啟動或重啟后運行的第一個軟件,往往針對具體處理器和電路板。引導(dǎo)加載程序可視為一種“笨”代碼,因為它并不了解需要執(zhí)行什么應(yīng)用,甚至也不了解器件功能是什么。引導(dǎo)加載程序?qū)iT用來理解如果通過任意數(shù)量的通訊協(xié)議與外部進行通訊(這些協(xié)議包括UART、I2C、SPI、CAN、以太網(wǎng)等),也可用來了解微控制器的存儲器映射。引導(dǎo)加載程序在發(fā)揮作用時,負責(zé)與外部或主機進行通訊;讀取主機發(fā)送的數(shù)據(jù)文件;更新它所在的微處理器,從而運行所提供的最新應(yīng)用代碼。

 

 

圖1:典型的嵌入式硬件架構(gòu)。

引導(dǎo)加載程序可以在接收到人工操作員(也就是手動重啟)或外設(shè)設(shè)備(即系統(tǒng)主機)的啟動信號后開始工作,視具體嵌入式系統(tǒng)而定。引導(dǎo)加載程序信號首先確認引導(dǎo)加載程序本身是否有效,明確當(dāng)前器件應(yīng)用是否有效,與主機通訊并載入提交的新應(yīng)用,隨后根據(jù)指令執(zhí)行應(yīng)用閃存重寫。大多數(shù)現(xiàn)代微控制器都能對自己的閃存重新編程。典型的引導(dǎo)加載程序在幾微秒內(nèi)就能完成這一工作。不過,存儲器尺寸較大情況下,該時間就會大幅延長,有時甚至要花幾秒鐘才能完成一次更新。一旦完成加載引導(dǎo),引導(dǎo)加載程序必須確認加載引導(dǎo)鏡像,并將控制權(quán)交給加載引導(dǎo)代碼。用于中斷矢量的指針也必須進行設(shè)置。典型情況下,引導(dǎo)加載程序?qū)⑦M行軟重啟,以便讓應(yīng)用掌握控制。圖2給出了引導(dǎo)加載程序的邏輯流程實例。

 

 

圖2:引導(dǎo)加載程序的邏輯流程。

由于引導(dǎo)加載程序是在制造過程中被編程到器件中,并且不是器件工作所必需的首要應(yīng)用,因此實際上可以把它看作是“開銷”代碼。項目經(jīng)理和嵌入式設(shè)計人員必須要考慮引導(dǎo)加載程序所帶來的風(fēng)險保護功能與其所占用的代碼空間相比是否值得。由于這段代碼要占用空間,許多設(shè)計人員需要盡可能減小引導(dǎo)加載程序的存儲器占用量,從而將用于應(yīng)用代碼的存儲器空間實現(xiàn)最大化。引導(dǎo)加載程序至少應(yīng)提供:通訊通道、擦寫并重新編程閃存存儲器的方法以及確認和執(zhí)行新應(yīng)用代碼的方法。

此外,引導(dǎo)加載程序應(yīng)該能夠檢測、報告和處理加載引導(dǎo)操作過程中出現(xiàn)的錯誤,如斷電、通訊損失、閃存寫入錯誤等。一般通過存儲應(yīng)用的校驗和或循環(huán)冗余代碼(CRC)來實現(xiàn)閃存錯誤保護功能。加載引導(dǎo)操作開始后,這些位就會被清空。如果新的應(yīng)用成功下載并安裝,校驗和就會被更新。如果下載過程中出錯(通訊損失、斷電等),那么引導(dǎo)加載程序會檢測無效的校驗位,且不會開始應(yīng)用操作,而是與主機通訊,等待有效的加載引導(dǎo)操作。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉