搜索
bottom↓
回复: 8

STM32擦除内部FLASH和外部NOR FALSH时是否需关中断

[复制链接]

出0入0汤圆

发表于 2017-11-16 17:20:28 | 显示全部楼层 |阅读模式
网上查了些资料,STM32在擦除内部FLASH时,是会暂停取指操作(即中断不会响应,如果中断向量和服务是在FLASH上),故无需关中断。
但是,如果我外扩了一片NOR FLASH呢?擦除和写入数据时,是否需关中断?现在关中断会导致无法响应中断请求(造成数据丢失),但是不关又怕有什么问题。

出0入0汤圆

发表于 2017-11-16 18:41:58 | 显示全部楼层
外扩的NOR FLASH是否需要关中断,看这个芯片的编程时序,检查编程时序如果被中断打断了是否有影响,若没有影响,就可以不关中断。

出0入0汤圆

发表于 2017-11-16 18:48:14 | 显示全部楼层
外扩的是串行的吗?那不用。

出0入8汤圆

发表于 2017-11-16 18:49:36 | 显示全部楼层
以前写入的时候没关中断,有时候死机了

出0入0汤圆

 楼主| 发表于 2017-11-17 08:49:29 | 显示全部楼层
shiva_shiva 发表于 2017-11-16 18:48
外扩的是串行的吗?那不用。

我是FSMC并行NOR FLASH,我感觉不用关中断。但是如果是SPI的应该用吧?

出0入0汤圆

发表于 2017-11-17 09:03:36 | 显示全部楼层
关注下这个问题,坐等大神解答:

<1>为什么擦除ex nor flash需要关中断?

<2>针对不同接口的ex nor flash,是否关中断还需要区别对待?

出0入0汤圆

发表于 2017-11-17 09:13:49 | 显示全部楼层
这个看怎么做的吧,如果是用MCU本身的模块,一般不用关中断。如果是用GPIO来模拟时序的,那就要看中断打断对时序的影响是否会造成错误了,如果会就要关。

出0入0汤圆

发表于 2017-11-17 09:53:46 | 显示全部楼层
我来回答一下,对于外部nor flash(全部SPI NOR FLASH和部分并行NOR FLASH):LZ如果只是擦除不需要关中断,因为擦除只是一个命令发到nor flash,之后它内部就开始运作,这时读nor flash的状态寄存器(SR)是busy,擦除完成后状态寄存器恢复idle。也就是说在这段时间内STM32是否响应中断去干别的事都没问题,毕竟响应完中断还会返回到这里,读nor flash状态寄存器是idle就完成了擦除操作。
注:满足以上条件的前提是你的中断程序里没有擦写外部FLASH的操作。另外有些老的并行NOR FLASH不是通过状态寄存器来表示擦除是否完成,而是使用某些地址数据线的toggle来判断,这也不属于上述讨论的情况。

出0入0汤圆

发表于 2017-11-17 10:04:23 来自手机 | 显示全部楼层
还是关一下好
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 14:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表