在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

介紹MCUboot支持的四種升級模式(1)

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2024-06-13 10:55 ? 次閱讀

隨著嵌入式系統的發展,產品對于代碼升級功能的需求越來越大。通過代碼升級,可以實現諸如支持新功能,修復故障等目標。

代碼升級本質上是對片上閃存flash(主要是code flash)進行擦除和寫入的過程。由于需要在代碼運行的同時實現對flash內容的操作,因此有些特別需要注意的部分。如:假如在傳輸過程中出現異常,導致代碼升級失敗,設備能否從該狀態正常啟動并恢復至最近一次升級前的狀態。還有,假如向芯片中燒錄的新代碼存在漏洞,或傳輸途徑中遭到破壞,設備能否檢測到這種異常并拒絕運行該代碼。另外,由于代碼升級跟芯片的flash結構密切相關,因此該過程中是否涉及中斷向量表重定位等也需考慮。

代碼升級的實現方式多種多樣,系統架構也千差萬別,如何在眾多方式中找到合適的升級方式,需要用戶根據應用場景的需求進行評估。

在此,我們介紹一種面向32位微處理器的安全啟動代碼框架——MCUboot

MCUboot都有哪些特定呢?主要是以下幾個:

完全開源,持續更新

支持各種升級模式:overwrite,swap,direct XIP(Execute In Place)和拷貝到RAM中執行

對新固件Firmware進行安全校驗,且安全校驗的級別可根據實際需求選擇

可從升級異常中恢復

MCUboot相關的資源都在哪里呢?您可進入MCUboot官網(MCUboot official website),源碼全部托管在GitHub上。頁面下有一個md文件,作為MCUboot的官方介紹。

由于MCUboot是一個系統框架,因此它規定了對于芯片的flash劃分,將整個芯片的存儲空間劃分為Bootloader、Primary Slot和Secondary Slot三個部分。某種意義上說,Primary Slot和Secondary Slot互為對方的備份,在不同的升級模式下,各slot的作用也有所不同,這一點我們在后續詳細介紹。

對于一個32位單片機來說,客戶可以自行移植MCUboot以適配當前產品,而Renesas FSP(Flexible Software Package靈活軟件包)已經幫客戶實現了該適配,對于Renesas RA系列產品來說,MCUboot相關的大多數配置均可通過界面簡單添加和配置,就像添加一個普通的外設驅動那樣。

靈活配置軟件包FSP

我們以FSP對MCUboot的支持為例,對MCUboot的相關特性進行介紹。

首先介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執行。由于FSP不支持第四種——加載到RAM中執行,因為我們重點介紹前三種。

Overwrite模式

3cddd268-22f1-11ef-91d2-92fbcf53809c.png

MCUboot Overwrite模式圖解

對于Overwrite模式來說,起點是芯片中燒錄了Bootloader和User Application v1.0(初始版本),上電后Bootloader分別檢查Secondary Slot和Primar Slot中的內容,由于此時Secondary Slot為空,因此Bootloader檢查Primary Slot中Image(映像文件)的完整性,確認其合法后會跳轉到Primary Slot中的User Application v1.0中執行(此時PC指針運行在Primary Slot中,黃色的Execution箭頭標識)。

代碼運行的過程中收到了升級請求,則會接收新Image并燒錄到Secondary Slot中。對于接收新Image的途徑,則完全依賴用戶應用程序的實現,可以是USB、網口、Modbus等。燒錄完成后,會執行一條軟復位指令,使得芯片回到復位向量表處開始執行Bootloader,此時Bootloader發現Secondary Slot中有一個新的代碼,假如它的版本是v2.0,高于Primary Slot中的v1.0,則會將Secondary Slot中的內容拷貝到Primary Slot中,然后將Secondary Slot擦除。

如果比較整個過程的起始狀態和結束狀態,我們會發現,芯片中運行的代碼從低版本的v1.0變成了高版本的v2.0,實現了代碼的升級。

從Overwrite模式的流程不難看出它的一些特點:

由于代碼設計比較簡單,因此Bootloader帶來的代碼量較小。因此能夠留更多的空間給應用程序使用。

Overwrite不支持代碼回滾。即假如芯片中燒錄了新Image,則升級完成后舊Image不復存在。

代碼僅在Secondary Slot中備份而非執行,最終需拷貝到Primary Slot中執行,因此升級所用的Application Image進行編譯/鏈接的地址始終為Primary Slot地址空間。

