stm32中断响应不及时/中断响应慢可能是FLASH读写问题
之前调试过一个STM32F100的程序,里面使用了TM1 TM2 TM4 TM7和串口,TM2定时器中断抢占优先级和响应优先级已经设置了最高优先级,中断还是响应速度慢,大概十几毫秒以后才能反应过来,各个中断优先级都查一遍,中断组也换了又换,最后还是没找到问题,进仿真一步一步跟,最后发现注释掉写内部FLASH时候程序一切正常了,百度了一下,写FLASH的时候无法响应中断,只能干瞪眼等着FLASH操作完才可以响应。
官方文档PM0042《STM32F10xxx闪存编程手册.en》,在Page11中有一段话很重要:
During a write operation to the Flash memory, any attempt to read the Flash memory will
stall the bus. The read operation will proceed correctly once the write operation has
completed. This means that code or data fetches cannot be made while a write/erase
operation is ongoing.
For write and erase operations on the Flash memory (write/erase), the internal RC oscillator
(HSI) must be ON.
The Flash memory can be programmed and erased using in-circuit programming and in-
application programming.
中文翻译第一段话:在Flash写入操作过程中,任何试图读取Flash的操作都会锁定住总线,在完成Flash写操作之后读取Flash操作会继续执行,这意味着写入Flash期间无法访问Flash中的代码和数据。
- 随机文章
- 热门文章
- 热评文章
- Font Awesome 一套绝佳的图标字体库和CSS框架(奥森图标)
- PHP实现表单内容写入txt文件的代码
- 微信公众平台API接口扩展包
- C#图片处理示例(裁剪,缩放,清晰度,水印)
- 安装包制作工具 SetupFactory使用1 详解
- 安装包制作工具 SetupFactory使用2 API清单
- 永恒之蓝病毒是什么 怎么防范ONION勒索软件
- STM32 keil mdk启动代码发分析