RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用微控制器上的引導(dǎo)加載程序使您的嵌入式設(shè)計(jì)面向未來

星星科技指導(dǎo)員 ? 來源:microchip ? 作者:microchip ? 2023-05-06 10:55 ? 次閱讀

引導(dǎo)加載程序概述

產(chǎn)品開發(fā)的初始階段,引導(dǎo)加載程序可能經(jīng)常被忽視,因?yàn)樗皇侵饕淖罱K產(chǎn)品。但是,它允許公司使用僅滿足其最終功能集的一部分的軟件來啟動(dòng)其產(chǎn)品,然后在產(chǎn)品投放市場(chǎng)后向其產(chǎn)品添加功能或解決錯(cuò)誤。

引導(dǎo)加載程序的用途

隨著嵌入式設(shè)計(jì)在功能和連接性方面的發(fā)展,支持遠(yuǎn)程應(yīng)用程序更新的需求也在增加。嵌入式連接不限于單一通信協(xié)議,具有多種形式,在汽車工業(yè)、消費(fèi)、醫(yī)療物聯(lián)網(wǎng)IoT 等不斷增長(zhǎng)的市場(chǎng)中至關(guān)重要。

引導(dǎo)加載程序是一個(gè)程序,允許您通過許多方便的接口加載應(yīng)用程序固件,如UARTCAN/CAN FD,LIN,I 2C等。當(dāng)您打開或重置微控制器MCU) 時(shí),引導(dǎo)加載程序是第一個(gè)運(yùn)行的程序,用于檢查是否存在上傳請(qǐng)求。如果有,它將上傳新固件并將其編程到閃存中。這是一個(gè)復(fù)雜且耗時(shí)的過程,但不用擔(dān)心,我們通過MPLAB? 代碼配置器 (MCC) 中提供引導(dǎo)加載程序庫來簡(jiǎn)化將引導(dǎo)加載程序添加到您的設(shè)計(jì)中,MCC 是一種免費(fèi)的圖形代碼生成工具,可幫助使用 PIC24 微控制器 (MCU) 和 dsPIC33 數(shù)字信號(hào)控制器 (DSC) 進(jìn)行應(yīng)用開發(fā)。

生成的引導(dǎo)加載程序代碼的主要要求是:

確定是否加載了有效的最終應(yīng)用程序

通信/執(zhí)行支持的命令

驗(yàn)證收到的最新固件的真實(shí)性和完整性

擦除/重寫最終應(yīng)用程序內(nèi)存空間

將控制權(quán)移交給最終應(yīng)用程序

健壯性需要一些附加功能:

確保擦除/寫入地址超出引導(dǎo)加載程序內(nèi)存范圍

允許主機(jī)讀取程序存儲(chǔ)器

檢測(cè)損壞的最終應(yīng)用程序代碼并正?;謴?fù)

這些是如果您自己開發(fā)引導(dǎo)加載程序可能會(huì)遇到的一些復(fù)雜性。但是,MCC 引導(dǎo)加載程序庫抽象了這些復(fù)雜性,并簡(jiǎn)化了在 MCC 中只需單擊幾下即可添加引導(dǎo)加載程序的過程。我們的 MCC 引導(dǎo)加載程序經(jīng)過嚴(yán)格測(cè)試,包括檢查和平衡,可在您的設(shè)計(jì)中構(gòu)建彈性和健壯性,以避免意外損壞。

安全固件升級(jí)

對(duì)于執(zhí)行固件更新的開發(fā)人員來說,安全性是一項(xiàng)關(guān)鍵挑戰(zhàn),我們最不希望看到的就是被黑客入侵。執(zhí)行固件更新的開發(fā)人員應(yīng)進(jìn)行身份驗(yàn)證,甚至可以選擇性地加密其應(yīng)用程序映像,以防止任何人深入了解專有固件或逆向工程和入侵系統(tǒng)。我們的高性能 dsPIC33C DSC 和低功耗 PIC24F MCU 與我們的 ATECC608 加密身份驗(yàn)證?和 TrustAnchor100 (TA100) 加密汽車?安全 IC 或 dsPIC33C MPT 安全 DSC 相結(jié)合,提供了一組特別有趣的安全功能,可實(shí)現(xiàn)不可變的安全啟動(dòng)和安全固件升級(jí)功能。

安全啟動(dòng)可確保僅在設(shè)備上執(zhí)行授權(quán)固件;但是,黑客可能會(huì)嘗試?yán)门f固件并嘗試撤消任何固件更新。例如,黑客可能會(huì)嘗試使用較舊的映像重新刷新設(shè)備,這可能會(huì)導(dǎo)致嚴(yán)重的安全隱患。防回滾通過確保這些黑客無法加載舊版本的固件來防止這些攻擊。但是,回滾可以用于恢復(fù)目的,但前提是已獲得授權(quán)。

