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

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

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

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

如何才能將Bootloader和Application關(guān)聯(lián)起來

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2024-06-12 14:32 ? 次閱讀

2將Application Project和

Bootloader關(guān)聯(lián)起來

接下來,我們要利用該Bootloader調(diào)試目標(biāo)Application Project,如何才能將Bootloader和Application關(guān)聯(lián)起來呢?就需要借助剛才提到的Bootloader Project Build所生成的***.bld文件。

除了新建Project,也可以將任意一個(gè)現(xiàn)有的Project跟Bootloader關(guān)聯(lián)起來,此時(shí),該P(yáng)roject編譯的地址為Primary Slot起始地址加上Header大小。

Application Project會(huì)利用.bld中的內(nèi)容替代原始的鏈接腳本文件(linker script file)。編譯的起始地址來自標(biāo)號(hào)FLASH_IMAGE_START,中的值為0x00010200,可以看到,Header大小0x200已經(jīng)包含進(jìn)來。

另外,由于需要使用Python對Application Image進(jìn)行處理,因此需要在本地安裝Python以及相關(guān)插件的支持。該操作僅需執(zhí)行一次。

具體的步驟如下,在Project Tree界面下找到ramcu-toolsMCUbootscripts,鼠標(biāo)點(diǎn)擊右鍵,Command Window,則會(huì)在打開命令行界面,并進(jìn)入scripts文件夾。鍵入如下命令,安裝Python所需的lib。

pip3 install --user -r scripts/requirements.txt

e7f28c72-2871-11ef-91d2-92fbcf53809c.png

Python安裝所需Lib的提示信息

Python命令中包含e2 studio中的Placeholder,針對某個(gè)具體的Project,在執(zhí)行的時(shí)候會(huì)解析為Workspace下的Project路徑以及Project名稱。

通過環(huán)境變量將Application Project關(guān)聯(lián)起來

打開Application Project的屬性界面,在C/C++ Build → Build Variables下添加.bld文件。

e821578c-2871-11ef-91d2-92fbcf53809c.png

添加.bld文件到Application Project的Build Variables

同時(shí),對Application Project Image進(jìn)行簽名操作所需的公鑰放在Bootloader中,因此也需要將該文件鏈接到Application Project中,具體的實(shí)現(xiàn)方式如下:

e851eb7c-2871-11ef-91d2-92fbcf53809c.png

添加Public Key for Sign

注意,此時(shí)Public Key for Sign依然位于Bootloader Project所在路徑,該配置只是引入該文件的地址,使得在Application Project中調(diào)用Python腳本對Image進(jìn)行簽名操作時(shí)找到該P(yáng)ublic Key。

另外,Image文件的版本信息可以通過添加Environment variable實(shí)現(xiàn),配置方式如下:

e87a526a-2871-11ef-91d2-92fbcf53809c.png

將Image版本號(hào)添加到Environment variable

最終生成的版本信息會(huì)以4字節(jié)添加到Header中。

為保證每次Environment variables有變化或者Bootloader生成的***.bld發(fā)生改變時(shí),Application Project都可以重新編譯,需在Pre-build中增加以下內(nèi)容:

rm -f ${ProjName}.elf

e89b06ae-2871-11ef-91d2-92fbcf53809c.png

Pre-build step添加刪除***.elf的操作

完成了以上的所有基礎(chǔ)配置后,可以編譯Application Project。在Console界面查看Build Log,可以發(fā)現(xiàn)編譯完成后,增加了對Image文件的處理。

e8be85e8-2871-11ef-91d2-92fbcf53809c.png

對Image簽名操作對應(yīng)的Python內(nèi)容

此時(shí)生成的***.bin.signed文件包含了Header,TLV和Trailer等內(nèi)容,可以被Bootloader識(shí)別并運(yùn)行。利用工具打開該文件,可以發(fā)現(xiàn)它不同于原始的Application Image文件:

e8e6691e-2871-11ef-91d2-92fbcf53809c.png

.bin.signed文件結(jié)構(gòu)

