Bootloader:讓嵌入式設計更具有前瞻性

    2013-10-23 23:00 來源:電子信息網(wǎng) 作者:和靜

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

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

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

    1

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

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

    1 2 3 4 > 
    嵌入式 Bootloader

    相關(guān)閱讀

    暫無數(shù)據(jù)

    一周熱門

    亚洲中文字幕乱码一区| 亚洲国产综合久久天堂| 亚洲?V乱码久久精品蜜桃| 亚洲AV无码国产精品色| 亚洲精品国产成人中文| 亚洲国产精品久久久久网站| 国产亚洲成av人片在线观看| 青青草原亚洲视频| 在线观看国产区亚洲一区成人| 亚洲人成色7777在线观看不卡| 国产av无码专区亚洲av毛片搜| 亚洲av乱码中文一区二区三区| 亚洲人成网站免费播放| 亚洲欧美日韩国产成人| 亚洲欧洲免费无码| 亚洲精品久久无码| 亚洲av午夜国产精品无码中文字| 亚洲精品色播一区二区 | 亚洲一级片在线播放| 亚洲国色天香视频| 亚洲国产精品久久人人爱| 亚洲日产2021三区在线 | 亚洲av综合av一区二区三区| 亚洲日韩国产欧美一区二区三区| 亚洲熟妇av午夜无码不卡| 亚洲美国产亚洲AV| 精品久久久久亚洲| 亚洲精品一级无码鲁丝片 | 亚洲av无码潮喷在线观看| 亚洲AV日韩精品久久久久| 亚洲最大福利视频网站| 亚洲综合无码一区二区三区| 亚洲国产福利精品一区二区| 亚洲a级片在线观看| 亚洲日韩国产欧美一区二区三区 | 亚洲宅男永久在线| 亚洲人成在线免费观看| 77777午夜亚洲| 亚洲AV成人一区二区三区观看| 国产亚洲精品2021自在线| 国产日韩成人亚洲丁香婷婷|