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

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

3天內不再提示

使用微控制器上的引導加載程序使您的嵌入式設計面向未來(lái)

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

引導加載程序概述

產(chǎn)品開(kāi)發(fā)的初始階段,引導加載程序可能經(jīng)常被忽視,因為它不是主要的最終產(chǎn)品。但是,它允許公司使用僅滿(mǎn)足其最終功能集的一部分的軟件來(lái)啟動(dòng)其產(chǎn)品,然后在產(chǎn)品投放市場(chǎng)后向其產(chǎn)品添加功能或解決錯誤。

引導加載程序的用途

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

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

生成的引導加載程序代碼的主要要求是:

確定是否加載了有效的最終應用程序

通信/執行支持的命令

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

擦除/重寫(xiě)最終應用程序內存空間

將控制權移交給最終應用程序

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

確保擦除/寫(xiě)入地址超出引導加載程序內存范圍

允許主機讀取程序存儲器

檢測損壞的最終應用程序代碼并正?;謴?/p>

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

安全固件升級

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

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

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

信任不僅依賴(lài)于設備,還依賴(lài)于制造過(guò)程。利用生產(chǎn)線(xiàn)中的弱點(diǎn)是黑客的首要目標之一。將密鑰和機密與制造隔離同樣重要??蛻?hù)可以將這一負擔留給Microchip的安全工廠(chǎng),并利用我們值得信賴(lài)的配置服務(wù)。

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

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

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

主機應用程序

設備引導加載程序

設備端應用

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

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

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

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

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

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

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

審核編輯:郭婷

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

    關(guān)注

    48

    文章

    6879

    瀏覽量

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

    關(guān)注

    146

    文章

    16148

    瀏覽量

    345136
  • MPLAB
    +關(guān)注

    關(guān)注

    8

    文章

    213

    瀏覽量

    66471
收藏 人收藏

    評論

    相關(guān)推薦

    ARM9微控制器嵌入式無(wú)線(xiàn)網(wǎng)絡(luò )實(shí)戰

    將高性能、低功耗的ARM微控制器與目前新興的ISM波段短距離無(wú)線(xiàn)通信技術(shù)和各種新興的無(wú)線(xiàn)網(wǎng)絡(luò )技術(shù)相結合,將是未來(lái)嵌入式設計的一個(gè)“熱點(diǎn)”。本書(shū)以ARM9微控制器為基礎,分別介紹ARM9
    發(fā)表于 03-04 17:19

    微控制器系統設計中的嵌入式軟件

    微控制器技術(shù)現狀智能化、互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和云計算讓控制器(MCU)無(wú)處不在MCU8/16/32的位數界限變得模糊MCU與嵌入式處理界限變得模糊MCU開(kāi)放核心與專(zhuān)有核心之爭激烈MCU的S
    發(fā)表于 03-08 16:33

    如何為嵌入式應用選擇合適的微控制器

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

    如何在I2C從外部微控制器運行引導加載程序?

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

    慧榮科技FerriSSD是如何滿(mǎn)足嵌入式引導加載應用需求的?

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

    基于微控制器的現代嵌入式系統

    通常是基于微控制器(如含集成內存和/或外設接口的中央處理單元)的,但在較復雜的系統中普通微處理器使用外部存儲芯片和外設接口電路。與個(gè)人計算機這樣的通用計算機系統不同,嵌入式系統通常執行的是帶有特定要求...
    發(fā)表于 07-30 07:49

    使用ARM Cortex和STM32的嵌入式系統微控制器

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

    嵌入式平臺上板載的微控制器是什么

    1 填空題嵌入式競賽平臺上板載的微控制器是: 3 級流水線(xiàn),具有 128 Kbytes的Flash存儲空間。(請在第一、二空格處填寫(xiě)10進(jìn)制數值)解析:STM32G431RBT6采用采用
    發(fā)表于 11-08 06:09

    如何使用XC8編譯開(kāi)發(fā)具有8位PIC微控制器嵌入式系統

    圖書(shū)說(shuō)明:學(xué)習如何在沒(méi)有所有裝飾和數學(xué)的情況下使用微控制器。本書(shū)使用實(shí)用的方法向展示如何使用XC8編譯開(kāi)發(fā)具有8位PIC微控制器嵌入式
    發(fā)表于 11-25 08:39

    嵌入式Linux的引導過(guò)程是怎樣的?

    如何使用。通過(guò)本文可以對嵌入式Linux的引導從概念到實(shí)際操作有一個(gè)總體清晰的認識1.啟動(dòng)順序1.1BootloaderBootloader(引導加載
    發(fā)表于 12-17 07:25

    HCS12微控制器是否有預- 編程的引導加載程序?

    我一直在看有關(guān) LRAE 引導加載程序的 freescale AN 數據表很長(cháng)時(shí)間,我收集了很多信息,我想知道一些我無(wú)法理解的元素,每個(gè) HCS12 微控制器是否有預- 編程的
    發(fā)表于 04-18 07:44

    嵌入式編程和微控制器應用

    歡迎進(jìn)入嵌入式編程和微控制器應用的世界!使用日益流行且價(jià)格適宜的AtmelAVR嵌入式控制器作為學(xué)習平臺。本書(shū)是目前可以獲得的最佳書(shū)籍之一。對于初學(xué)者,本書(shū)將會(huì )是極好的選擇。隨著(zhù)
    發(fā)表于 09-20 07:52

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

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

    嵌入式Linux操作系統引導加載程序BootLoarder

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

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

    高速微控制器系列的一些成員集成了內部EPROM或ROM用于程序存儲。但是,某些應用需要程序存儲器的系統內重新編程。使用帶有內部程序存儲器的Maxim高速
    的頭像 發(fā)表于 03-01 13:57 ?562次閱讀
    使用高速<b class='flag-5'>微控制器</b>作為自舉<b class='flag-5'>加載</b><b class='flag-5'>程序</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看