色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

嵌入式開(kāi)發(fā):使用MCU進(jìn)行無(wú)線更新面臨的5大挑戰(zhàn)

時(shí)間:2022-06-15

對(duì)于網(wǎng)站開(kāi)發(fā)而言,使用引導(dǎo)加載程序更新嵌入式系統(tǒng)的能力是一項(xiàng)需要掌握的重要技能。盡管為開(kāi)發(fā)嵌入式系統(tǒng)付出了所有努力,但要么在現(xiàn)場(chǎng)發(fā)現(xiàn)錯(cuò)誤,要么最終用戶要求附加功能。為了在現(xiàn)場(chǎng)或遠(yuǎn)程無(wú)線更新固件,嵌入式系統(tǒng)必須具有板載引導(dǎo)加載程序。對(duì)于作為物聯(lián)網(wǎng)一部分的無(wú)線更新的嵌入式系統(tǒng),嵌入式開(kāi)發(fā)團(tuán)隊(duì)面臨五個(gè)關(guān)鍵挑戰(zhàn)。

  

挑戰(zhàn) 1 – 代碼大小

  基于微控制器的應(yīng)用程序過(guò)去非常小,最多只有8到16 KB?,F(xiàn)代微控制器可以為開(kāi)發(fā)人員提供價(jià)值超過(guò)1024 KB 的應(yīng)用程序代碼空間。盡管容量和功能呈爆炸式增長(zhǎng),但對(duì)于希望通過(guò)無(wú)線方式更新固件的嵌入式程序員來(lái)說(shuō),代碼大小是第一個(gè)挑戰(zhàn)。

  代碼大小的挑戰(zhàn)之一是微控制器通常沒(méi)有用于正在運(yùn)行的應(yīng)用程序代碼的板載文件系統(tǒng),這與運(yùn)行Linux的基于CPU的系統(tǒng)不同。由于文件不存在,目標(biāo)文件被鏈接器連續(xù)放置在內(nèi)存中。對(duì)應(yīng)用程序的微小調(diào)整可能會(huì)導(dǎo)致更新整個(gè)閃存空間!為了防止這樣的災(zāi)難,開(kāi)發(fā)人員需要預(yù)先考慮對(duì)內(nèi)存進(jìn)行分區(qū),并預(yù)測(cè)可能需要修改代碼庫(kù)的哪些區(qū)域。結(jié)果可能是板載閃存的使用效率低下,并增加了系統(tǒng)的相當(dāng)復(fù)雜性。

 

挑戰(zhàn) 2 – 帶寬

  通常,當(dāng)嵌入式開(kāi)發(fā)人員考慮與引導(dǎo)加載程序相關(guān)的帶寬時(shí),帶寬用于確定更新應(yīng)用程序所需的最大閃存時(shí)間。無(wú)線更新嵌入式系統(tǒng)可能會(huì)增加一些額外的挑戰(zhàn)。


image.png


  第一個(gè)挑戰(zhàn)涉及需要在無(wú)線鏈路上工作的引導(dǎo)加載程序,這可能會(huì)產(chǎn)生與傳輸和接收數(shù)據(jù)相關(guān)的成本。在許多情況下,無(wú)線更新可能會(huì)通過(guò)WIFI或以太網(wǎng)執(zhí)行,但使用蜂窩數(shù)據(jù)鏈路的移動(dòng)設(shè)備呢?考慮到單個(gè)嵌入式系統(tǒng),可能會(huì)忽略更新系統(tǒng)所需的單個(gè)MB應(yīng)用程序代碼,但是,當(dāng)有數(shù)百萬(wàn)臺(tái)設(shè)備需要更新時(shí)會(huì)發(fā)生什么?僅僅推出一個(gè)更新就可能產(chǎn)生相當(dāng)大的成本。

  開(kāi)發(fā)引導(dǎo)加載程序的工程師,尤其是在無(wú)線執(zhí)行更新的工程師,需要找到壓縮應(yīng)用程序映像的方法,以最大限度地減少空中傳輸?shù)臄?shù)據(jù)量??梢酝ㄟ^(guò)多種方式執(zhí)行壓縮,或者如果開(kāi)發(fā)人員在每個(gè)對(duì)象基礎(chǔ)上對(duì)閃存空間進(jìn)行了分區(qū),甚至可以使用diff文件。


挑戰(zhàn) 3–穩(wěn)健性

對(duì)于網(wǎng)站建設(shè)公司來(lái)講,許多嵌入式開(kāi)發(fā)團(tuán)隊(duì)面臨的引導(dǎo)加載程序誘惑之一是使用芯片制造商提供的引導(dǎo)加載程序解決方案。芯片制造商解決方案的問(wèn)題在于它們通常位于無(wú)法定制的ROM空間中。更重要的是,基于ROM的引導(dǎo)加載程序通常只是功能代碼。功能代碼可以在受控條件下執(zhí)行目的,但不適用于任何事情發(fā)生的生產(chǎn)環(huán)境。

  需要從一開(kāi)始就將魯棒性內(nèi)置到引導(dǎo)加載程序解決方案中。引導(dǎo)加載程序應(yīng)具有驗(yàn)證板載應(yīng)用程序完整性的能力。引導(dǎo)加載程序應(yīng)該能夠檢測(cè)到失敗的固件更新并回滾到原始應(yīng)用程序,而不是使系統(tǒng)變磚。在生產(chǎn)環(huán)境中,有許多事件可能會(huì)擾亂系統(tǒng),但設(shè)計(jì)合理的引導(dǎo)加載程序?qū)⒆銐驈?qiáng)大,可以順利處理它們,而最終用戶不會(huì)意識(shí)到存在問(wèn)題。

 

挑戰(zhàn)4 – 安全

  許多基于微控制器的引導(dǎo)加載程序忽略了安全性,這是執(zhí)行無(wú)線更新的開(kāi)發(fā)人員面臨的關(guān)鍵挑戰(zhàn)。嵌入式開(kāi)發(fā)人員可以采取的最簡(jiǎn)單的安全措施之一就是簡(jiǎn)單地鎖定閃存系統(tǒng),執(zhí)行無(wú)線更新的開(kāi)發(fā)人員可能會(huì)考慮加密他們的應(yīng)用程序映像,以防止任何人深入了解專(zhuān)有固件,甚至是逆向工程和入侵系統(tǒng)。無(wú)線引導(dǎo)加載程序應(yīng)具有用于驗(yàn)證更新過(guò)程的內(nèi)置方法。

 

挑戰(zhàn) 5 – 版本管理

  管理將分發(fā)給潛在數(shù)百萬(wàn)臺(tái)設(shè)備的固件版本并非易事。奇怪的是,固件更新不會(huì)一次全部推送,而是分批推送。更重要的是,有可能在某個(gè)時(shí)候存在不同版本的硬件,甚至可能為不同的最終用戶提供不同的應(yīng)用程序集。跟蹤并確保固件順利推出可能是一項(xiàng)重大挑戰(zhàn)。

  

結(jié)論

  引導(dǎo)加載程序通常在開(kāi)發(fā)周期結(jié)束之前被忽略,但它們?cè)谇度胧较到y(tǒng)中發(fā)揮著關(guān)鍵作用。這里提出的五個(gè)挑戰(zhàn)只是嵌入式開(kāi)發(fā)人員面臨的幾個(gè)挑戰(zhàn),他們正在使用微控制器開(kāi)發(fā)連接系統(tǒng)。



Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)

與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
ciya68