カスタム Cortex-M3 ベースのデバイスに取り組んでおり、JTAG なしでデバイス ファームウェアを更新できるように、アプリケーション内プログラミング (IAP) メカニズムを実装する必要があります (代わりに TFTP または HTTP を使用します)。ST Microelectronics から入手できる IAP 関連のコード例は十分に明確ですが、再フラッシュがどのように機能するかはよくわかりません。
私が理解している限りでは、命令はフラッシュから ICode バス (そしてもちろんプリフェッチ ブロック) を介して CPU によってフェッチされます。それで、ここで私のかなりばかげた質問があります: 実行中のプログラムが自分自身を再フラッシュする (つまり、実行中のフラッシュ メモリを変更する) 間、実行中のプログラムが破損しないのはなぜですか?