当flash读写碰到中断会发生什么?
当flash读写碰到中断会发生什么,中断执行完会继续吗?flash是不能被打断的,应该会挂掉吧,或者错误退出读写。 **作外部flash,比如24cxx的时候,从来没关过中断,没出现过错误的。 操作stm32内部flash的时候,印象里擦出的时候必须保持N个周期,否则将导致复位。通常会关闭总中断,在完成后再开启。
写Flash时,FLASH已被写操作占用,此时发生中断,cortex-m响应中断要执行的代码如果在FLASH中,FLASH无法响应cortex-m的取指令要求,cortex-m当然取不到指令,只能干瞪眼。 flash操作需要一定的时间完成,如果有中断不停的产生,也会出现卡机现象。
最好不要这么干,操作flash的时候一定要关闭中断。
要区分是内部flash还是外部flash,内部的话,要注意中断,外部的话,应该影响小点。
读写FLASH 是有时序的 。你不应该中断时序。去执行别的
我出现过这种情况,写flash的时候,中断不能实时的响应。 如果想写FLASH时响应中断,唯有cortex-m从RAM中取指令能行的通,即写FLASH前,将响应中断的代码从FLASH拷入RAM中运行并将中断向量表设置到RAM即可。 操作flash的时候,最好中断关掉,写完再开启也用不了多长时间的。 路过拿积分的 wodelqbz 发表于 2017-9-29 15:33
写Flash时,FLASH已被写操作占用,此时发生中断,cortex-m响应中断要执行的代码如果在FLASH中,FLASH无法响 ...
应该是很芯片内部的设计有很大的关系。
页:
[1]