3調(diào)試Application Project
由于芯片上電后需要從0地址(具體地說(shuō)是0004h地址處)的中斷向量開始運(yùn)行,因此,調(diào)試Application Project時(shí)需要下載Bootloader文件,我們?cè)贏pplication Project的Debug Configuration中添加相關(guān)部分。
Application Project Debug Configuration Startup選項(xiàng)卡配置
增加對(duì)于Bootloader的加載,類型選項(xiàng)設(shè)定為Image and Symbols,這樣調(diào)試狀態(tài)下可以跟蹤Bootloader中代碼運(yùn)行的狀態(tài)。
同時(shí),將Application Project對(duì)應(yīng)的***.elf → Load type設(shè)定為Symbols only,僅下載標(biāo)號(hào)。由于加載了Application Project對(duì)應(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)試,此時(shí)可以發(fā)現(xiàn)PC停在Bootloader的reset向量處。
調(diào)試Application Project
點(diǎn)擊Load Ancillary按鈕,將Application Project Debug文件夾下的***.bin.signed下載到芯片上,注意選擇地址為Primary Slot起始地址0x18000。
將1.0.0版本Image ***.bin.signed文件下載到Primary Slot的起始地址0x18000
在memory窗口檢查當(dāng)前Primary Slot中的內(nèi)容,可以看到Image版本為1.0.0。
PC Primary Slot中存儲(chǔ)了1.0.0版本的Image
點(diǎn)擊Resume,可以發(fā)現(xiàn)PC指針停在Primary Slot的Application Project Reset向量處,此時(shí)PC指針地址0x00018ab8位于Primary Slot地址空間范圍(0x18000~0x37FFF)。如下圖所示。
之后在任意時(shí)刻暫停,通過PC指針的地址空間范圍和對(duì)應(yīng)的代碼標(biāo)號(hào)可以發(fā)現(xiàn)PC已經(jīng)運(yùn)行在Application Project中了。
PC指針運(yùn)行在Primary Slot中
再次點(diǎn)擊resume,則可以觀察到代碼運(yùn)行在Primary Slot的Application Project中。
4升級(jí)并驗(yàn)證
由于升級(jí)方式是基于應(yīng)用層面的實(shí)現(xiàn),因此依賴客戶的設(shè)計(jì)。如果需要展示,則建議參考下方鏈接Application Note中的內(nèi)容,對(duì)應(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中,重啟即可使得升級(jí)生效。
在Application Project上稍作修改,比如原始的Project在EK-RA4M3上使三個(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)地址選擇0x48000。
將1.1.0版本Image下載到Secondary Slot中
下載成功后查看Memory中的內(nèi)容,可以確認(rèn)Secondary Slot存儲(chǔ)了1.1.0版本的Image。
Secondary Slot保存了1.1.0版本的Image
按下Reset按鈕,使得Bootloader運(yùn)行,啟動(dòng)代碼升級(jí)。
可以看到EK-RA4M3從三顆LED閃爍變?yōu)閮H有一顆藍(lán)色LED閃爍,表明升級(jí)成功。
升級(jí)完成后查看Primary Slot和Secondary Slot,發(fā)現(xiàn)兩個(gè)Slot內(nèi)容已經(jīng)交換了。Primary Slot中保存了1.1.0版本的Image文件,而Secondary Slot中保存了1.0.0版本的Image文件,如下圖所示。
Primary Slot保存了1.1.0版本的Image,Secondary Slot保存了1.0.0版本的Image
-
芯片
+關(guān)注
關(guān)注
459文章
51602瀏覽量
429921 -
SWAP
+關(guān)注
關(guān)注
0文章
51瀏覽量
12998 -
bootloader
+關(guān)注
關(guān)注
2文章
237瀏覽量
46029 -
FSP
+關(guān)注
關(guān)注
0文章
35瀏覽量
7225
原文標(biāo)題:MCUboot系列(3-3)RA Swap模式在FSP中的支持
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【RA-Eco-RA2L1-48PIN-V1.0開發(fā)板試用】——RTC時(shí)鐘
RA系列使用FSP配置外設(shè)驅(qū)動(dòng)相關(guān)資料介紹
【瑞薩RA4系列開發(fā)板體驗(yàn)】基于Renesas FSP配置USART
【RA4M2設(shè)計(jì)挑戰(zhàn)賽】智能家居助手之RA4M2移植FreeRTOS
使用RA2E1 MCU和FSP實(shí)現(xiàn)超低設(shè)計(jì)

【視頻教程】瑞薩RA單片機(jī)FSP開發(fā)(3)FSP架構(gòu)-解釋Blinky架構(gòu)[上]
RA Overwrite模式在FSP中的支持

MCUboot Swap模式升級(jí)的流程和注意事項(xiàng)

RA Swap模式在FSP中的支持(1)

評(píng)論