电子说
瑞萨RL78/G23微控制器是RL78系列的新一代产品,具有超低功耗(约41uA/MHz)、大flash空间(96K~768K)、32~128Pin,扩展了模拟功能和安全功能,增加了芯片唯一ID,并且兼容之前的RL78开发环境,非常适合应用于家电、物联网、工业控制等领域。
G23系列产品由于Flash空间大,非常适合需要在线升级功能的场合。因为利用flash空间做备份区,在升级失败的时候,退回到上一个版本。比如采用Wifi,蓝牙,5G进行远程升级固件。由于网络传输有延时,比较合适的在线升级办法是先把固件通过网络传输到RL78 G23 MCU的备份区,待CRC检验等确认整个固件完整性后,再烧录到应用区,这样可以防止由于升级失败板子变砖。
本章介绍通过Bluetooth模块进行远程升级固件,利用G23进行固件备份及升级。下面先看系统组成示意图。
上位机通过App执行发Boot swap命令,让G23 MCU进入boot模式,并且将目标板的旧版本程序进行备份,然后通过串口发数据给蓝牙模块,将New FW传输到G23的应用区,RL78 G23接收完FW数据后进行CRC校验,如果没有问题,则将APP的Boot 和升级程序的boot 对调,运行新版本应用程序。如果数据CRC不对,执行重新烧录或者恢复备份区的数据,直到校验正确再转到普通模式运行。
在RL78/G23 的升级程序开发中,比较关键的一点是要理解Boot swap功能。Boot swap功能是瑞萨RL78系列MCU的特有功能,专门用于程序的在线升级,这一点是与其它ARM类MCU不同的地方。Boot swap指升级自身的bootloader,要先将原来的bootloader 从boot cluster 0备份boot cluster 1,设定Boot swap标志,升级成功后再重新覆盖 boot cluster 0.
总 结
利用G23的Flash空间优势, Boot Swap功能及使用IDE自动代码产生器,配合官方的FSL RL78 Type01库,就可以很方便实现在线升级功能。要注意一点是RL78 G23的Data flash 空间读写,要使用另外一个库Data Flash Library。详细的代码,可以点击文末阅读原文在瑞萨官方网站下载。
来源: 瑞萨MCU小百科(作者:刘文广)
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !