【经验】如何在程序中修改RH850芯片的复位向量

【经验】如何在程序中修改RH850芯片的复位向量

时间: 2021-09-14 来源:世强

  • ​编辑技术问答
  • ​编辑选型帮助
  • ​编辑样品申请
  • ​编辑研发客服
  • ​编辑商务客服

MCU,RH850,Renesas

【经验】如何在程序中修改RH850芯片的复位向量_第1张图片

MCU,RH850,Renesas

【经验】如何在程序中修改RH850芯片的复位向量_第2张图片

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的程序切换。

你可能感兴趣的:(嵌入式硬件)