女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

RA Overwrite模式在FSP中的支持

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

前面介紹了MCUboot的基礎知識,您可通過上方鏈接回顧,本章將著重介紹其中的Overwrite模式,以及在FSP中如何配置、如Flash怎樣劃分、安全校驗的方式等。本文以RA6M4 1M Code Flash產品為例,使用Flat mode(不啟用TrustZone)說明Overwrite模式進行升級時的注意事項。

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

3786f072-27a8-11ef-91d2-92fbcf53809c.png

MCUboot Overwrite模式解

從代碼框架來看,整體劃分為三部分,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中代碼的版本(v2.0高于v1.0),檢查其完整性等等,校驗通過后,將Primary Slot擦除,并將Secondary Slot中的內容拷貝到Primary Slot中。之后跳轉至Primary Slot中的新代碼v2.0執行。比較升級操作的初始狀態和終止狀態,發現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,即可將該功能添加進來。

379c8ac2-27a8-11ef-91d2-92fbcf53809c.png

FSP中添加MCUboot

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

37b809fa-27a8-11ef-91d2-92fbcf53809c.png

FSP中MCUboot

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

37c33442-27a8-11ef-91d2-92fbcf53809c.png

FSP中MCUboot General屬性

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

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

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

Downgrade Prevention(Overwrite Only),假如設定為Disabled,則每次Secondary Slot中有新的Image,都會拷貝到Primary Slot中(安全校驗通過的前提下)。假如設定為Enabled,則Bootloader會檢查Secondary Slot中存儲的Image版本,高于Primary Slot中Image版本的情況下才會拷貝??筛鶕嶋H需要選擇。

37dfdf02-27a8-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

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

接下來配置Flash Layout

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

由于Bootloader占據從0地址開始的空間,而RA6M4在低地址上的8個block大小均為8KB,因此我們將Bootloader大小設定為64KB,即0x10000。由于高地址上的Block大小為32KB,因此對于1MB code flash的RA6M4來說,可以將剩下的30個(37-8+1)Block等分,Primary Slot和Secondary Slot各占15 Blocks(0x78000字節)。

37f4e2da-27a8-11ef-91d2-92fbcf53809c.png

RA6M4線性模式下Code Flash地址空間

3867e802-27a8-11ef-91d2-92fbcf53809c.png

FSP中MCUboot Flash Layout設置

Bootloader Flash Area Size (Bytes):

設定為0x10000即可

Image 1 Header Size (Bytes):

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

Image 1 Flash Area Size (Bytes):

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

由于Scratch Area僅針對Swap模式有效,因此在Overwrite模式下設定為0即可。

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

接下來我們需要在hal_entry.c中增加對函數mcuboot_quick_setup()的調用。在e2 studio界面下,Project Explorer中找到Developer Assistance找到Call Quick Setup,鼠標左鍵點選,保持左鍵按下的狀態,拖動到hal_entry.c文件的hal_entry()函數定義之前。

388006f8-27a8-11ef-91d2-92fbcf53809c.png

利用Developer Assistant向源碼中增加mcuboot_quick_setup定義

然后在hal_entry()入口處增加對函數mcuboot_quick_setup的調用。

389e4c62-27a8-11ef-91d2-92fbcf53809c.png

在hal_entry()入口處增加調用mcuboot_quick_setup

Build Project可以順利完成,提示“0 errors, 0 warnings”。在Debug文件夾下確認包含同名的***.bld文件,用文本編輯器打開,檢查內容。

38b2f5ae-27a8-11ef-91d2-92fbcf53809c.png

Bootloader Project Build生成的.bld文件

.bld文件是XML格式的,主要包含兩部分:

第一部分是symbol,主要包含Bootloader對Flash Layout的設定,FLASH_IMAGE_START值為0x00010200,即位于Primary Slot的Application Project實際Link(鏈接)地址。FLASH_IMAGE_LENGTH值為0x00077E00,即Primary Slot大?。?x78000)減掉Header Size(0x200)。

