0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

APM32F072在线升级的实现

Geehy极海半导体 来源:21ic 作者:21ic 2022-07-14 09:47 次阅读

APM32F072在线升级的实现

虽然APM32F072有提供ISP实现程序通过Uart口进行程序烧录,只要在应用程序中跳转到0x1FFFC800即可,同样不需要改变boot脚的电位就可以完成通过Uart口进行程序升级。但是这样不便于我们按需定制的在线升级过程。所以我们还是通过自定义bootloader和app的方式来实现。

首先我们需要对bootloader和app大小进行分配。
Bootloader 4k IROM的配置如下

c882f38c-0315-11ed-ba43-dac502259ad0.png


APP 124k IROM的配置如下

c898cd38-0315-11ed-ba43-dac502259ad0.png



剩下的一些flash区域用来存储一些参数和在线升级的标志位
c8b020dc-0315-11ed-ba43-dac502259ad0.png
Bootloader中只需要加入这部分代码,就可以实现跳转,跳转前注意要关闭所以中断即可

c8c38b72-0315-11ed-ba43-dac502259ad0.png



为了让BootLoader能识别是否进人程序升级还是跳转到正常app运行,我通过了一个标志位FlagOnlineUpdate来进行判断,如果不为0x5AA5就进行在线升级,升级完成后改FLASH位置会变为0x5AA5。

c8da3598-0315-11ed-ba43-dac502259ad0.png


App如果需要进行在线升级只需要把FLAGUPDATE_ADDR处的flash的值0x5AA5擦除后,通过NVIC_SystemReset进行复位即可进入到BootLoader进行程序升级了

c8f4caf2-0315-11ed-ba43-dac502259ad0.png


App需要注意的就是需要修改中断向量表的偏移地址。不然中断触发的时候中断还会回到BootLoader中,无法正常运行app这边工程的中断函数。

c90dcbce-0315-11ed-ba43-dac502259ad0.png

c9232fb4-0315-11ed-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 应用程序
    +关注

    关注

    37

    文章

    3126

    浏览量

    56312
  • APM
    APM
    +关注

    关注

    0

    文章

    69

    浏览量

    12854

原文标题:APM32芯得 EP.04 | APM32F072在线升级的实现

文章出处:【微信号:geehysemi,微信公众号:Geehy极海半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F072待机后RTC走时变慢是怎么回事?

    STM32F072 有没有遇到待机后RTC走时变慢很厉害的?搞了几天了没找到原因, 不待机时都正常的很,一进入待机后1小时都能慢70多秒
    发表于 04-18 07:40

    APM32下载了APM专属的HEX例程后识别不了芯片怎么解决?

    之前焊了一块,可以识别芯片,下载了APM专属的HEX例程后反而识别不了了,非常痛苦。ARM内核仍然存在,Keil里面也下载不了了……不是板子锁死的问题
    发表于 03-28 06:20

    IAP在线升级,当STM32f107识别U盘时,U盘使用多次后识别过程会变得很慢为什么呢?

    本人在做IAP在线升级,当STM32f107芯片识别U盘时候,U盘使用多次后,识别过程会变得很慢,这是为什么呢?是U盘老化还是芯片原因呢?
    发表于 03-21 07:03

    如何用外挂SPI FLASH运行的STM32F1在线升级

    之前做的都是在芯片内FLASH运行的串口在线升级工作, 现在需要对外挂SPI FLASH进行程序升级,希望有做过的大佬给个大概思路,谢谢!
    发表于 03-13 08:03

    极海APM32F072xBT7硬件兼容ST电动车应用方案mcu

    极海APM32F072xBT7硬件兼容ST电动车应用方案MCU 随着电动车市场的不断发展,对于电动车控制器的要求也越来越高。而作为电动车控制器的核心部件,MCU的选择至关重要
    的头像 发表于 03-04 21:30 112次阅读

    STM32单片机实现固件在线升级(IAP)

    1,固件升级方案综述单片机的固件升级方式有很多种。1、ICP:简单说就是在单片机开发时使用烧录器升级程序,比如使用J-Link烧录单片机程序。2、ISP:在单片机内部实现了基于通信接口
    的头像 发表于 12-16 08:00 785次阅读
    STM32单片机<b class='flag-5'>实现</b>固件<b class='flag-5'>在线</b><b class='flag-5'>升级</b>(IAP)

    基于APM7101的汉、英双语MP3导游机的设计与实现

    电子发烧友网站提供《基于APM7101的汉、英双语MP3导游机的设计与实现.pdf》资料免费下载
    发表于 11-08 14:41 0次下载
    基于<b class='flag-5'>APM</b>7101的汉、英双语MP3导游机的设计与<b class='flag-5'>实现</b>

    APM32F407工具链使用教程

    APM32F407工具链使用教程
    的头像 发表于 10-31 17:14 674次阅读
    <b class='flag-5'>APM</b>32F407工具链使用教程

    AT32 MCU如何使用OTA通过USART实现对固件的在线升级更新

    AT32 MCU如何使用OTA通过USART实现对固件的在线升级更新
    的头像 发表于 10-26 17:09 857次阅读
    AT32 MCU如何使用OTA通过USART<b class='flag-5'>实现</b>对固件的<b class='flag-5'>在线</b><b class='flag-5'>升级</b>更新

    AT32 MCU如何使用IAP通过USART实现对固件的在线升级更新

    AT32 MCU如何使用IAP通过USART实现对固件的在线升级更新
    的头像 发表于 09-19 16:51 1153次阅读
    AT32 MCU如何使用IAP通过USART<b class='flag-5'>实现</b>对固件的<b class='flag-5'>在线</b><b class='flag-5'>升级</b>更新

    浅谈8051烧录的在线升级

    浅谈8051烧录的在线升级
    的头像 发表于 09-18 10:56 642次阅读
    浅谈8051烧录的<b class='flag-5'>在线</b><b class='flag-5'>升级</b>

    安路的CPLD可以支持在线升级吗?

    安路的CPLD可以支持在线升级不?
    发表于 08-11 06:06

    【野火 fireFlasher Mini 脱机烧录器】+测试极海APM32F072RB脱机烧录情况

    本次测试一下手上的极海MCU脱机烧录。本次型号是APM32F072RB,这个型号是前2年国产替换时用来替换ST的STM32L053RB型号的。 下面先打开烧录器软件,将固件烧录到烧录器中。选择读保护
    发表于 05-20 16:33

    高性价比MCU推荐 PY32F072 带CAN和USB接口

    高性价比MCU推荐 PY32F072 带CAN和USB接口
    的头像 发表于 05-18 14:03 1475次阅读
    高性价比MCU推荐 PY32F<b class='flag-5'>072</b> 带CAN和USB接口

    【野火 fireFlasher Mini 脱机烧录器】+APM32F107烧录测试

    APM32F107VCT6 MINI板是一款最小系统型的开发板,它只提供了供调试和下载功能的JTAG接口,见图1所示。因此,它要进行烧录处理就必须借助外挂的调试工具。 图1APM32F107开发板
    发表于 05-08 17:36