開始的0x200字節(jié)是Header信息,在e2 studio中通過Environment variable傳入的版本信息1.0.0在0x14地址偏移上。關(guān)于其他部分的細(xì)節(jié),感興趣的朋友可自行查閱。

Application Image開始的0x200處,第二個(gè)4字節(jié)即當(dāng)前的中斷向量表起始地址,可以看到是小端格式的0x00012215,在Primary Slot地址空間(0x00010000~0x87FFF)內(nèi)。

3調(diào)試Application Project

由于芯片上電后需要從0地址(具體地說是0004h地址處)的中斷向量開始運(yùn)行,因此,調(diào)試Application Project時(shí)需要下載Bootloader 文件,我們在Application Project的Debug Configuration中添加相關(guān)部分。

e9047cf6-2871-11ef-91d2-92fbcf53809c.png

Application Project Debug Configuration Startup選項(xiàng)卡配置

增加對于Bootloader的加載,類型選項(xiàng)設(shè)定為Image and Symbols,這樣調(diào)試狀態(tài)下可以跟蹤Bootloader中代碼運(yùn)行的狀態(tài)。

同時(shí),將Application Project對應(yīng)的***.elf → Load type設(shè)定為Symbols only,僅下載標(biāo)號(hào)。由于加載了Application Project對應(yīng)的symbol,因此我們可以調(diào)試時(shí)檢查代碼的運(yùn)行狀態(tài)。但實(shí)際下載到code flash的內(nèi)容是經(jīng)過了Python腳本處理,增加了Header,TLV和Trailer等信息的***.bin.signed文件,因此可以通過Bootloader的安全校驗(yàn)。

按下Debug按鈕,啟動(dòng)調(diào)試,PC指針會(huì)停在Bootloader的Reset向量處,從地址0xa534(低于0x10000)可以判斷當(dāng)前位于Bootloader地址空間范圍內(nèi)。

e923c73c-2871-11ef-91d2-92fbcf53809c.png

調(diào)試Application Project

點(diǎn)擊Load Ancillary按鈕e950f73e-2871-11ef-91d2-92fbcf53809c.png,將Application Project Debug文件夾下的***.bin.signed下載到芯片上,注意選擇地址為Primary Slot起始地址0x10000。

e9646bc0-2871-11ef-91d2-92fbcf53809c.png

將1.0.0版本Image ***.bin.signed文件下載到Primary Slot的起始地址0x10000

在memory窗口檢查當(dāng)前Primary Slot中的內(nèi)容,可以看到Image版本為1.0.0。

e983882a-2871-11ef-91d2-92fbcf53809c.png

Primary Slot中存儲(chǔ)了1.0.0版本的Image

點(diǎn)擊Resume,可以發(fā)現(xiàn)PC指針停在Primary Slot的Application Project Reset向量處,此時(shí)PC指針地址0x00012264位于Primary Slot地址空間范圍(0x10000~0x87FFF)。如下所示:

e9a07aa2-2871-11ef-91d2-92fbcf53809c.png

PC指針運(yùn)行在Primary Slot中

再次點(diǎn)擊resume,則可以觀察到代碼運(yùn)行在Primary Slot的Application Project中。

4升級并驗(yàn)證

由于升級方式是基于應(yīng)用層面的實(shí)現(xiàn),因此依賴客戶的設(shè)計(jì)。如果需要展示,則建議參考下方鏈接Application Note中的內(nèi)容,對應(yīng)的示例代碼包含了遵循XModem協(xié)議利用UART傳輸Image。

RA6 MCU Advanced Secure Bootloader Design using MCUboot and Code Flash Dualbank Mode

在調(diào)試狀態(tài)下,可以通過將待更新的Image文件下載到Secondary Slot中,重啟即可使得升級生效。

在Application Project上稍作修改,比如原始的Project在EK-RA6M4上使三個(gè)LED(紅綠藍(lán))一起閃爍,而我們將代碼更新為只有一個(gè)LED(藍(lán)色)閃爍。同時(shí),將Image Version從1.0.0更改為1.1.0,重新Build Project,確認(rèn)Debug文件夾下的.bin.signed重新生成了。

