APM32F072在线升级的实现
本帖最后由 搬砖工小王 于 2022-5-7 09:34 编辑APM32F072在线升级的实现
虽然APM32F072有提供ISP实现程序通过Uart口进行程序烧录,只要在应用程序中跳转到0x1FFFC800即可,同样不需要改变boot脚的电位就可以完成通过Uart口进行程序升级。但是这样不便于我们按需定制的在线升级过程。所以我们还是通过自定义bootloader和app的方式来实现。
首先我们需要对bootloader和app大小进行分配。
Bootloader 4k IROM的配置如下
APP 124k IROM的配置如下
剩下的一些flash区域用来存储一些参数和在线升级的标志位
Bootloader中只需要加入这部分代码,就可以实现跳转,跳转前注意要关闭所以中断即可
为了让BootLoader能识别是否进人程序升级还是跳转到正常app运行,我通过了一个标志位FlagOnlineUpdate来进行判断,如果不为0x5AA5就进行在线升级,升级完成后改FLASH位置会变为0x5AA5。
App如果需要进行在线升级只需要把FLAGUPDATE_ADDR处的flash的值0x5AA5擦除后,通过NVIC_SystemReset进行复位即可进入到BootLoader进行程序升级了
App需要注意的就是需要修改中断向量表的偏移地址。不然中断触发的时候中断还会回到BootLoader中,无法正常运行app这边工程的中断函数。
可以使用云升级吗 后期升级可以参考一下。 使用keil环境? OAT吗 这个是多大的ram呢? APM32F072性能怎么样 APM32F072兼容stm32哪个芯片呢? updownq 发表于 2022-5-16 13:13
APM32F072兼容stm32哪个芯片呢?
兼容STM32F072 rosemoore 发表于 2022-5-16 10:45
使用keil环境?
是使用KEIL 请问下应用程序有没备份哇?如果升级失败呢? JunKook 发表于 2022-5-16 21:22
请问下应用程序有没备份哇?如果升级失败呢?
可以使用IAP来做备份,升级失败可以用原先的app. 看看 APM32F072是工业级增强型系列MCU吗? 内核IAP升级的 什么叫在线升级呢? APM32可以实现网络串口下载吗 APM32F072有Uart口进行程序烧录 这个的代码备份是怎么实现的 这个BootLoader的代码在哪能够下载?
页:
[1]
2