我們還能如何使這些引導(dǎo)加載程序健壯?除了在電源事件后延遲軟件執(zhí)行外,強(qiáng)大的引導(dǎo)加載程序入口方法對(duì)于保護(hù)應(yīng)用程序也很重要。不建議使用過于簡(jiǎn)單的輸入方法,例如僅檢測(cè)單個(gè)UART字節(jié)。包含“32”和“1”位混合的 0 位或更長(zhǎng)的檢測(cè)序列不太可能意外解碼隨機(jī)通信噪聲。還建議在引導(dǎo)加載協(xié)議中實(shí)現(xiàn)閃存解鎖命令,而不是在應(yīng)用軟件中實(shí)現(xiàn)硬編碼。主機(jī)應(yīng)用程序不僅應(yīng)負(fù)責(zé)發(fā)送進(jìn)入引導(dǎo)加載程序模式的命令,還應(yīng)負(fù)責(zé)發(fā)送單獨(dú)的命令以解鎖擦除/寫入操作,然后才能允許發(fā)送修改閃存內(nèi)容的其他命令。

信任不僅依賴于設(shè)備,還依賴于制造過程。利用生產(chǎn)線中的弱點(diǎn)是黑客的首要目標(biāo)之一。將密鑰和機(jī)密與制造隔離同樣重要??蛻艨梢詫⑦@一負(fù)擔(dān)留給Microchip的安全工廠,并利用我們值得信賴的配置服務(wù)。

Microchip的解決方案/MCC旋律簡(jiǎn)介

開發(fā)自定義引導(dǎo)加載程序代碼可能是一個(gè)復(fù)雜且耗時(shí)的過程。面對(duì)所有這些關(guān)鍵挑戰(zhàn),Microchip的解決方案如何解決它們?

適用于 dsPIC33 DSC 和 PIC24 MCU 的 MCC 引導(dǎo)加載程序允許客戶配置和使用引導(dǎo)加載程序以及與引導(dǎo)加載程序關(guān)聯(lián)的應(yīng)用程序。引導(dǎo)加載程序在設(shè)計(jì)中的集成包括三個(gè)部分:

主機(jī)應(yīng)用程序

設(shè)備引導(dǎo)加載程序

設(shè)備端應(yīng)用

主機(jī)應(yīng)用程序負(fù)責(zé)加載新的十六進(jìn)制文件,并通過支持的命令語法將其發(fā)送到引導(dǎo)加載程序。設(shè)備終端應(yīng)用程序需要了解引導(dǎo)加載程序,并且必須了解如何在請(qǐng)求或配置的事件時(shí)將控制權(quán)返回給引導(dǎo)加載程序。默認(rèn)情況下,設(shè)備引導(dǎo)加載程序生成為在啟動(dòng)時(shí)運(yùn)行,并確認(rèn)是否加載了有效的應(yīng)用程序。如果存在有效的應(yīng)用程序,則放棄控制權(quán);否則,該操作將保留在引導(dǎo)加載程序中。

用于管理引導(dǎo)加載程序過程的主機(jī)應(yīng)用程序可以是Microchip的統(tǒng)一引導(dǎo)加載程序應(yīng)用程序,它可以是獨(dú)立的應(yīng)用程序,也可以是單獨(dú)的外部微控制器設(shè)備。無論哪種方式,最終目的都保持不變:通過使用引導(dǎo)加載程序和支持的命令更新最終應(yīng)用程序固件版本。

MCC Melody和引導(dǎo)加載程序庫應(yīng)該提供您所需的所有支持,以加快設(shè)計(jì)/最終應(yīng)用程序的開發(fā)時(shí)間。MCC Melody提供的升級(jí)和靈活的架構(gòu),由MCC Classic開發(fā)而成,使配置設(shè)備,外圍設(shè)備,庫和代碼變得簡(jiǎn)單。它清楚地可視化組件的依賴項(xiàng)以簡(jiǎn)化開發(fā),并通過在驅(qū)動(dòng)程序級(jí)別啟用內(nèi)容版本控制來提供易于維護(hù)。您可以使用 MCC Melody 輕松跨微控制器遷移,以滿足您的應(yīng)用需求。

