in-application programming (IAP)
STM32Cube in-application programming using the USART embedded software (AN4657)
IAPの概要については「AN4657 USARTを使用したSTM32イン・アプリケーション・プログラミング(IAP)」に記載がある.
stm32F4での実装に関しては
アプリケーションノートAN3965 USARTを使用したSTM32F40x/STM32F41xイン・アプリケーション・プログラミング、
ソースコードSTSW-STM32067 STM32F4 in-application programming (IAP) using the USART (AN3965)がある.
X-CUBE-IAP-USART STM32Cube in-application programming using the USART embedded software (AN4657)にサンプルコードが入っているのでこれを使うとTeraTermからバイナリファイルを点灯してファームウェアを読み書きできる。
G4用のものに関しては参考にしつつ自分で実装した。L4のサンプルコードが入っていたので参考似ながら作ったが、ライトプロテクション周りにバグがあったので注意が必要。これをミスってCubeProgrammerでオプションバイトを書き直すはめになった。