STM32的cpu,在flash擦写的时候都有明确提醒: 在执行闪存写操作时,任何对闪存的读操作都会锁住总线。 这种怎么理解, 程序IAP升级的时候不都要运行的时候接受数据包写到内部flash, 等待升级程序接收完成后升级嘛? |
IAP程序可以放到RAM中运行
IAP程序可以放到RAM中运行
但是在接收升级程序写flash的过程中,正常运行的功能不能有影响,如果编程flash的过程中会暂停读取指令,正常运行的功能肯定会不正常吧?
写flash的指令正执行的时候,总线锁定,程序停止,有些流水线的读指令可能就不能运行。写入一个字DWORD后,总线就解除了。再继续执行写flash指令的下一条指令啊。
半导体工艺中,烧写FLASH时是需要高一些电压(内部升压),所以这时候内部总线的这个接口不会工作,但是持续时间有限。 一种方式是烧写FLASH时不做其他读写,等烧录后再执行读写指令。 另一种方式是将需要这时候执行的代码放置在RAM中执行,不受到FLASH接口影响。