由于整個過程中需要對flash進行兩次擦除(Primary Slot和Secondary Slot)一次寫入(Primary Slot),因此整個Boot的過程依賴flash的特性,主要是擦寫速度。

對于Renesas RA系列產品來說,假如在Stack中添加了MCUboot模塊,則升級模式的修改界面如下所示。

3d0316cc-22f1-11ef-91d2-92fbcf53809c.png

FSP中MCUboot升級模式選項

注意:Overwrite Only和Overwrite Only Fast比較類似,唯一的區別是,后者僅將用到的sectors(此處可以理解為Flash Block)從Secondary Slot拷貝到Primary Slot,未用部分不拷貝。

Swap模式

3d2355ea-22f1-11ef-91d2-92fbcf53809c.png

MCUboot Swap升級模式圖解

從系統框圖來說,Swap模式和Overwrite模式相比,在flash劃分上多了Scratch area,用于存儲兩個slot交換的中間內容。

為簡化說明,對于Swap模式來說,依然假設起點是芯片中燒錄了Bootloader和User Application v1.0 (位于Primary Slot),代碼運行過程中收到了升級指令,接收來自外部的新Image (User Application v2.0),并燒錄到Secondary Slot中,完成后執行軟復位,芯片重新回到Bootloader中運行。此時Bootloader判斷Secondary Slot有更高版本v2.0的代碼,檢查其完整性,確定合法后將Primary Slot中的內容和Secondary Slot中的內容以Block為單元進行交換。

交換完成后,Primary Slot保存了高版本v2.0的Image,而Secondary Slot中保存了低版本v1.0的Image,代碼依然在Primary Slot中執行。

Swap模式下的初始狀態,Primary Slot中運行的是低版本v1.0 Image,而完成升級后的結束狀態下,Primary Slot中運行的是高版本v2.0 Image,因此完成了一次升級。

從Swap模式的流程可以看出它的一些特點:

支持代碼回滾/回退/降級。由于升級完成后,低版本v1.0 Image依然存儲在芯片中,因此若在高版本v2.0 上發現bug需要修復,則可以重新執行升級程序使得代碼回到v1.0。

由于代碼功能較為復雜,因此Bootloader帶來的代碼量較大。其他條件一致的情況下,Swap模式的代碼是最大的。又由于保留了Scratch area用于代碼交換,因此留給應用程序的空間就更小了。

整個升級過程中對于Primary Slot和Secondary Slot均執行擦和寫各一次,因此Boot時間較長。

由于flash專門劃分了Scratch area用于對兩個Slot進行代碼交換,在升級過程中,會對該區域進行多次擦寫。具體的擦寫次數取決于Scratch area大小和Slot大小,簡單的計算方式為,利用Primary Slot除以Scratch area得到的結果,即對Scratch area的擦除次數。寫入次數和擦除次數相等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6040

    文章

    44587

    瀏覽量

    636785
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3606

    瀏覽量

    129596
  • FSP
    FSP
    +關注

    關注

    0

    文章

    34

    瀏覽量

    7152

