精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

前面介紹了MCUboot的基礎知識(請查看上方“簡介以及在RA FSP上的支持”文章),上次介紹了Overwrite模式(請查看上方“RA Overwrite模式在FSP中的支持”文章),本次著重介紹其中的Swap模式,以及在FSP中如何配置,如Flash怎樣劃分、安全校驗的方式等。

本文以RA4M2 512K Code Flash產品為例,使用Flat mode(不啟用TrustZone)說明Swap模式進行升級時的注意事項。

首先回顧一下Swap模式升級的流程。

1cf2cfc2-293a-11ef-91d2-92fbcf53809c.png

MCUboot Swap模式圖解

從代碼框架來看,整體劃分為三部分,Bootloader,Primary Slot(保存了低版本的User Application v1.0)和Secondary Slot(保存了待更新的高版本User Application v2.0)。

初始狀態下,芯片中燒錄了Bootloader和Primary Slot,代碼從Bootloader處啟動,跳轉至Primary Slot中的User Application v1.0。在User Application v1.0運行過程中,接收來自外部的更高版本Firmware v2.0,并燒寫到Secondary Slot中,燒寫完成后,執行軟件復位Software reset,代碼重新從Bootloader開始運行。此時Bootloader判斷Secondary Slot中有待更新的Image,檢查其完整性等,校驗通過后,將Secondary Slot中的內容和Primary Slot中的內容交換(利用Scratch area作為暫存區域)。然后跳轉到Primary Slot中執行。比較升級操作的初始狀態和終止狀態,發現Primary Slot中運行的代碼從低版本的v1.0變為高版本的v2.0。

在e2 studio中進行開發時,Bootloader和User Application為相互獨立的Project,但位于同一個Workspace中。先Build Bootloader Project,然后Build位于Primary Slot的User Application Project,由于Bootloader規定了對于整個存儲空間的劃分,同時包含了對User Application Image進行簽名/驗簽所用的密鑰,因此Application Project會依據Bootloader build輸出的Bootloader Data File代替原有的Linker Script File(鏈接腳本文件)進行link,并利用Bootloader包含的密鑰進行Image映像文件的處理。

1新建Bootloader并配置MCUboot參數

由于Bootloader是整個系統的關鍵,因此我們第一步創建Bootloader Project并配置一些關鍵選項如Flash Layout和加密算法等。

對于Bootloader Project,可以在e2 studio中新建并命名。在FSP的Stack選項卡下,點擊New Stack → Bootloader → MCUboot,即可將該功能添加進來。

1cfd730a-293a-11ef-91d2-92fbcf53809c.png

FSP中添加MCUboot

添加MCUboot之后,由于它依賴一些底層驅動,如Flash,Crypto等,因此會在初始界面提示錯誤,按照提示信息逐個修復即可,此處不詳細展開。

1d05850e-293a-11ef-91d2-92fbcf53809c.png

FSP中MCUboot

注意,如需使用示例密鑰對Application Image進行處理,則需要添加MCUboot Example Keys。該Key僅供測試使用,量產時需進行替換。

1d15db7a-293a-11ef-91d2-92fbcf53809c.png

FSP中MCUboot Example Keys配置

假如使用Crypto相關的driver,則參考下圖的配置修復相關error。

1d210536-293a-11ef-91d2-92fbcf53809c.png

FSP中MCUboot下MbedTLS (Crypto Only)配置參考

將所有的錯誤修正后,配置MCUboot的關鍵屬性。

1d359d20-293a-11ef-91d2-92fbcf53809c.png

FSP中MCUboot General屬性

展開Common選項下的General屬性,對于幾個可配置的關鍵選項,說明如下:

升級模式Upgrade Mode,可以從Overwrite,Swap和Direct XIP中選擇,此次選擇Swap。該選項是決定Bootloader大小的關鍵性因素,Overwrite模式最小,Swap模式最大。

Validate Primary Image,建議設定為Enabled,除非資源非常緊張,開啟這部分功能帶來的代碼量增加不過幾十字節而已。

Downgrade Prevention (Overwrite Only),由于該選項僅在Overwrite模式可選,因此設定為Disabled。

1d3fd59c-293a-11ef-91d2-92fbcf53809c.png

FSP中MCUboot Signing and Encryption Options屬性

展開Common選項下的Signing and Encryption Options屬性,對于幾個可配置的關鍵選項,說明如下:

簽名類型Signature Type,規定了對于Application Image進行簽名所用的方式,可從None,ECDSA P-256,RSA 2048,RSA 3072四項中任選其一。假如使能簽名,則代碼量最小的是ECDSA P-256

Custom可以從--confirm和--pad兩者中任選其一

- 默認選項為--confirm,在對Image進行簽名操作時,會將該Image做標記,Bootloader判斷時會將Secondary Slot和Primary Slot交換。下次復位時,兩個Slot不會交換。

- 設定為--pad時,簽名操作會將Image的Trailer部分標記為“可考慮使用該Image升級”。將Image寫入Secondary Slot之后,Bootloader會先將Secondary Slot和Primary Slot進行交換,使得Secondary Slot中的Image得到一次執行的機會。在執行的過程中,假如調用了boot_set_confirmed()函數,則下次復位后,不執行Swap。假如在執行的過程中,并沒有調用boot_set_confirmed()函數,則下次復位后,繼續執行Swap,代碼回到舊版本的Image。這是實現代碼回滾的一種方式,我們會在下一篇文章中做詳細介紹。

Encryption Scheme,根據對于Application Image是否加密進行設定。默認是Disabled,假如使能,則可以從ECIES-P256和RSA-OAEP (RSA 2048 only)中任選其一。Encryption Enabled情況下,Bootloader代碼量會明顯增加。

接下來配置Flash Layout

對于Flash Layout來說,由于升級模式已鎖定Swap,在此基礎上決定Bootloader的大小因素就只剩下校驗算法的選擇了。

由于Bootloader占據從0地址開始的空間,而RA4M2在低地址上的8個block大小均為8KB,因此我們先將Bootloader大小設定為64KB,即0x10000。Swap模式需要保留一個Block大?。?2K)的空間用于對兩個Slot內容進行交換,因此還剩512 – 8*8 – 32 = 416KB。假如將這416KB等分,則208K無法被32K整除,因此只能等分Block 8~Block 19,Primary Slot和Secondary Slot各占6個Block (32KB)。

既然如此,我們索性把Bootloader設定為96KB(Block 0~8),即0x18000。Primary Slot占據6個Block (Block 9~14),Secondary Slot占據6個Block (Block 15~20),最高地址的Block 21作為Swap模式下的Scratch area。

1d525d7a-293a-11ef-91d2-92fbcf53809c.png

RA4M2 Code Flash地址空間

1d5c6e78-293a-11ef-91d2-92fbcf53809c.png

FSP中MCUboot Flash Layout設置

Bootloader Flash Area Size (Bytes):

設定為0x18000即可

Image 1 Header Size (Bytes):

前面的劃分Primary Slot和Secondary Slot包含Header,對于Cortex-M33內核的產品,有中斷向量表對齊的要求,因此我們建議將Header size統一設定為0x200,以支持Application的所有中斷。

Image 1 Flash Area Size (Bytes):

根據前面的計算結果,填入0x30000(6個32K block)

Scratch Area用于暫存兩個Slot內容交換時的最小單元,因此我們將Scratch Area大小設定為Block size 0x8000(32K)。

至此,對于Bootloader的配置已經完成了。

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

    關注

    30

    文章

    4672

    瀏覽量

    67781
  • FSP
    FSP
    +關注

    關注

    0

    文章

    34

    瀏覽量

    7075

原文標題:MCUboot系列(3-1)RA Swap模式在FSP中的支持

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

收藏 人收藏

    評論

    相關推薦

    FPC流程和要注意事項簡介

    FPC流程和要注意事項簡介 做FPC有幾年了,自己也學習和總結了一些經驗。想和大家交流下。先聊聊流程吧!
    發表于 03-17 10:15 ?5788次閱讀

    PCB的設計流程,有什么注意事項?

    使用PADS的印制板設計軟件PowerPCB進行印制板設計的流程和一些注意事項
    發表于 04-23 06:52

    硬件開發流程注意事項是什么

    硬件開發流程注意事項是什么
    發表于 04-27 06:15

    STM32低功耗模式有哪些注意事項?

    STM32低功耗模式有哪些注意事項?
    發表于 11-23 06:17

    如何升級Recovery?有哪些注意事項

    如何升級Recovery?有哪些注意事項?
    發表于 03-09 06:39

    FAQ0095事件喚醒Deepsleep模式注意事項

    事件喚醒Deepsleep模式注意事項
    發表于 10-23 07:05

    FAQ0133外設事件中斷響應流程注意事項

    外設事件中斷響應流程注意事項介紹一種保障回調任務可被精確響應的方法
    發表于 10-23 07:47

    膽機使用的注意事項

    膽機使用的注意事項:膽機使用的注意事項 我是初哥, 現在對膽機感興趣, 但聽說膽機使用麻煩, 請問有什么需要注意的?湖南吉首火車站 范增不必擔心, 膽機的使用方法
    發表于 11-29 17:09 ?46次下載

    TCL各機芯軟件升級操作步驟及注意事項

    TCL各機芯軟件升級操作步驟及注意事項
    發表于 09-06 15:02 ?18次下載

    工業機器人電器系統注意事項

    工業機器人電器系統注意事項:系統設計流程
    發表于 02-25 18:11 ?1次下載

    LED照明產品認證流程注意事項

    LED照明產品認證流程注意事項
    發表于 09-14 08:34 ?7次下載

    COFT控制模式的Buck LED驅動芯片中 COFF的配置和注意事項

    COFT控制模式的Buck LED驅動芯片中 COFF的配置和注意事項
    發表于 10-28 11:59 ?0次下載
    COFT控制<b class='flag-5'>模式</b>的Buck LED驅動芯片中 COFF的配置和<b class='flag-5'>注意事項</b>

    使用注意事項

    使用注意事項
    發表于 03-17 20:14 ?1次下載
    使用<b class='flag-5'>注意事項</b>

    使用注意事項

    使用注意事項
    發表于 07-07 19:04 ?0次下載
    使用<b class='flag-5'>注意事項</b>

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

    介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執行。由于FSP不支持第四種——加載到RAM中執行,因為我們重點介紹前三種
    的頭像 發表于 06-13 10:56 ?524次閱讀
    介紹<b class='flag-5'>MCUboot</b>支持的四種<b class='flag-5'>升級</b><b class='flag-5'>模式</b>(2)