【经验】如何在程序中修改RH850芯片的复位向量
时间: 2021-09-14 来源:世强
MCU的复位向量指的是MCU上电后,所跑的第一条指令所在的地址。车载器件需要以bootloader方式来升级程序,而bootlaoder将MCU的程序代码段分为两个代码段,甚至更多代码段。当更新程序时,我们需要从当前的程序切换到新的程序地址,此时我们可以通过修改复位向量的方式来切换程序。本文介绍瑞萨RH850芯片如何修改复位向量?
瑞萨RH850芯片的上电复位向量默认地址是0x0000,如果我们需要在程序中修改复位向量,则需要调用瑞萨的FCL库来实现。
FCL库中需要打开#define R_FCL_SUPPORT_RESETVECTOR,此时FCL库可以支持修改复位向量的指令:R_FCL_CMD_SET_RESET_VECTOR。
相关参数介绍:
1. command_enu: 填入R_FCL_CMD_SET_RESET_VECTOR命令
2. bufferAdd_u32:填入修改后的复位向量值。
在上述参数初始化后,调用R_FCL_Execute(r_fcl_request_t * request_pstr)后根据request_pstr.status_enu返回值来判断是否修改成功。修改复位向量成功后,重新执行复位,程序即可从修改后的复位向量地址开始跑。
我们可以通过R_FCL_CMD_GET_RESET_VECTOR命令来获取当前的RESET_VECTOR是否被正常修改。
通过上述操作,我们即可实现在更新APP程序后,复位MCU,直接从新的APP程序的复位向量地址开始运行程序,简单快速的实现bootloader的程序切换。