此帖出自国产芯片交流论坛
最新回复
----------------------------------------------------------------------------------------------------------
#define FIRMWARE_BOOT_ENABLE 0
#define JLINK_DEBUG_ENABLE 1
#define FIRMWARE_UPDATE_ENABLE 2
#define FIRMWARE_UPDATE_OK_FLAG 3
#define FW_BOOT_MODE JLINK_DEBUG_ENABLE
#if FW_BOOT_MODE==FIRMWARE_BOOT_ENABLE
#elif FW_BOOT_MODE==JLINK_DEBUG_ENABLE
const unsigned int CONFIG0 __at(0x00300000) = 0x0001FFFE; //WDT(disabled),Delay(500us),APROM,IAP(disabled)
const unsigned int CONFIG1 __at(0x00300004) = 0x1FFFE000; //data flash 4k
#elif FW_BOOT_MODE==FIRMWARE_UPDATE_ENABLE
const unsigned int CONFIG0 __at(0x00300000) = 0x0009FFF6; //WDT(disabled),Delay(500us),LDROM,IAP(disabled)
const unsigned int CONFIG1 __at(0x00300004) = 0x1FFFE000; //data flash 4k
#elif FW_BOOT_MODE==FIRMWARE_UPDATE_OK_FLAG
const unsigned int UPDATE_OK_FLAG __at(0x0000EE00) = 0x6E727562;
#endif
----------------------------------------------------------------------------------------------------------
可以把上述代码放到工程里面,通过选择不同的宏定义来选择芯片启动模式
例如:#define FW_BOOT_MODE JLINK_DEBUG_ENABLE
就是定义芯片直接从AP区启动
例如:#define FW_BOOT_MODE FIRMWARE_UPDATE_OK_FLAG
就是定义芯片从bootloader区启动,并写入AP区固件OK标记,这样芯片就可以正常从boot跳转到ap了
因为芯片从boot启动后会去判断EE00的绝对地址是否有代表固件OK标记的序列号,如果没有,则会一直等待升级命令。如果有就会自动跳转
详情
回复
发表于 2024-1-16 16:45
| ||
|
||
此帖出自国产芯片交流论坛
| ||
|
||
此帖出自国产芯片交流论坛
| ||
|
||
EEWorld Datasheet 技术支持
EEWorld订阅号
EEWorld服务号
汽车开发圈