原文標題:MCUboot系列(1-1)簡介以及在RA FSP上的支持

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    四種支持向量機用于函數擬合與模式識別的Matlab示例程序

    四種支持向量機用于函數擬合與模式識別的Matlab示例程序,內容主要在個文件夾里面[hide] [/hide]
    發表于 03-13 15:46

    DDS AD9910的四種工作調制模式是什么意思

    DDS AD9910的四種工作調制模式是什么意思?說是有單頻模式數字斜坡模式RAM模式 和并行模式
    發表于 07-16 19:37

    四種不同供電模式的LED拓撲介紹

    。可根據轉換器輸入電壓范圍確定輸出電壓是否始終保持較大值、較小值或者介于這兩者之間。 圖11為LED供電的四種常用拓撲,下面就來對這四種拓撲進行
    發表于 10-10 15:07

    STM32芯片GPIO的四種輸入模式四種輸出模式

    STM32芯片的GPIO一共有8配置模式,對8模式的理解如下1.四種輸入
    發表于 05-21 07:55

    單片機四種輸入模式

    單片機四種輸入模式 MCU輸入模式有浮空、上拉、下拉、模擬輸入這四種模式,如果采用上拉或者下拉模式
    發表于 08-24 16:19

    變頻器主要支持四種模式

    變頻器主要支持四種模式:無PG的V/F模式,有PG的V/F模式,無PG的矢量控制模式,有PG的矢
    發表于 09-03 06:57

    GPIO的八工作模式介紹

    一、GPIO介紹GPIO:就是一個引腳作為輸入或者輸出。GPIO的八工作模式:輸入輸出是相對于CPU,四種輸入、四種輸出
    發表于 01-24 06:52

    介紹AUTOSAR支持四種功能安全機制

    1、AUTOSAR的四種功能安全機制雖然AUTOSAR不是一個完整的安全解決方案,但它提供了一些安全機制用于支持安全關鍵系統的開發。本文用于介紹AUTOSAR
    發表于 06-10 17:33

    二維碼的四種主要應用模式

    本文介紹二維碼主要的四種應用模式,包括讀取數據模式、解碼上網模式、解碼驗證模式、解碼通信
    發表于 01-25 11:52 ?3442次閱讀

    WIFI模塊四種工作模式介紹_WIFI模塊工作模式淺析

    WIFI模塊常見的四種工作模式:透傳模式、串口指令模式、HTTPD Client模式、GPIO模式
    發表于 01-19 14:45 ?2.8w次閱讀

    IEC 61851標準中的四種EV充電模式

    在本文中,我們將了解國際電工委員會 (IEC) 規定的不同 EV 充電模式。這些模式在處理電動汽車傳導充電系統的 IEC 61851 標準中指定。該標準描述了四種不同的充電模式,稱為
    的頭像 發表于 06-24 15:06 ?1w次閱讀
    IEC 61851標準中的<b class='flag-5'>四種</b>EV充電<b class='flag-5'>模式</b>

    GPIO的四種輸入模式介紹

    32位寄存器共同控制。 輸出和輸入都是針對芯片引腳來講的(即引腳的對外輸出,和外界對引腳的輸入)。 四種輸入模式介紹 輸入模式下可讀取端口的高低電平或電壓。例如各類傳感器(使用ADC功
    的頭像 發表于 11-09 16:51 ?6699次閱讀
    GPIO的<b class='flag-5'>四種</b>輸入<b class='flag-5'>模式</b><b class='flag-5'>介紹</b>

    淺析電子負載常見的的四種工作模式

    淺析電子負載常見的的四種工作模式 電子負載是電子設備的一,用于模擬負載并測試電源的性能。它在電子行業和電力領域有廣泛的應用。電子負載常見的四種工作
    的頭像 發表于 01-22 13:43 ?2998次閱讀

    介紹MCUboot支持四種升級模式(2)

    介紹MCUboot支持四種升級模式,分別是Overwrite、Swap、Direct XIP和
    的頭像 發表于 06-13 10:56 ?990次閱讀
    <b class='flag-5'>介紹</b><b class='flag-5'>MCUboot</b><b class='flag-5'>支持</b>的<b class='flag-5'>四種</b><b class='flag-5'>升級</b><b class='flag-5'>模式</b>(2)

    MCUboot Swap模式升級的流程和注意事項

    前面介紹MCUboot的基礎知識(請查看上方“簡介以及在RA FSP上的支持”文章),上次介紹了Overwrite模式(請查看上方“RA
    的頭像 發表于 06-13 16:01 ?870次閱讀
    <b class='flag-5'>MCUboot</b> Swap<b class='flag-5'>模式</b><b class='flag-5'>升級</b>的流程和注意事項
    主站蜘蛛池模板: 欧美tube44videos| 扒开双腿疯狂进出爽爽爽| 唐人社电亚洲一区二区三区| 免费福利午夜影视网| 免费国产小视频| 国产一级特黄在线视频| 国产情侣草莓视频在线| 天天干天天舔天天操| 天天澡天天摸天天添视频| 人人艹人人射| 天堂网在线.www天堂在线 | 一级国产特黄aa大片| 黄色国产在线观看| 亚洲卡一卡2卡三卡4卡国色| 男人和女人在床做黄的网站 | 天天爽爽| 国产小视频在线观看www| 天天爱夜夜| www.av日韩| 日本一区免费观看| 亚洲成a人一区二区三区| 最新激情网| 色多多www网站| 狠狠色丁香久久综合网| 久久69| 69一级毛片| 黄色免费网站视频| 亚洲黄色第一页| 四虎884| 日本偷偷操| 欧美一区二区三区免费| 日韩毛片在线视频| 色视频网| 日韩免费看| 欧洲精品码一区二区三区免费看| 日韩美aaa特级毛片| 日本黄色视屏| 欧美黄色一级视频| 久久夜色精品国产噜噜| 亚洲夜夜爱| 黄色永久免费|