0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

瑞萨MCU小百科 来源:瑞萨MCU小百科 2024-08-22 10:27 次阅读

接下来我们需要在hal_entry.c中增加对函数mcuboot_quick_setup()的调用。在e2 studio界面下,Project Explorer中找到Developer Assistance找到Call Quick Setup,鼠标左键点选,保持左键按下的状态,拖动到hal_entry.c文件的hal_entry()函数定义之前。

wKgaomZqXzWAZWp7AAC9b8Lpmu4298.png

利用Developer Assistant向源码中增加mcuboot_quick_setup定义

然后在hal_entry()入口处增加对函数mcuboot_quick_setup的调用。

wKgZomZqXzaALuN6AAD4xhd7P8s122.png

在hal_entry()入口处增加调用mcuboot_quick_setup

Build Project可以顺利完成,提示“0 errors, 0 warnings”。在Debug文件夹下确认包含同名的***.bld文件,用文本编辑器打开,检查内容。

wKgaombGopuAWS5rAAGAkPUoNIY990.png

Bootloader Project Build生成的.bld文件

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

第一部分是symbol,主要是Bootloader对Flash Layout的设定,FLASH_IMAGE_START值为0x00018200,即位于Primary Slot的Application Project实际Link(链接)地址。FLASH_IMAGE_LENGTH值为0x0002FE00,即Primary Slot大小(0x30000)减掉Header Size(0x200)。

第二部分是对Application Image进行签名所用到的Python命令,该命令的输入是Application Project Build生成的原始Binary(二进制)文件,输出是同名的签名后的文件,后缀是.bin.signed。同时传入的参数还有文件版本,签名所用的密钥等。由于RA4M2搭载了支持TrustZone的Cortex-M33内核,因此文件的结构包含了对TrustZone的支持。对于不启用TrustZone的应用场景,我们仅需关注Python命令的第一部分。

2将Application Project和Bootloader关联起来

接下来,我们要利用该Bootloader调试目标Application Project,如何才能将Bootloader和Application关联起来呢?就需要借助刚才提到的Bootloader Project Build所生成的***.bld文件。

除了新建Project,也可以将任意一个现有的Project跟Bootloader关联起来,此时,该Project编译的地址为Primary Slot起始地址加上Header大小。

Application Project会利用.bld中的内容替代原始的链接脚本文件(linker script file)。编译的起始地址来自标号FLASH_IMAGE_START,图中的值为0x00018200,可以看到,Header大小0x200已经包含进来。

另外,由于需要使用Python对Application Image进行处理,因此需要在本地安装Python以及相关插件的支持。该操作仅需执行一次。

具体的步骤如下,在Project Tree界面下找到ramcu-toolsMCUbootscripts,鼠标点击右键,Command Window,则会在打开命令行界面,并进入scripts文件夹。键入如下命令,安装Python所需的lib。

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

wKgZomZpQWeAIOIXAAFp5KCqinU888.png

Python安装所需Lib的提示信息

Python命令中包含e2 studio中的Placeholder,针对某个具体的Project,在执行的时候会解析为Workspace下的Project路径以及Project名称。

通过环境变量将Application Project关联起来

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

wKgZombGorqAFd_8AAC5MLIZoRk825.png

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

同时,对Application Project Image进行签名操作所需的公钥放在Bootloader中,因此也需要将该文件链接到Application Project中,具体的实现方式如下:

wKgaombGosWANTBpAADFz29BWRI631.png

添加Public Key for Sign

注意,此时Public Key for Sign依然位于Bootloader Project所在路径,该配置只是引入该文件的地址,使得在Application Project中调用Python脚本对Image进行签名操作时找到该Public Key。

另外,Image文件的版本信息可以通过添加Environment variable实现,配置方式如下:

wKgaombGoySAME_uAADXqBRf9cw732.png

将Image版本号添加到Environment variable

最终生成的版本信息会以4字节添加到Header中。

为保证每次Environment variables有变化或者Bootloader生成的***.bld发生改变时,Application Project都可以重新编译,需在Pre-build中增加以下内容:

rm -f ${ProjName}.elf

wKgaombGotCAR9KlAAEs8NmCx0k204.png

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

完成了以上的所有基础配置后,可以编译Application Project。在Console界面查看Build Log,可以发现编译完成后,增加了对Image文件的处理。

wKgaombGo0aAGK3jAADBsqaQsG0068.png

对Image签名操作对应的Python内容

此时生成的***.bin.signed文件包含了Header,TLV和Trailer等内容,可以被Bootloader识别并运行。利用工具打开该文件,可以发现它不同于原始的Application Image文件:

wKgZombGo1GAA1iNAAAzylQHH2c961.png

.bin.signed文件结构

