STM32程序跳转需要注意的问题

2017-07-13 22:44:06来源: eefocus 关键字:STM32  程序跳转

Note:   keil生成的.axf或者.elf都是可以执行的镜像文件。

IAP <->User Program 需要注意的问题

要设置好好中断向量的问题,假设User Program 开始地址是(0x08008000),那么中断向量就必须设在在0x08008000处,中断向量要设置program的开始的位置。

User Program到IAP主要是要设置好中断向量,跳转前要注意设置中断向量在IAP程序(0x08000000)的开始地方即(0x08000000)。还要关闭所有中断,如下操作:

NVIC_SetVectorTable(0x08000000, 0x00);               

__disable_irq();

问题:如果这样子做,跳到了IAP后,有从IAP跳回来,就会出现问题了,原因不懂。我的解决方法是:当执行完IAP后,即升级完成后,直接重启MCU系统。

这样子就可以设置好了。注意program<->IAP 没有升级 然后直接IAP到program,会导致program没有正常工作,目前的解决方法是:program<->IAP后,IAP可以让系统重启,然后就可以了。

系统重启的函数如下:


  1. static __INLINE void NVIC_SystemReset(void)  

  2. {  

  3.   SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |  

  4.                  (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |  

  5.                  SCB_AIRCR_SYSRESETREQ_Msk);    /* Keep priority group unchanged */  

  6.   __DSB();                                      /* Ensure completion of memory access */               

  7.   while(1);                                     /* wait until reset */  

  8. }  



此函数可以让系统重启。

简单的说IAP就是一个普通额程序,就是负责APP的Flash区的擦除和编程。


关键字:STM32  程序跳转

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2017071334138.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:OV7740 之STM32 源代码
下一篇:STM32 多个个APP的跳转

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
STM32
程序跳转

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved