嗨,我目前正在从事一个需要通过CAN刷新Traveo II的项目。 因此,我想激活引导加载程序,以便我能够"根据 AN227076 使用命令"进入引导加载器并开始向 Traveo II 加载新固件。
从 Traveo II TRM 来看,我知道激活引导加载程序有 3 个主要要求:
1.CPUS.PROTEC
tiON= 安全
2.TOC2 状态要么是已擦除,要么是有效的,SFLASH.TOC2_FLASH 位 FB_BOOTLOADER_DISABLOAD 为零 3。
0x1000000000(第一个应用程序闪存地址;代码闪存大扇区地址)的前两个 32 位单词等于 0xFFFFFFF
我 CAN 确认 Traveo II 满足第 1 点和第 2 点。
我目前的阶段是第 3 点,我正在使用 SROM API:Cy_FlashSectorErase 和 Cy_FlashWriteCode 擦除,然后将0xFFFFFFFF写入0x10000000和0x10000004。
但是,当我使用 OpenOCD 读取 0x10000000 和 0x1000004 的内存时,Traveo II 似乎没有执行 SROM API,因为 0x10000000 存储 0x2808000(SRAM 1 第一个地址),0x1000004 存储 0x10002845。
我该如何解决这个问题?
此外,是否有编写引导加载程序固件的参考/示例?
备注:我将代码存储在 CM0+ 上,我正在使用 Flash API 的屏蔽模式