現(xiàn)在將1.1.0版本的Image燒錄到Secondary Slot中,點(diǎn)擊Load Ancillary,選中***.bin.signed,目標(biāo)地址選擇0x88000。

e9f5b3dc-2871-11ef-91d2-92fbcf53809c.png

將1.1.0版本Image下載到Secondary Slot中

下載成功后查看Memory中的內(nèi)容,可以確認(rèn)Secondary Slot存儲(chǔ)了1.1.0版本的Image。

ea1b0ae2-2871-11ef-91d2-92fbcf53809c.png

Secondary Slot保存了1.1.0版本的Image

按下Reset按鈕ea37b1c4-2871-11ef-91d2-92fbcf53809c.png,使得Bootloader運(yùn)行,啟動(dòng)代碼升級。

可以看到EK-RA6M4從三顆LED閃爍變?yōu)閮H有一顆藍(lán)色LED閃爍,表明升級成功。

升級完成后查看Secondary Slot對應(yīng)的Flash已經(jīng)擦除,Primary Slot中保存了1.1.0版本的Image文件,如下所示。

ea525ede-2871-11ef-91d2-92fbcf53809c.png

Primary Slot保存了1.1.0版本的Image,Secondary Slot被擦除

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

    關(guān)注

    0

    文章

    676

    瀏覽量

    33780
  • bootloader
    +關(guān)注

    關(guān)注

    2

    文章

    238

    瀏覽量

    46478
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86263

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

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問如何一次同時(shí)燒錄bootloaderapplication

    我們的bootloader和bootloadable的例程產(chǎn)生的bootloader程序和application程序如何合并成一個(gè)hex,一次燒錄到芯片內(nèi)?有什么AN或工具么?
    發(fā)表于 02-21 07:24

    STM32G431從bootloader跳轉(zhuǎn)到APPlication無法運(yùn)行怎么解決?

    Application程序:修改了LD文件,起始地址從 0x0800C000開始, SCB 的配置 VECT_TAB_OFFSET 也修改為0xC000, bootloader程序能正常跑,設(shè)定觸發(fā)
    發(fā)表于 03-12 07:44

    嘗試下載Bootloader Host Application時(shí)遇到404錯(cuò)誤怎么解決?

    在頁面上:https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools... 嘗試下載 Bootloader Host Applicati
    發(fā)表于 04-03 07:45

    OACAD和POWERPCB可以關(guān)聯(lián)起來畫板嗎?

    如題,就像POWERLOGIC跟POWERPCB關(guān)聯(lián)起來畫板那樣,orcad和powerpcb可以關(guān)聯(lián)起來畫板嗎?
    發(fā)表于 01-25 20:41

    【MiCOKit試用體驗(yàn)】慶科WiKi之串口重新燒寫系統(tǒng)(Bootloader,application,RF driver)

    本帖最后由 gjianw217 于 2015-10-11 20:52 編輯 【MiCOKit試用體驗(yàn)】慶科EMW3165基礎(chǔ)篇(5)串口重新燒寫系統(tǒng)(Bootloader,application,RF driver)
    發(fā)表于 10-11 16:12

    CC3200 Bootloader+OTA_Update Application Note

    CC3200 Bootloader+OTA_Update Application Note 學(xué)習(xí)筆記,附件中的文檔詳細(xì)的說明了CC3200的Bootloader加載及OTA升級方法
    發(fā)表于 06-21 08:28

    請問IAR配置和選擇的文件是怎么關(guān)聯(lián)起來的?

    使用zstack協(xié)議棧時(shí),可以在workspace下選擇是協(xié)調(diào)器/路由器/終端結(jié)點(diǎn),選擇不同的設(shè)備類型時(shí),項(xiàng)目中選中的配置文件.cfg會(huì)不同。通過菜單欄的project--- edit configurations 可以在workspace下添加不同的選項(xiàng),和選擇的文件是怎么關(guān)聯(lián)
    發(fā)表于 08-18 06:50

    請問怎樣才能將SharcAudioToolbox導(dǎo)入SigmaStudio?

    請問怎樣才能將SharcAudioToolbox導(dǎo)入SigmaStudio?具體如何操作?
    發(fā)表于 12-03 09:29

    ApplicationBootloader中處理Deadman Timer和看門狗定時(shí)器有什么建議

    these two disabled for the bootloader, and enable them by software, when the main application
    發(fā)表于 12-20 16:21

    Bootloader PIC32MX550F256L:需要在Application中使用Bootloader的驅(qū)動(dòng)代碼

    , is there any possibility where i can make a common driver code for both bootloader and application. Thank you,Sunil Kumar
    發(fā)表于 01-08 14:42

    Application Hex記錄和Bootloader Hex Record之間的區(qū)別?

    know there is certain Hex record format for Application firmware. And We are downloading Bootloader
    發(fā)表于 04-08 14:02

    bootloaderapplication不會(huì)跳轉(zhuǎn)到應(yīng)用程序中怎么解決?

    這里我附上了兩個(gè)內(nèi)存配置文件,bootloaderapplication。使用此配置,它不會(huì)跳轉(zhuǎn)到應(yīng)用程序中。它不斷重啟,請檢查并告訴我此問題的解決方案。 ?
    發(fā)表于 05-05 13:40

    怎樣才能APPLICATION flash部分中的程序在此處進(jìn)行調(diào)試?

    問題: 當(dāng)程序放在 APPLICATION 中時(shí),程序可以編譯但不能調(diào)試!(參見“ 2. 錯(cuò)誤 I/II ”) 我們怎樣才能APPLICATION flash 部分中的程序在此處進(jìn)行調(diào)試?
    發(fā)表于 05-24 07:05

    請問怎樣才能將SharcAudioToolbox導(dǎo)入SigmaStudio?具體如何操作?

    請問怎樣才能將SharcAudioToolbox導(dǎo)入SigmaStudio?具體如何操作?
    發(fā)表于 11-30 07:47

    Bootloader是什么Bootloader的介紹和過程詳細(xì)解

    本文檔的主要內(nèi)容詳細(xì)介紹的是Bootloader是什么Bootloader的介紹和過程詳細(xì)解主要內(nèi)容包括了: 1. Bootloader簡介2.幾種發(fā)布的Bootloader
    發(fā)表于 12-11 17:33 ?48次下載
    <b class='flag-5'>Bootloader</b>是什么<b class='flag-5'>Bootloader</b>的介紹和過程詳細(xì)解
    主站蜘蛛池模板: 色妇女影院 | 免费视频www| 一 级 黄 色 片生活片 | 色老头免费视频 | 日韩三级精品 | 久久久五月天 | 免费h视频在线观看 | 涩涩涩丁香色婷五月网视色 | 一级毛片免费不卡在线视频 | 国产综合第一页在线视频 | 亚洲小说区图片区另类春色 | 午夜视频高清在线aaa | 国产精品五月天 | 国产婷婷色一区二区三区 | 天天干天天色天天干 | 五月月色开心婷婷久久合 | jzzjlzz亚洲乱熟在线播放 | 色中色在线视频 | 哟交小u女国产精品视频 | 香蕉久久夜色精品国产2020 | 色综合天天综久久久噜噜噜久久〔 | 亚洲色图国产精品 | 操久久久 | 中文字幕亚洲一区婷婷 | 毛片一区二区三区 | 女人张腿让男桶免费视频观看 | 丁香花在线| 国产青草 | 美女视频黄免费 | 禁h粗大太大好爽好涨受不了了 | 天天影视网天天影网 | 天天干天天曰 | 97视频免费上传播放 | 2019天天操天天干天天透 | 操黄色| 男人操女人视频在线观看 | 亚洲线精品一区二区三区 | 天天狠天天天天透在线 | 丁香网五月网 | 天天摸天天操免费播放小视频 | 包你爽综合网 |