MCC Melody提供庫、驅(qū)動(dòng)程序、外設(shè)庫(PLIB)和硬件初始值設(shè)定項(xiàng)(HWI),用于開發(fā)Microchip PIC和AVR?微控制器以及dsPIC DSC??的嵌入式軟件。這些組件通過圖形配置工具進(jìn)行定制,該工具可生成高效的 C 代碼。

低級(jí)PLIB很簡(jiǎn)單,用于初始化和控制外設(shè)和基本器件功能。系統(tǒng)驅(qū)動(dòng)程序支持配置常規(guī)功能,通常由其他外設(shè)使用,如引腳、中斷和系統(tǒng)時(shí)鐘。驅(qū)動(dòng)程序依賴于 PLIB,并將硬件詳細(xì)信息從庫和應(yīng)用程序中抽象出來。庫使用驅(qū)動(dòng)程序和系統(tǒng)服務(wù)來實(shí)現(xiàn)設(shè)備獨(dú)立性,并為當(dāng)今嵌入式應(yīng)用程序通常需要的網(wǎng)絡(luò)、USB、加密和其他功能提供支持。您可以從MPLAB X IDE / MPLAB Xpress中安裝MCC Melody,也可以下載并將其作為插件安裝。

關(guān)鍵要點(diǎn)

