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

关于STM32 IAP程序的问题分享

[复制链接]
accelerating 发布时间:2016-6-21 16:29

在做STM32 IAP程序时,遇到一些问题,在这里记录,供分享。

1. 当程序跟新成功,执行跳转后,程序不能执行,原因是程序开启了一些外设,会发生中断。可采用 __disable_irq() ,但是否为最佳的方法,还有待验证。有论坛上说__disable_irq()只是禁止CPU响应中断,当发生中断,响应的中断标志还会置位,所以当使用__enable_irq()开启中断后,由于相应的中断标志没有清空,因而还会触发中断。

2. 在跳转前,关闭了某个外设,USART_Cmd(USART1,DISABLE); ,在APP程序中可能造成这个外设不能使用。解决办法有待研究

3.在进行flash写操作时,建议查询返回值,可能会出现错误。

  1. ret = FLASH_ProgramHalfWord(WriteAddr,pBuffer[i]);  
复制代码

4. 当定义了一个超大的全局数组时,IAR编译报错         


unable to allocate space for sections/blocks with a total estimated minimum size of 0xfcac bytes (max align 0x8) in <[0x20000000-0x2000bfff]> (total uncommitted

内存范围超出了STM32的RAM  ,但是MDK并没有报错

5.在MDK中可使用   __attribute__ ((at(0X20001000))) 指定变量位置,在IAR中使用@(0X2001000)

6. 在跳转前加入 asm("CPSID  I");,在app程序中加入asm("CPSIE  I");解决跳转后中断失灵


收藏 评论0 发布时间:2016-6-21 16:29

举报

0个回答

所属标签

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