通过Boot swap实现瑞萨RL78/F24 MCU固件升级

少年山神的悠闲生活 2025-02-27 阅读:3439 评论:0

Boot swap介绍

本文主要说明如何使用已有的程序更新flash中的固件。使用这种方法代码闪存分为两个区域:执行区域和临时区域。瑞萨flash驱动程序RL78 RFD Type02用于对flash进行重新编程并执行boot swapping。本次说明主要以RL78/F24为例展开boot swapping的说明。

RL78/F24介绍

RL78/F24新一代超低功耗汽车微控制器,非常适用于实现未来高可靠性的智能执行器和传感器,是低端车身ECU的理想之选。作为对现有RL78/F1x MCU的创新扩展,RL78/F24可满足未来市场的多种需求。RL78/F24具有更高的CPU性能、耐高温能力和更强的外设功能集,非常适合各种应用。

RL78/F2x系列产品按ISO 26262标准设计而成,支持高达ASIL B的功能安全(FuSa)。可支持高达EVITA-Light或更高的安全标准。AES加密模块可处理高达256位的密钥长度,并支持安全启动和身份验证功能。为了进一步提高BLDC(FOC)电机控制DC/DC控制系统的计算性能,RL78/F2x配备了独特的应用加速器IP,以减轻复杂的三角函数和其它计算处理所带来的负荷。

环境介绍

硬件

如前面所提到的,本文介绍以RL78/F24为主控,对应板子为RL78/F24(R7F124FPJ)Target Board。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

软件环境

CS+ for CC V8.12.00

Renesas CC-RL Compiler v1.14.00

Smart configurator for RL78 V1.11.0:

Board Support Packages.-v1.62(r_bsp)

Ports v1.5.0

Flash Driver RL78 Type02(Code flash,Extra Area,Common)v1.00

闪存空间分布和升级流程

前面介绍过,boot swap的工程有两个区域,分别是执行区域和临时区域。本次实验所选择的RL78/F24的flash大小为256K,其对应的起始和结束地址如下,如果选择其他大小的MCU,可以根据这个进行修改。

ROM大小 执行区域 临时区域
96KB 0x8000 –0xFFFF 0x10000 –0x17FFF
128KB 0x8000 –0x13FFF 0x14000 –0x1FFFF
192KB 0x8000 –0x1BFFF 0x1C000 –0x2FFFF
256KB 0x8000 –0x23FFF 0x24000 –0x3FFFF
384KB 0x8000 –0x33FFF 0x34000 –0x5FFFF
512KB 0x8000 –0x43FFF 0x44000 –0x7FFFF
768KB 0x8000 –0x63FFF 0x64000 –0xBFFFF

256KB闪存详细分布如下:

升级流程

擦除Boot cluster1和临时区域。

往Boot cluster1和临时区域写入新的固件。

擦除执行区域。

把临时区域的内容拷贝到执行区域。

执行boot swap命令,交换新的boot区域程序到boot cluster0。

运行新的固件代码。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级通过Boot swap实现瑞萨RL78/F24 MCU固件升级通过Boot swap实现瑞萨RL78/F24 MCU固件升级

实现步骤

前面讲了整个升级的流程,接下来对具体的实现步骤进行说明。首先是创建一个包含Boot+APP1的原始工程。通过查看板子原理图可以知道,板子上有LED1和LED2可以用于升级成功的指示灯。Boot+APP1运行时,LED1闪烁,升级成功后LED2闪烁,说明新的Boot+APP2正在运行。需要在Smart configurator中添加引脚的配置,如下P66和P67设为out:

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

升级需要用到UART,添加UART0,并做如下配置:

通过Boot swap实现瑞萨RL78/F24 MCU固件升级通过Boot swap实现瑞萨RL78/F24 MCU固件升级

同时需要用到RFD type02,添加如下:

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

所有的外设驱动添加好后,需要对section进行修改,Flash section:

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

RAM section:

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

添加完对应的section后,需要手动把对应的Flash section拷贝到RAM。方法如下,重复红框部分代码,一共拷贝5个section,分别为:RFD_CMN_f,RFD_CF_f,RFD_EX_f,SMP_CMN_f,SMP_CF_f。红色方框为拷贝RFD_CMN_f的示例,其他4个section都需要按照次方法进行拷贝。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

根据所选MCU改造r_cg_userdefine.h。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

改造APP,在userApplicationLoop里,可以选择LED1闪烁表示APP1运行,LED2表示升级后APP2运行。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

整体代码实现不再赘述,所有代码完成后,编译并烧录到RL78/F24。使用E2-Lite连接板子烧录和调试,串口工具用于传输升级文件:

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

正常运行后,LED1闪烁。

接下来,制作一个新的APP2,用于升级。在userApplicationLoop()里面改变代码,让LED2闪烁。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

用以下步骤生成APP2的.bin文件。在Hex Format->Hex file format中选择Binary file,空白区域填充为0xFF。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级通过Boot swap实现瑞萨RL78/F24 MCU固件升级

编译后会在相应文件夹下生成一个.bin文件。

断开E2-lite,连接串口工具,具体连接为P61 — TXD, P62 — RXD,EVDD — 3.3V,GND — GND。

