我正在开发一个基于 Cortex-M3 的定制设备,我需要实现应用内编程 (IAP) 机制,以便可以在没有 JTAG 的情况下更新设备固件(我们将使用 TFTP 或 HTTP)。虽然 ST Microelectronics 提供的与 IAP 相关的代码示例对我来说已经足够清楚了,但我并不真正了解重新刷新是如何工作的。
据我了解,指令是由 CPU 通过 ICode 总线(当然还有预取块)从闪存中获取的。所以,这是我非常愚蠢的问题:为什么正在运行的程序在重新刷新自身时不会损坏(即更改运行它的闪存)?