|
在做STM32 IAP程序时,遇到一些问题,在这里记录,供分享。 1. 当程序跟新成功,执行跳转后,程序不能执行,原因是程序开启了一些外设,会发生中断。可采用 __disable_irq() ,但是否为最佳的方法,还有待验证。有论坛上说__disable_irq()只是禁止CPU响应中断,当发生中断,响应的中断标志还会置位,所以当使用__enable_irq()开启中断后,由于相应的中断标志没有清空,因而还会触发中断。 2. 在跳转前,关闭了某个外设,USART_Cmd(USART1,DISABLE); ,在APP程序中可能造成这个外设不能使用。解决办法有待研究 3.在进行flash写操作时,建议查询返回值,可能会出现错误。
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");解决跳转后中断失灵 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版