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