1. 前言
最后这部分内容,主要是一些逻辑关键功能; 例如,
- bootloader如何调整到app地址段执行?
- 如何解析CAN数据?
- 如何防止CAN设备变砖?
2. bootloader跳转app功能实现
app起始地址0x8004000 bootloader的烧写地址仍是0x08000000
(1)修改app程序相关设置
keil软件编译时需要修改烧写地址成8004000
keil进入Linker点击“edit”,修改源码改为0x08004000
(2)bootloader跳转接口实现
if(*((uint32_t *)EXE_FLAG_START_ADDR)== EXE_FLASH_MAGICNUMBER )
{
JumpToApplication(START_ADDR);
}
接口实现如下: 注意: 跳转之前必须清楚外设状态,避免外设初始化冲突
void CAN_BOOT_JumpToApplication(uint32_t Addr)
{
static p