フラッシュのプログラミング中に、フラッシュへのアクセスを試みると、CPU が停止すると思います。
したがって、プログラム操作中に重要なコード (おそらく割り込みハンドラー、ウォッチドッグ キッカーなど) が RAM を使い果たすことができるようにする必要があります。最後に STM32 を使用したとき (おそらく 2 年ほど前) は、まさにその通りでした。
明確にするために、投稿の最後にある質問に答えます。
この質問のもう 1 つの言い方は、「フラッシュ プログラミング コードを RAM から実行すると、フラッシュ ページ消去の停止を回避できますか?」です。
答えは「いいえ」だと思います。フラッシュ プログラミング ドライバーがどこにあるかはそれほど重要ではありません。重要なのは、消去/プログラム操作の進行中にコードが何をするかです。CPU が操作中にフラッシュにアクセスしようとすると、プログラムの命令を読み取ったり、定数のテーブルを読み取ったりする場合でも、停止すると思います。
これがNXPフラッシュがARM uCでどのように機能するかを知っていますが、STM32についても章と節を引用したいと思いました. 何らかの理由で、フラッシュ プログラミング マニュアルは現在入手できないようですが、同様の文書で次の言語を見つけました (PM0068 だと思います)。
CPU がフラッシュ メモリにアクセスしない限り、進行中のフラッシュ メモリ操作によって CPU がブロックされることはありません。
と
プログラミング中に [フラッシュへの] 読み取り/書き込み操作が開始された場合 (BSY ビットがセットされている)、進行中のメイン フラッシュ メモリのプログラミングが終了するまで、CPU は停止します。