- 最近做了个在线升级(并没有使用系统)
- 芯片:STM32F103C8T6
- 环境:Keil 5、STM32CubeMX 5.2.1
- 跳转和写FLASH在网上一搜其实不少,主要注意要重定向中断向量表和跳转前要关闭所有中断
- 在写好IAP和APP两个固件后,Keil5编译时要在设置中先设置好占用FLASH的地址
- 如图,这是我APP的设置,我的IAP占用的地址为0x8000000~0x8002FFF(SIZE:0x3000)
- 所以APP地址从0x8003000开始,SIZE为0xFFFF-0x3000
- STM32F103C8T6的FLASH大小为64K,即可写地址为0x8000000~0x800FFFF(听说这芯片其实有128K的FLASH 但是没验证过)
- 两边设置好编译之后,就可以用J-Flash来合并两hex然后烧写,再拿bin文件来升级验证功能是不是正常就好了
- 之前没有设置好地址直接编译,然后用J-Flash来偏移后再合并后烧写,导致在跳转APP时无限重启,我想问题可能在SIZE那里吧
IAP与APP(一):两个固件使用Keil5默认设置编译后,利用J-Flash偏移APP的地址然后合并IAP烧写,运行时出现在跳转APP时无限重启的现象
最新推荐文章于 2024-11-27 09:34:13 发布