环境:
ESP8266, NONOS 2.2.1 ,Arduino+VSCode
现象:
通过spi_flash_erase_sector(扇区编号),
spi_flash_write(扇区编号*4096, buffer, buffer大小);
对FLASH进行擦写操作,导致异常重启,而使用
spi_flash_read(扇区编号*4096, buffer, buffer大小);时正常。
分析:
经过一系列分析后,记起一句话,
“写FLASH要关中断”
。将软硬件中断关闭后,可以正常使用Flash了。
在API中查找开关中断的函数为:
ETS_INTR_LOCK(); //关中断
ETS_INTR_UNLOCK(); //开中断
请同志们务必注意FLASH与中断的关系,不要犯此大忌讳。
版权声明:本文为c_1969原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。