开始的0x200字节是Header信息,在e2 studio中通过Environment variable传入的版本信息1.0.0在0x14地址偏移上。关于其他部分的细节,感兴趣的朋友可自行查阅。

Application Image开始的0x200处,第二个4字节即当前的中断向量表起始地址,可以看到是小端格式的0x00018ab9,在Primary Slot地址空间(0x00018000~0x87FFF)内。

未完待续

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

    关注

    0

    文章

    51

    浏览量

    12795
  • 源码
    +关注

    关注

    8

    文章

    633

    浏览量

    29135
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62418
  • FSP
    FSP
    +关注

    关注

    0

    文章

    34

    浏览量

    7107

原文标题:MCUboot系列(3-2)RA Swap模式在FSP中的支持

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何实现linux中支持swap功能的呢?

    ,如何实现linux中支持swap功能的呢?1,嵌入式linux随产品发布时,运行的逻辑往往是设计之初就确定了。因而在选择内存大小时,避免了可用内存的不足的问题。因而不会出现
    发表于 11-05 07:05

    RA系列使用FSP配置外设驱动相关资料介绍

    1RA系列使用 FSP 配置外设驱动 MDK 添加用于启动FSP的自定义命令打开 MDK,
    发表于 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 2041次阅读
    使用<b class='flag-5'>RA2E1</b> MCU和<b class='flag-5'>FSP</b>实现超低设计

    【视频教程】瑞萨RA单片机FSP开发(3)FSP架构-解释Blinky架构[上]

    干货分享 前篇回顾 【视频教程】瑞萨RA单片机FSP开发(1)环境搭建(带RASC) 【视频教程】瑞萨RA单片机FSP开发(2)快速上手DM
    的头像 发表于 12-06 12:15 866次阅读

    使用瑞萨e² studio FSP基于RA2E1定时器配置PWM输出

    瑞萨电子e² studio FSP 瑞萨电子灵活配置软件包(FSP)是一款增强型软件包,旨在为使用瑞萨电子RA系列ARM微控制器的嵌入式系统设计提供简单易用且可扩展的高质量软件。全新
    的头像 发表于 03-10 15:35 1334次阅读

    RA MCU CANFDFSP的配置详解

    瑞萨RA系列MCU产品,目前RA4E2、RA4T1RA6E2、
    的头像 发表于 10-20 14:46 1264次阅读
    <b class='flag-5'>RA</b> MCU CANFD<b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的配置详解

    使用瑞萨e² studio FSP基于RA2E1定时器配置PWM输出

    使用瑞萨e² studio FSP基于RA2E1定时器配置PWM输出
    的头像 发表于 08-01 00:13 661次阅读
    使用瑞萨e² studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA2E1</b>定时器配置PWM输出

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

    使用FSP配置RA的CAN模块
    的头像 发表于 08-05 08:08 562次阅读
    使用<b class='flag-5'>FSP</b>配置<b class='flag-5'>RA</b>的CAN模块(上)

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

    使用FSP配置RA的CAN模块
    的头像 发表于 08-05 08:08 439次阅读
    使用<b class='flag-5'>FSP</b>配置<b class='flag-5'>RA</b>的CAN模块(下)

    RA Overwrite模式FSP支持

    前面介绍了MCUboot的基础知识,您可通过上方链接回顾,本章将着重介绍其中的Overwrite模式,以及FSP如何配置、如Flash怎样划分、安全校验的方式等。本文以
    的头像 发表于 06-13 10:52 481次阅读
    <b class='flag-5'>RA</b> Overwrite<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>

    介绍MCUboot支持的四种升级模式(2)

    介绍MCUboot支持的四种升级模式,分别是Overwrite、Swap、Direct XIP和加载到RAM执行。由于FSP
    的头像 发表于 06-13 10:56 767次阅读
    介绍MCUboot<b class='flag-5'>支持</b>的四种升级<b class='flag-5'>模式</b>(2)

    MCUboot Swap模式升级的流程和注意事项

    前面介绍了MCUboot的基础知识(请查看上方“简介以及RA FSP上的支持”文章),上次介绍了Overwrite模式(请查看上方“
    的头像 发表于 06-13 16:01 677次阅读
    MCUboot <b class='flag-5'>Swap</b><b class='flag-5'>模式</b>升级的流程和注意事项

    RA MCU CANFDFSP的配置详解

    RA MCU CANFDFSP的配置详解
    的头像 发表于 06-19 08:06 441次阅读
    <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支持(2)

    由于芯片上电后需要从0地址(具体地说是0004h地址处)的中断向量开始运行,因此,调试Application Project时需要下载Bootloader文件,我们Application Project的Debug Configuration添加相关部分。
    的头像 发表于 08-22 10:34 460次阅读
    <b class='flag-5'>RA</b> <b class='flag-5'>Swap</b><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)