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

描述

3调试Application Project

由于芯片上电后需要从0地址(具体地说是0004h地址处)的中断向量开始运行,因此,调试Application Project时需要下载Bootloader文件,我们在Application Project的Debug Configuration中添加相关部分。

bootloader

 

Application Project Debug Configuration Startup选项卡配置

增加对于Bootloader的加载,类型选项设定为Image and Symbols,这样调试状态下可以跟踪Bootloader中代码运行的状态。

同时,将Application Project对应的***.elf → Load type设定为Symbols only,仅下载标号。由于加载了Application Project对应的symbol,因此我们可以调试时检查代码的运行状态。但实际下载到code flash的内容是经过了Python脚本处理,增加了Header,TLV和Trailer等信息的***.bin.signed文件,因此可以通过Bootloader的安全校验。

按下Debug按钮,启动调试,此时可以发现PC停在Bootloader的reset向量处。

bootloader

调试Application Project

点击Load Ancillary按钮,将Application Project Debug文件夹下的***.bin.signed下载到芯片上,注意选择地址为Primary Slot起始地址0x18000。

bootloader

将1.0.0版本Image ***.bin.signed文件下载到Primary Slot的起始地址0x18000

在memory窗口检查当前Primary Slot中的内容,可以看到Image版本为1.0.0。

bootloader

PC Primary Slot中存储了1.0.0版本的Image

点击Resume,可以发现PC指针停在Primary Slot的Application Project Reset向量处,此时PC指针地址0x00018ab8位于Primary Slot地址空间范围(0x18000~0x37FFF)。如下图所示。

之后在任意时刻暂停,通过PC指针的地址空间范围和对应的代码标号可以发现PC已经运行在Application Project中了。

bootloader

PC指针运行在Primary Slot中

再次点击resume,则可以观察到代码运行在Primary Slot的Application Project中。

4升级并验证

由于升级方式是基于应用层面的实现,因此依赖客户的设计。如果需要展示,则建议参考下方链接Application Note中的内容,对应的示例代码包含了遵循XModem协议利用UART传输Image。

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

在调试状态下,可以通过将待更新的Image文件下载到Secondary Slot中,重启即可使得升级生效。

在Application Project上稍作修改,比如原始的Project在EK-RA4M3上使三个LED(红绿蓝)一起闪烁,而我们将代码更新为只有一个LED(蓝色)闪烁。同时,将Image Version从1.0.0更改为1.1.0,重新Build Project,确认Debug文件夹下的.bin.signed重新生成了。

现在将1.1.0版本的Image烧录到Secondary Slot中,点击Load Ancillary,选中***.bin.signed,目标地址选择0x48000。

bootloader

将1.1.0版本Image下载到Secondary Slot中

下载成功后查看Memory中的内容,可以确认Secondary Slot存储了1.1.0版本的Image。

bootloader

Secondary Slot保存了1.1.0版本的Image

按下Reset按钮,使得Bootloader运行,启动代码升级。

可以看到EK-RA4M3从三颗LED闪烁变为仅有一颗蓝色LED闪烁,表明升级成功。

升级完成后查看Primary Slot和Secondary Slot,发现两个Slot内容已经交换了。Primary Slot中保存了1.1.0版本的Image文件,而Secondary Slot中保存了1.0.0版本的Image文件,如下图所示。

bootloader

Primary Slot保存了1.1.0版本的Image,Secondary Slot保存了1.0.0版本的Image

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分