那么,是什么讓引導(dǎo)加載程序成為一個(gè)好的引導(dǎo)加載程序呢?易用性是主要要求之一,我們使用 PIC24 微控制器和 dsPIC33 DSC 的 MCC 引導(dǎo)加載程序提供了這些要求。簡(jiǎn)單的 GUI 界面使您能夠創(chuàng)建專為滿足您的應(yīng)用需求而設(shè)計(jì)的引導(dǎo)加載程序固件。我們還提供應(yīng)用程序固件配置,使您能夠輕松地使用應(yīng)用程序自定義引導(dǎo)加載程序。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7542

    瀏覽量

    151310
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350973
  • MPLAB
    +關(guān)注

    關(guān)注

    9

    文章

    215

    瀏覽量

    66860
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何為嵌入式應(yīng)用選擇合適的微控制器

    嵌入式應(yīng)用選擇合適的微控制器可能是一項(xiàng)至關(guān)重要的任務(wù)。不僅有各種各樣的技術(shù)選擇需要考慮,還有商業(yè)案例問題,如價(jià)格和交付時(shí)間可能會(huì)削弱項(xiàng)目。在項(xiàng)目或嵌入式系統(tǒng)應(yīng)用程序開始時(shí),很有可能在
    發(fā)表于 12-21 17:58

    如何在I2C從外部微控制器運(yùn)行引導(dǎo)加載程序?

    編程部分。我還沒有找到任何關(guān)于如何使用外部微控制器作為引導(dǎo)加載程序的文檔。我只能在HSSP編程接口上找到文檔,如果它壞了,可能會(huì)擦除引導(dǎo)
    發(fā)表于 07-12 09:09

    慧榮科技FerriSSD是如何滿足嵌入式引導(dǎo)加載應(yīng)用需求的?

    Silicon Motion(慧榮科技)的 FerriSSD?產(chǎn)品家族開發(fā)滿足了嵌入式應(yīng)用中引導(dǎo)加載程序獨(dú)特而苛刻的要求。在各種工作溫度環(huán)境下,嵌入
    發(fā)表于 10-16 08:05

    使用ARM Cortex和STM32的嵌入式系統(tǒng)微控制器

    背景知識(shí)視頻教程使用ARM Cortex和STM32的嵌入式系統(tǒng)的基礎(chǔ)掌握微控制器:定時(shí),PWM,CAN,RTC,低功耗STM32Fx微控制器自定義
    發(fā)表于 08-03 06:47

    時(shí)間觸發(fā)嵌入式系統(tǒng)設(shè)計(jì)模式(使用8051微控制器開發(fā)可靠應(yīng)用

    時(shí)間觸發(fā)嵌入式系統(tǒng)設(shè)計(jì)模式:使用8051微控制器開發(fā)可靠應(yīng)用主要關(guān)注使用軟件模式迅速地開發(fā)時(shí)間觸發(fā)嵌入式系統(tǒng)的軟件,涉及的系統(tǒng)全部基于8051系列微控制器。時(shí)間觸發(fā)技術(shù)
    發(fā)表于 10-28 23:20 ?688次下載
    時(shí)間觸發(fā)<b class='flag-5'>嵌入式</b>系統(tǒng)設(shè)計(jì)模式(使用8051<b class='flag-5'>微控制器</b>開發(fā)可靠應(yīng)用

    基于CORBA技術(shù)的嵌入式控制器設(shè)計(jì)

    本文以制造業(yè)嵌入式控制器為背景,在所選擇的嵌入式硬件和實(shí)時(shí)操作系統(tǒng)的基礎(chǔ),開發(fā)基于CORBA技術(shù)的面向重礦行業(yè)的
    發(fā)表于 09-06 17:30 ?1707次閱讀
    基于CORBA技術(shù)的<b class='flag-5'>嵌入式</b><b class='flag-5'>控制器</b>設(shè)計(jì)

    嵌入式引導(dǎo)加載技術(shù)

    嵌入式引導(dǎo)加載技術(shù)
    發(fā)表于 02-08 01:37 ?10次下載

    如何在STM32微控制器引導(dǎo)加載中使用USART協(xié)議的詳細(xì)資料說明

    本應(yīng)用程序說明描述了STM32微控制器引導(dǎo)加載中使用的USART協(xié)議。它詳細(xì)描述了每個(gè)支持的命令。有關(guān)USART硬件資源和設(shè)備
    發(fā)表于 12-13 15:20 ?4次下載
    如何在STM32<b class='flag-5'>微控制器</b><b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>器</b>中使用USART協(xié)議的詳細(xì)資料說明

    嵌入式Linux操作系統(tǒng)引導(dǎo)加載程序BootLoarder

    嵌入式Linux操作系統(tǒng)引導(dǎo)加載程序BootLoarderBootLoarder是什么Linux操作系統(tǒng)分層BootLoarderBootLoader操作模式BootLoader啟動(dòng)
    發(fā)表于 11-01 17:05 ?8次下載
    <b class='flag-5'>嵌入式</b>Linux操作系統(tǒng)<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>BootLoarder

    MAXQ微控制器的多路復(fù)用JTAG接口引腳

    通常在嵌入式應(yīng)用中,微控制器的每一個(gè)端口引腳都需要,沒有多余的端口引腳。大多數(shù)具有可重寫內(nèi)部程序存儲(chǔ)(如閃存或EEPROM)的MAXQ?
    的頭像 發(fā)表于 01-10 11:34 ?1166次閱讀

    為MAXQ2000微控制器實(shí)現(xiàn)JTAG自舉加載程序主控

    通過使用一組標(biāo)準(zhǔn)化命令,MAXQ微控制器提供的JTAG引導(dǎo)加載程序允許外部JTAG主機(jī)輕松識(shí)別和編程任何MAXQ微控制器。
    的頭像 發(fā)表于 02-21 11:22 ?1126次閱讀
    為MAXQ2000<b class='flag-5'>微控制器</b>實(shí)現(xiàn)JTAG自舉<b class='flag-5'>加載</b><b class='flag-5'>程序</b>主控

    使用高速微控制器作為自舉加載程序

    高速微控制器系列的一些成員集成了內(nèi)部EPROM或ROM用于程序存儲(chǔ)。但是,某些應(yīng)用需要程序存儲(chǔ)的系統(tǒng)內(nèi)重新編程。使用帶有內(nèi)部程序存儲(chǔ)
    的頭像 發(fā)表于 03-01 13:57 ?768次閱讀
    使用高速<b class='flag-5'>微控制器</b>作為自舉<b class='flag-5'>加載</b><b class='flag-5'>程序</b>

    用于Hercules微控制器的CAN總線引導(dǎo)加載程序

    電子發(fā)燒友網(wǎng)站提供《用于Hercules微控制器的CAN總線引導(dǎo)加載程序.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:52 ?0次下載
    用于Hercules<b class='flag-5'>微控制器</b>的CAN總線<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>

    用于Hercules微控制器的CAN總線引導(dǎo)加載程序

    電子發(fā)燒友網(wǎng)站提供《用于Hercules微控制器的CAN總線引導(dǎo)加載程序.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:55 ?0次下載
    用于Hercules<b class='flag-5'>微控制器</b>的CAN總線<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>

    嵌入式系統(tǒng)中微控制器與微處理的區(qū)別

    它們?cè)诂F(xiàn)代電子設(shè)備中的核心作用,并探討它們?nèi)绾纬掷m(xù)推動(dòng)技術(shù)創(chuàng)新的未來。什么是嵌入式微控制器?嵌入式微控制器是設(shè)計(jì)用于在電子系統(tǒng)中執(zhí)行特定任務(wù)的緊湊型集成電路。與更廣
    的頭像 發(fā)表于 10-14 11:02 ?406次閱讀
    <b class='flag-5'>嵌入式</b>系統(tǒng)中<b class='flag-5'>微控制器</b>與微處理<b class='flag-5'>器</b>的區(qū)別
    RM新时代网站-首页