開発のヒント
周辺機能、I/O、メモリ
マイコン内蔵FlashメモリのECC機能について
STM32U5、H5、H7シリーズでは内蔵FlashメモリにECC機能がついています。ECCとはError Correction Codeの略で、内容が正しく読み出せたかどうかをチェックする機能です。読み出した内容が正しいかどうかの判断が可能であり、読み違いによるマイコンの誤動作を防げます。
内蔵FlashメモリにはECCを格納する領域が別途備わっており、データをメモリに書き込む時にあわせてECCも自動計算され、この領域へ書き込まれます。(ユーザがこのアクションやECCの内容を確認することはできません)
CPUからデータを読み出す際には、データと共にECCを読み出します。読み出したデータのECCを別途計算し、読み出したものと比較して正しいかどうかの判断をします。 搭載しているECCは、1bitのエラーがあった場合には自動訂正、2bitエラーを検出するSECDED(single-error correction and double-error detection)機能を有しています。
内蔵Flashへのデータの書込み時、またはイレース中にリセットや電源OFFなどで中断してしまうと、ECC領域への書込みが正しく行われない可能性があります。この場合ECC機能によるエラーが検出されるとCPUに通知されるため(NMI)、リセットや電源OFFなどを行ってしまった場合には、再度イレースや書込みを行ってください。
注:この機能をOFFにすることはできません。
ECC機能については以下のアプリケーションノートを参照ください。
AN5342: How to use error correction code (ECC) management for internal memories protection on STM32 MCUs
URL: https://www.stmcu.jp/design/document/application_note/67174/
過去の開発のヒントはこちら