你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

程序的跳转

[复制链接]
lqh-414236 发布时间:2014-4-30 09:57
 keil生成的.axf或者.elf都是可以执行的镜像文件。
6 Z# e3 f" a  a) D+ } 
. U0 X6 E$ U, r  t& [, h1 a4 T' TIAP User Program 需要注意的问题) H2 Y. O- o7 a/ T
要设置好好中断向量的问题,假设User Program 开始地址是(0x08008000),那么中断向量就必须设在在0x08008000处,中断向量要设置program的开始的位置。
4 A% n4 p) h* a2 \# Q/ H0 m$ i  ~' h2 xUser Program到IAP主要是要设置好中断向量,跳转前要注意设置中断向量在IAP程序(0x08000000)的开始地方即(0x08000000)。还要关闭所有中断,如下操作:
( a7 e4 o0 e! r3 l1 ^. l& ]  @5 M! fNVIC_SetVectorTable(0x08000000, 0x00);               8 j5 [: t. V6 _3 @
  __disable_irq();
- n; U7 t; M: F 
& t7 e  h2 T/ }) h$ J这样子就可以设置好了。注意programIAP 没有升级 然后直接IAP到program,会导致program没有正常工作,目前的解决方法是:programIAP后,IAP可以让系统重启,然后就可以了。
" N5 G* m, u& y系统重启的函数如下:$ T0 q) r3 c5 D
static __INLINE void NVIC_SystemReset(void)
) O9 G0 ^0 t# i0 F8 A! J7 ~9 Y& Q{* g" l% X( n# g3 N4 a
  SCB->AIRCR  = ((0x5FA AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
3 ^+ j8 U4 Q2 A6 g, @                 SCB_AIRCR_SYSRESETREQ_Msk);                   /* Keep priority group unchanged */
# h7 m5 B& `. x  __DSB();                                                     /* Ensure completion of memory access */             
) G" }7 c! ^8 `: U  while(1);                                                    /* wait until reset */* M5 T- y8 E$ k$ W1 @/ L; c5 L: k
}
0 b; i: @$ t0 ^4 S. c
   Q# Z) e% E, }5 j7 Z
此函数可以让系统重启。: U% E: U) h5 }5 C& J
 
- W. V- ?: [( F 2 W$ z' T  T1 ~# ?: G( N  K- C
IAP可以设置任何串口用于升级不用设置时钟,只需要启动外设即可。
收藏 评论1 发布时间:2014-4-30 09:57

举报

1个回答
MrJiu 回答时间:2014-4-30 10:16:47

RE:程序的跳转

貌似不错..........

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版