第二部分是對Application Image進行簽名所用到的Python命令,對于該命令來說,輸入是Application Project Build生成的原始Binary(二進制)文件,輸出是同名的簽名后的文件,后綴是.bin.signed。同時傳入的參數還有文件版本,簽名所用的密鑰等。由于RA6M4搭載了支持TrustZone的Cortex-M33內核,因此文件的結構包含了對TrustZone的支持。對于不啟用TrustZone的應用場景,我們僅需關注Python命令的第一部分。

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

    關注

    459

    文章

    52205

    瀏覽量

    436457
  • FlaSh
    +關注

    關注

    10

    文章

    1668

    瀏覽量

    151007
  • FSP
    FSP
    +關注

    關注

    0

    文章

    41

    瀏覽量

    7355

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    RA-Eco-RA4M2開發板評測】RA-Eco-RA4M2 Keil 開發環境搭建

    Engine (SCE) 配合使用,可實現安全芯片的功能。 RA4M2 采用高效的 40nm 工藝,由靈活配置軟件包 (FSP) 這個開放且靈活的生態系統概念提供支持,FSP 基于
    發表于 04-27 22:54

    RA-Eco-RA4M2開發板評測】RA-Eco-RA4M2 移植FreeRTOS

    基本參數配置 然后就是選擇安全策略,盡管RA4M2支持 TrustZone,但這里暫時不選。 Figure 2?4 選擇是否支持 TrustZone 接下來選擇RTOS的支持,
    發表于 05-03 23:24

    RA系列使用FSP配置外設驅動相關資料介紹

    1、RA系列使用 FSP 配置外設驅動 MDK 添加用于啟動FSP的自定義命令打開 MDK,選擇 “Tools -> Custom
    發表于 07-14 10:53

    【瑞薩RA4系列開發板體驗】基于Renesas FSP配置USART

    ● Smart card interface● Manchester interface● Extended Serial interfacekeil工程,打開FSP配置:之后跳出FSP
    發表于 12-08 21:08

    使用RA2E1 MCU和FSP實現超低設計

      RA2E1 MCU 組評估套件 FPB-RA2E1實施各種連接器,允許訪問 RA2E1 MCU、板載 E2 仿真器、用戶開關、LED 上的所有引腳,以啟動 RA2E1 MCU 并使
    的頭像 發表于 04-25 10:10 ?2360次閱讀
    使用<b class='flag-5'>RA</b>2E1 MCU和<b class='flag-5'>FSP</b>實現超低設計

    【視頻教程】瑞薩RA單片機FSP開發(3)FSP架構-解釋Blinky架構[上]

    干貨分享 前篇回顧 【視頻教程】瑞薩RA單片機FSP開發(1)環境搭建(帶RASC) 【視頻教程】瑞薩RA單片機FSP開發(2)快速上手DMEO 本次課程通過創建Blinky案例來解讀
    的頭像 發表于 12-06 12:15 ?1142次閱讀

    RA MCU CANFDFSP的配置詳解

    瑞薩RA系列MCU產品,目前RA4E2、RA4T1、RA6E2、
    的頭像 發表于 10-20 14:46 ?1867次閱讀
    <b class='flag-5'>RA</b> MCU CANFD<b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的配置詳解

    使用瑞薩e2 studio FSP基于RA2E1定時器配置PWM輸出

    使用瑞薩e2 studio FSP基于RA2E1定時器配置PWM輸出
    的頭像 發表于 08-01 00:13 ?1140次閱讀
    使用瑞薩e2 studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA</b>2E1定時器配置PWM輸出

    使用FSP配置RA的CAN模塊(上)

    使用FSP配置RA的CAN模塊
    的頭像 發表于 08-05 08:08 ?887次閱讀
    使用<b class='flag-5'>FSP</b>配置<b class='flag-5'>RA</b>的CAN模塊(上)

    使用FSP配置RA的CAN模塊(下)

    使用FSP配置RA的CAN模塊
    的頭像 發表于 08-05 08:08 ?755次閱讀
    使用<b class='flag-5'>FSP</b>配置<b class='flag-5'>RA</b>的CAN模塊(下)

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

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

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

    前面介紹了MCUboot的基礎知識(請查看上方“簡介以及RA FSP上的支持”文章),上次介紹了Overwrite
    的頭像 發表于 06-13 16:01 ?1451次閱讀
    MCUboot Swap<b class='flag-5'>模式</b>升級的流程和注意事項

    RA MCU CANFDFSP的配置詳解

    RA MCU CANFDFSP的配置詳解
    的頭像 發表于 06-19 08:06 ?908次閱讀
    <b class='flag-5'>RA</b> MCU CANFD<b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的配置詳解

    RA Swap模式FSP支持(1)

    接下來我們需要在hal_entry.c增加對函數mcuboot_quick_setup()的調用。e2 studio界面下,Project Explorer中找到Developer
    的頭像 發表于 08-22 10:27 ?798次閱讀
    <b class='flag-5'>RA</b> Swap<b class='flag-5'>模式</b><b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的<b class='flag-5'>支持</b>(1)

    RA Swap模式FSP支持(2)

    由于芯片上電后需要從0地址(具體地說是0004h地址處)的中斷向量開始運行,因此,調試Application Project時需要下載Bootloader文件,我們Application Project的Debug Configuration添加相關部分。
    的頭像 發表于 08-22 10:34 ?872次閱讀
    <b class='flag-5'>RA</b> Swap<b class='flag-5'>模式</b><b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的<b class='flag-5'>支持</b>(2)