STM32 IAP程序相关记录

本文记录了在实现STM32在线应用程序更新(IAP)过程中遇到的问题及解决方案,包括程序跳转后无法执行、外设管理、Flash写操作错误以及中断处理等关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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


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


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

ret = FLASH_ProgramHalfWord(WriteAddr,pBuffer[i]);

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

unable to allocate space for sections/blocks with a total estimated minimum size of 0xfcac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值