對于網(wǎng)站開發(fā)而言,使用引導(dǎo)加載程序更新嵌入式系統(tǒng)的能力是一項需要掌握的重要技能。盡管為開發(fā)嵌入式系統(tǒng)付出了所有努力,但要么在現(xiàn)場發(fā)現(xiàn)錯誤,要么最終用戶要求附加功能。為了在現(xiàn)場或遠(yuǎn)程無線更新固件,嵌入式系統(tǒng)必須具有板載引導(dǎo)加載程序。對于作為物聯(lián)網(wǎng)一部分的無線更新的嵌入式系統(tǒng),嵌入式開發(fā)團(tuán)隊面臨五個關(guān)鍵挑戰(zhàn)。
挑戰(zhàn) 1 – 代碼大小
基于微控制器的應(yīng)用程序過去非常小,最多只有8到16 KB?,F(xiàn)代微控制器可以為開發(fā)人員提供價值超過1024 KB 的應(yīng)用程序代碼空間。盡管容量和功能呈爆炸式增長,但對于希望通過無線方式更新固件的嵌入式程序員來說,代碼大小是第一個挑戰(zhàn)。
代碼大小的挑戰(zhàn)之一是微控制器通常沒有用于正在運(yùn)行的應(yīng)用程序代碼的板載文件系統(tǒng),這與運(yùn)行Linux的基于CPU的系統(tǒng)不同。由于文件不存在,目標(biāo)文件被鏈接器連續(xù)放置在內(nèi)存中。對應(yīng)用程序的微小調(diào)整可能會導(dǎo)致更新整個閃存空間!為了防止這樣的災(zāi)難,開發(fā)人員需要預(yù)先考慮對內(nèi)存進(jìn)行分區(qū),并預(yù)測可能需要修改代碼庫的哪些區(qū)域。結(jié)果可能是板載閃存的使用效率低下,并增加了系統(tǒng)的相當(dāng)復(fù)雜性。
挑戰(zhàn) 2 – 帶寬
通常,當(dāng)嵌入式開發(fā)人員考慮與引導(dǎo)加載程序相關(guān)的帶寬時,帶寬用于確定更新應(yīng)用程序所需的最大閃存時間。無線更新嵌入式系統(tǒng)可能會增加一些額外的挑戰(zhàn)。
第一個挑戰(zhàn)涉及需要在無線鏈路上工作的引導(dǎo)加載程序,這可能會產(chǎn)生與傳輸和接收數(shù)據(jù)相關(guān)的成本。在許多情況下,無線更新可能會通過WIFI或以太網(wǎng)執(zhí)行,但使用蜂窩數(shù)據(jù)鏈路的移動設(shè)備呢?考慮到單個嵌入式系統(tǒng),可能會忽略更新系統(tǒng)所需的單個MB應(yīng)用程序代碼,但是,當(dāng)有數(shù)百萬臺設(shè)備需要更新時會發(fā)生什么?僅僅推出一個更新就可能產(chǎn)生相當(dāng)大的成本。
開發(fā)引導(dǎo)加載程序的工程師,尤其是在無線執(zhí)行更新的工程師,需要找到壓縮應(yīng)用程序映像的方法,以最大限度地減少空中傳輸?shù)臄?shù)據(jù)量??梢酝ㄟ^多種方式執(zhí)行壓縮,或者如果開發(fā)人員在每個對象基礎(chǔ)上對閃存空間進(jìn)行了分區(qū),甚至可以使用diff文件。
挑戰(zhàn) 3–穩(wěn)健性
對于網(wǎng)站建設(shè)公司來講,許多嵌入式開發(fā)團(tuán)隊面臨的引導(dǎo)加載程序誘惑之一是使用芯片制造商提供的引導(dǎo)加載程序解決方案。芯片制造商解決方案的問題在于它們通常位于無法定制的ROM空間中。更重要的是,基于ROM的引導(dǎo)加載程序通常只是功能代碼。功能代碼可以在受控條件下執(zhí)行目的,但不適用于任何事情發(fā)生的生產(chǎn)環(huán)境。
需要從一開始就將魯棒性內(nèi)置到引導(dǎo)加載程序解決方案中。引導(dǎo)加載程序應(yīng)具有驗證板載應(yīng)用程序完整性的能力。引導(dǎo)加載程序應(yīng)該能夠檢測到失敗的固件更新并回滾到原始應(yīng)用程序,而不是使系統(tǒng)變磚。在生產(chǎn)環(huán)境中,有許多事件可能會擾亂系統(tǒng),但設(shè)計合理的引導(dǎo)加載程序?qū)⒆銐驈?qiáng)大,可以順利處理它們,而最終用戶不會意識到存在問題。
挑戰(zhàn)4 – 安全
許多基于微控制器的引導(dǎo)加載程序忽略了安全性,這是執(zhí)行無線更新的開發(fā)人員面臨的關(guān)鍵挑戰(zhàn)。嵌入式開發(fā)人員可以采取的最簡單的安全措施之一就是簡單地鎖定閃存系統(tǒng),執(zhí)行無線更新的開發(fā)人員可能會考慮加密他們的應(yīng)用程序映像,以防止任何人深入了解專有固件,甚至是逆向工程和入侵系統(tǒng)。無線引導(dǎo)加載程序應(yīng)具有用于驗證更新過程的內(nèi)置方法。
挑戰(zhàn) 5 – 版本管理
管理將分發(fā)給潛在數(shù)百萬臺設(shè)備的固件版本并非易事。奇怪的是,固件更新不會一次全部推送,而是分批推送。更重要的是,有可能在某個時候存在不同版本的硬件,甚至可能為不同的最終用戶提供不同的應(yīng)用程序集。跟蹤并確保固件順利推出可能是一項重大挑戰(zhàn)。
結(jié)論
引導(dǎo)加載程序通常在開發(fā)周期結(jié)束之前被忽略,但它們在嵌入式系統(tǒng)中發(fā)揮著關(guān)鍵作用。這里提出的五個挑戰(zhàn)只是嵌入式開發(fā)人員面臨的幾個挑戰(zhàn),他們正在使用微控制器開發(fā)連接系統(tǒng)。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號