一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。
软件环境
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+APP1的原始工程。通过查看板子原理图可以知道,板子上有LED1和LED2可以用于升级成功的指示灯。Boot+APP1运行时,LED1闪烁,升级成功后LED2闪烁,说明新的Boot+APP2正在运行。需要在Smart configurator中添加引脚的配置,如下P66和P67设为out:
升级需要用到UART,添加UART0,并做如下配置:
同时需要用到RFD type02,添加如下:
所有的外设驱动添加好后,需要对section进行修改,Flash section:
RAM section:
添加完对应的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都需要按照次方法进行拷贝。
根据所选MCU改造r_cg_userdefine.h。
改造APP,在userApplicationLoop里,可以选择LED1闪烁表示APP1运行,LED2表示升级后APP2运行。
整体代码实现不再赘述,所有代码完成后,编译并烧录到RL78/F24。使用E2-Lite连接板子烧录和调试,串口工具用于传输升级文件:
正常运行后,LED1闪烁。
接下来,制作一个新的APP2,用于升级。在userApplicationLoop()里面改变代码,让LED2闪烁。
用以下步骤生成APP2的.bin文件。在Hex Format->Hex file format中选择Binary file,空白区域填充为0xFF。
编译后会在相应文件夹下生成一个.bin文件。
断开E2-lite,连接串口工具,具体连接为P61 — TXD, P62 — RXD,EVDD — 3.3V,GND — GND。
运行BootSwapGUI.exe,选择256K,选择对应的COM,打开前面生成的bin文件。
点击START,观察进度条,完成后,MCU会自动完成boot swap的动作,最后观察LED2,LED2开始闪烁,说明升级成功。在升级的过程中,LED1一直保持闪烁 ,说明这种方法在升级时不影响上一个版本的运行。
总结
Boot swap是Renesas一种特殊的MCU固件升级方式。这种方式的优点是,在接收新的固件过程中,不需要中断当前APP的运行,这一点在很多应用中是至关重要的。另外,在一般的重新编程(升级)过程中,可能出现复位或者断电等外部因素,导致中断向量表、基本函数等数据损坏。任何一项数据损坏都可能会导致MCU无法正常启动。从boot swap的特点分析得知,boot swap可以很好地避免这种情况。因为任何时候都可以保证MCU有一个完整的boot cluster1和app1可以运行。所以另外一个重要的优点是,boot swap可以防止MCU升级失败导致“变砖”。
- 随机文章
- 热门文章
- 热评文章
- 无建行卡,也能轻松办理建行29.9元可开关款ETC!内附详细教程
- 美日“2+2”会谈今举行,美官员透露美方计划改组驻日美军
- 机械师推出创物者 15N 轻薄本:搭 i7-13620H、支持 PD 快充首发价3499元起
- 哺乳妈妈如何高效背奶|世界母乳喂养周
- OAKLEY 欧克利 偏光男士太阳镜 OO9239-31
- 气质显白的大牌口红,绝对不踩雷系列!
- 立秋时节,品味鲜美虾肉,享受健康生活
- DSC差示扫描量热仪测试PA6及PA66(尼龙)的差异性
- 许多医生都没听过的罕见病,她设了国内首个专病门诊
- 北京市丰台发布城市场景机会清单
- 抗衰老疫苗助力健康晚年
- 京津冀明天将迎较强降雨 南方仍有大规模高温闷热
- 儿童异物卡喉怎么办?家长必学,关键时刻能救命!|健康过暑假
- 1防风防寒!北京今天晴朗伴大风寒意十足 周末将迎小幅升温
- 2新手如何开始跑步?
- 3在中超联赛赛场北京成都球迷高呼:北京加油,成都雄起
- 4西南地区持续阴雨天气 华北黄淮等地大气扩散条件逐步转差
- 5大雾黄色预警:京津冀等8省市部分地区有大雾 局地强浓雾
- 6春晚、哪吒带动文化经济高燃开年,中国IP大有可为!
- 7课间延长、学籍管理新规……新学期,这些变化与你有关
- 8超80亿美元!中芯国际2024年营收创历史新高,净利润减两成
- 9hyper 内存,Hyper内存:如何监控与优化hyper-v虚拟机的内存使用
- 10洞察:人形机器人传感器产业链概览
- 11敏芯股份营收暴涨超35% MEMS传感器业务全面复苏
- 12年底冲刺,家电换新求“新”更求“质”
- 13AI智算驱动光模块上市公司业绩飙涨!新易盛净利涨3倍
- 1Rab 睿坡 Xenon 2.0 男子保暖夹克
- 2中国移动 流量福利活动 免费领4GB流量券
- 3百亿补贴:Lenovo 联想 小新Pro 16 2022款 锐龙版 16英寸笔记本电脑(R7-6800H、16GB、512GB)
- 4China unicom 中国联通 爆款卡 20年29元月租(160G通用流量+100分钟通话+自主激活+送靓号)返10元红包
- 5联想拯救者 R7000 游戏本增配,搭最新 AMD 锐龙7 8745H + RTX 40 独显6699元起
- 6中国电信:汛期地区欠费用户也能用天通卫星服务
- 7全马跑者推荐,南卡Runner Pro5,跑步必备,骨传导音质天花板,潜艇级防水技术,值得入手
- 8清爽宅家~有台神仙茶吧机~你就会爱上喝水
- 9“宝宝巴士”极氪MIX最新官图公布,预计下半年上市
- 10胶囊收纳难?纠结喝点啥?一个抓娃娃机搞定所有难题!
- 11给大家种草一款护眼神器 米家防蓝光眼镜Pro 复古好看性价比高
- 12广西“八大米粉”排行,螺蛳粉垫底,游客:本地人果然更懂米粉
- 13泡椒鸡爪的家常做法分享