运行BootSwapGUI.exe,选择256K,选择对应的COM,打开前面生成的bin文件。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

点击START,观察进度条,完成后,MCU会自动完成boot swap的动作,最后观察LED2,LED2开始闪烁,说明升级成功。在升级的过程中,LED1一直保持闪烁 ,说明这种方法在升级时不影响上一个版本的运行。

通过Boot swap实现瑞萨RL78/F24 MCU固件升级

总结

Boot swap是Renesas一种特殊的MCU固件升级方式。这种方式的优点是,在接收新的固件过程中,不需要中断当前APP的运行,这一点在很多应用中是至关重要的。另外,在一般的重新编程(升级)过程中,可能出现复位或者断电等外部因素,导致中断向量表、基本函数等数据损坏。任何一项数据损坏都可能会导致MCU无法正常启动。从boot swap的特点分析得知,boot swap可以很好地避免这种情况。因为任何时候都可以保证MCU有一个完整的boot cluster1和app1可以运行。所以另外一个重要的优点是,boot swap可以防止MCU升级失败导致“变砖”。

热门文章
  • 防风防寒!北京今天晴朗伴大风寒意十足 周末将迎小幅升温

    防风防寒!北京今天晴朗伴大风寒意十足 周末将迎小幅升温
      中国天气网讯 今天(12月27日),北京天气晴间多云,最高气温2℃,白天北风劲吹,阵风可达六至七级,风寒效应明显。本周末,北京仍以晴为主,风力不大,气温将有小幅上升。   昨天,北京晴冷在线,气温继续下跌,南郊观象台最高气温仅有2.6℃,加上风力较大,体感十分寒冷。   北京市气象台预计,今天白天晴间多云,北风三四级(阵风六七级),最高气温2℃;夜间晴间多云,北风二三级间四级,最低气温零下7℃。   明后两天,北京仍以晴为主,风力不大,最高气温将略升至5℃,最低气温...
  • 在中超联赛赛场北京成都球迷高呼:北京加油,成都雄起

    在中超联赛赛场北京成都球迷高呼:北京加油,成都雄起
      9月14日晚,中超联赛成都蓉城对北京国安的比赛在成都凤凰山体育场举行。首都文明办工作人员到现场力促两地球迷的友好互动,引导球迷文明观赛。   开赛前,两地球迷早早来到赛场,成都球迷在赛场通道为等待入场的北京球迷拉歌拍照。一边是北京球迷激昂的歌声,一边是身穿“雄起”“成都”等字样球衣的成都球迷,画面和谐温馨。首都文明办给两地球迷代表赠送了“向北京榜样学习”宣传品,呼吁两地球迷在场上是对手,在场下是朋友。合影留念时,成都球迷高喊“北京加油”,北京球迷高喊“成都雄起”。...
  • 新手如何开始跑步?

    新手如何开始跑步?
    大家好,我是小贝~ 有喜欢我的分享的可以给我点个关哟~多多互动吧~🫰 跑步是最简单的运动之一。人类进化30万年,跑步是基因自带的能力。可以说天生人人都会跑,人人都可以跑。 所以,很多平时不跑步的人,想入门跑步,建议从以下4个方面开始 一、跑步一定要穿跑鞋! 10年前我跑步穿平时的休闲鞋跑了2周,跟腱受伤!因为休闲鞋没有缓震效果;对膝盖和跟腱的损害较大。 专业跑鞋鞋底有缓震设计,能减少跑步时对膝盖和脚踝的冲击力。保护膝盖和脚踝不容易受伤。 二、注意跑步频率和强度。 1、频率...
  • 西南地区持续阴雨天气 华北黄淮等地大气扩散条件逐步转差

    西南地区持续阴雨天气 华北黄淮等地大气扩散条件逐步转差
      摘要:   国内方面,昨日,全国降水整体较弱;内蒙古、东北地区等地出现大风降温天气。未来三天,青藏高原及云南、四川、贵州等地多阴雨天气,关注局地强降雨或持续降雨可能引发的次生灾害。   全球方面,昨日,欧洲东部美国东南部等地出现强降雨。未来三天,飓风“米尔顿”继续影响美国东南部等地;强冷空气影响中亚等地;欧洲大部大范围降水降温。   一、国内天气情况   1.实况   全国降水整体较弱 内蒙古东北地区等地出现大风降温天气   昨日8时至今日6时,全国降水整体较...
  • 大雾黄色预警:京津冀等8省市部分地区有大雾 局地强浓雾

    大雾黄色预警:京津冀等8省市部分地区有大雾 局地强浓雾
      据报道10月14日电据中央气象台网站消息,预计10月14日早晨至上午,河北中南部、北京、天津西部、山东西部、山西中东部、陕西北部、河南东北部和南部部分地区、湖北中部等地有大雾天气,其中,河北中南部、北京西部、山西中部、陕西北部、湖北中部等地的部分地区有能见度低于500米的浓雾,局地有不足200米的强浓雾。中央气象台14日6时继续发布大雾黄色预警。   此外,14日,华北中南部、黄淮中西部、汾渭平原等地大气扩散条件较差,有轻至中度霾,其中,北京南部、河北西部沿山部分地区有...
标签列表