STM32H7 - Flash
組込みFlash1.0版

こんにちは、STM32H7 メモリインタフェースのプレゼンテーションへようこそ。STM32H7 Flashメモリの新機能をすべてカバーしています。

1

主な機能(1/2)

2• 最大2メガバイトのFlashメモリ• 256ビット幅のFlashワード• エラーコード修正(ECC):Flashワードあたり10ECCビット• プログラム:• 256ビットによるFlashプログラミング• ダブルワード、ワード、ハーフワード、バイト書込み操作• 同時オペレーションをサポートするデュアルバンク機能:• 2つのリード/プログラム/消去操作は、2つのバンクで並列に実行可能

STM32H7デバイスは、プログラムやデータの保存に使用できる最大2メガバイトのデュアルバンクFlashメモリを備えた高速組込みメモリを持ちます。
Flashメモリは、コードとデータの両方の定数を格納するために使用できる266ビットのFlashワードとして構成されています。各ワードは次の要素で構成されます。
- 1つのFlashワード(8ワード、32バイトまたは256ビット)- 10 ECCビット- STM32H7シリーズは、デュアルバンク構成のFlashメモリを備えており、同時オペレーションをサポートしています : 2つのリード/プログラム/消去オペレーションを2つのバンクで並列に実行できます。

2

主な機能(2/2)

3• 強化された保護機能• 読出し保護• セクター書込み保護• 2つのPCROP保護領域(バンクあたり1つ)(実行専用メモリ)• ユーザーFlashメモリ内の2つのセキュリティで保護された領域(バンクあたり1つ)• バンクスワッピング:各バンクのユーザーFlashメモリのアドレスマッピングをスワップ• オプションバイト

Flashメモリは、オプションバイトを使用して設定できるセキュリティ強化機能をサポートしています。読取り保護(RDP)、セクター書込み保護、および2つのPCROP保護領域(バンクあたり1つ)(実行専用メモリ)です。
Flashインタフェースでは、バンク1とバンク2のメモリマッピングをスワップできます。この機能は、ファームウェアのアップグレード後、システムのリセット後に新しいファームウェアでデバイスを再起動するために使用できます。
Flashインタフェースでは、各Flashバンクに「セキュア」領域を設定することもできます。この領域に保管されているデータおよびプログラムは、セキュア・モードが設定されていない限りアクセスできません。セキュリティで保護された領域は、セキュリティで保護されていないアプリケーションコードからセキュリティで保護されたユーザーコードを分離するのに役立ちます。
これらの保護オプションの詳細については、システム保護に関するトレーニングを参照してください。

3Flashメモリ･ブロック図
マスタ2

AHB

マスタn

32ビット

sys_ck

AXI

相互接続

64ビット

Flashコンフィ
ギュレーション
レジスタ

Flashメモリ
インタフェース

マスタ1

4

Flash_it

NRST
Flash
バンク
1

Flash
バンク
2

266ビット

この図は、Flashメモリのブロック図の概略を示しています。
Flashインタフェースは、コード/データアクセス用のデュアルAXIバスインタフェースと、Flashメモリインタフェースを設定するためのAHBインタフェースを実装します。AXIインタフェース
は、読取り/プログラムオペレーションを同時に実行できます。

4Flashメモリ・アーキテクチャ

5• Flashメモリは266ビットワードとして構成:• 256ビットデータFlashワード(8ワードまたは32バイト)• ＋10ECCビット• Flashメモリは2つの独立したバンクに分かれる。各バンクは• 128キロバイトセクタ(8xセクタ)に分割された1メガバイトのユーザーFlashメモリブロック• 128キロバイトのシステムFlashメモリ• ユーザー構成用のユーザ・オプション・バイト 2キロバイト(64Flashワード)• バンク1でのみ利用可能• Flashレジスタ・インタフェースを介してのみアクセス(メモリマップ上には無い)• Flashインタフェースは、各バンクで異なるオペレーションを並列に実行可能だが、特定のバンクで1度に1回の読取りまたは書込み操作は1回のみ実行可能

Flashメモリは、コードとデータの両方の定数を格納するために使用できる266ビットのFlashワードとして構成されています。各ワードは次の要素で構成されます。
•1つのFlashワード(8ワード、32バイトまたは256ビット)•10ECCビット
Flashメモリは2つの独立したバンクに分かれています。各バンクは次のように構成されます。
•128キロバイト(4キロFlashワード)の8つのユーザーセクタを含む1メガバイトのユーザーFlashブロック•デバイスが起動できるシステムFlashメモリの128キロバイト:この領域には、ルートセキュアサービス(RSS)とブートローダーが含まれており、それぞれ、USART、USB(DFU)、I2C、SPI、またはイーサネットのいずれかのインタフェー
スを通じて、セキュアまたは非セキュアFlashメモリプログラミングが可能です。
システムFlashメモリは、STが使用するために予約されています。これは、デバイスが製造されたときにSTによってプログラムされ、その後、偽のプログラム/消去オペレーションから保護されます。詳細は、http://www.st.comから入手可能なアプリケーションノートAN2606「STM32マイクロコントローラシステムFlashメモリブートモード」を参照してください。
•ユーザー設定用のユーザーオプションバイトの2キロバイト(64Flashワード):この領域はバンク1でのみ利用可能です。ユーザーのFlashメモリやシステム
Flashメモリとは異なり、メモリアドレスにはマップされず、Flashレジスタインタフェースを介してのみアクセスできます。

5

Flashメモリ構成
ブロックベースアドレス

サイズ

セクタ00x0800 0000 - 0x0801 FFFF

128キロバイト

セクタ1

0x0802 0000 - 0x0803 FFFF

128キロバイト

…

…

セクタ7

0x080E 0000 - 0x080F FFFF

128キロバイトシステムFlash システムメモリ

0x1FF0 0000- 0x1FF1 FFFF

128キロバイトオプション・バイト・セクタ

メモリマップされていない

2キロバイト

セクタ0

0x0810 0000 - 0x0811 FFFF

128キロバイト

セクタ1

0x0812 0000 - 0x0813 FFFF

128キロバイト

…

…

セクタ7

0x081E 0000 - 0x081F FFFF

128キロバイト

0x1FF4 0000- 0x1FF5 FFFF

128キロバイト

メインメモリ

名前

メインメモリ

バンク2

バンク1

ブロック

システムFlash システムメモリ

6

この表は、それぞれ128キロバイトの8セクタを含むメインメモリブロックを持つ2バンクに分割されたFlashメモリの構成を説明します。
各メインメモリブロックには、システムFlashブロックがあり、システムメモリはSTで使用するために予約されており、ブートローダが含まれています。選択すると、デバイスはシステムメモリでブートしてブートローダを実行します。
バンク1でのみ使用可能なユーザー構成用のユーザー・オプション・バイトの2キロバイト(64Flashワード)があります。

6

Flash読取りオペレーション

7• Flashインタフェースは、次のアクセスタイプをサポート• ダブルワード(64ビット)• シングルワード(32ビット)• ハーフワード(16ビット)• バイト(8ビット)• Flashインタフェースは、次の機能を実装• コード/データアクセス用のデュアルAXIバスインタフェース• Flashインタフェース構成用のAHBインタフェース• 正しいFlashインタフェースの読取りオペレーションを確認するには、Flashメモリインタフェースの周波数に応じて、FLASH_ACRレジスタで待機状態(LATENCY)の数を正しく設定する必要がある

Flashインタフェースは、ダブルワード(64ビット)、シングルワード(32ビット)、ハーフワード(16ビット)、またはバイト(8ビット)でアクセスできます。
Flashメモリから情報を読取る際には、Flashインタフェースクロッ
クを有効にして実行する必要があります。正しいFlashインタフェースの読取りオペレーションを確認するために、待機状態の数(LATENCY)をFlashメモリインタフェースの周波数に従ってFLASH_ACRレジスタで正しく設定する必要があります。
Flashインタフェースは、コード/データアクセス用のデュアルAXIバスインタフェースと、Flashインタフェース設定用のAHBインタフェースを実装します。AXIインタフェースは、読取り/プログラムオペレーションを同時に要求できます。

7

Flash読取りオペレーション

8• 電源投入後、使用するクロックはHSI(64MHz)で、7WSはデフォルトでFLASH_ACRレジスタに設定• AXIクロック周波数とFlashメモリの読取り時間の関係
VCORE範囲

VOS0/VOS1

1.15V–1.35V

VOS2

1.05V–1.15V

VOS3

0.95V–1.05V

ウェイト状態(WS)(LATENCY)

最大AXI周波数

0WS
1WS
2WS
3WS
4WS
0WS
1WS
2WS
3WS
0WS
1WS
2WS
3WS
4WS

70MHz
140MHz210MHz225MHz240MHz55MHz110MHz165MHz225MHz45MHz
90MHz
135MHz180MHz225MHz

この表は、ウェイト状態の数、バスクロック周波数、およびVCORE範囲の対応を示しています。電源投入後、使用するクロックはHSI(64MHz)で、デフォルトでは7つのウェイト状態がFLASH_ACRレジスタに設定されます。

8

Flash読取りオペレーション

9• Flashインタフェースは読取りコマンドバッファを実装• バッファは、3段のリクエストに固定されます。
• フル(3つの読取りリクエストがバッファのキューに入っている)が発生すると、新しい読取り要求によってバスインタフェースが停止し、結果としてマスタが停止• Flashインタフェースは読取りデータバッファを実装• 同じFlashデータワード(256ビット)に属するデータに対するシステム読取りリクエストは、追加のFlash読取り操作をトリガーせず、データは現在のデータ読取りバッファから直接読込まれる• 読取りバッファで使用できないデータに対するシステム読取り要求は、Flash読取り操作をトリガーする• 各バンクへの読取りコマンドは、256ビットの読取りデータ・バッファに関連付けられる読取りメカニズムは次のとおりです。
•読取りコマンドバッファは、3段のリクエストに固定されています。フル(3段の読取りリクエストバッファのキューに入っている)が発生すると、新しい読取り要求によってバスインタフェースが停止し、結果としてマスタが停止します。
•読取りバッファで使用できないデータに対するシステム読取りリクエストは、Flash読取り操作をトリガーします。このデー
タは、読取りデータバッファ内に保存されます。
複数の連続した読取りアクセスが同じFlashデータワード(256ビット)に属するデータをリクエストする場合、データは現在のデータ読取りバッファから直接読取られ、追加のFlash読取り操作はトリガーされません。

9

Flash読取りオペレーション

10• 読取りオペレーションは、Flashインタフェースの受信オーダで実行• 読取りリクエストバッファは、FlashメモリからFlashメモリインタフェース内の読取りデータバッ
ファに現在の読取りトランザクションの最後のデータが転送されるとすぐに解放される

現在の読取りトランザクションの最後のデータがFlashメモリからFlashメモリインタフェース内の読取りデータバッファに転送されると、読取りコマンドキューバッファは解放されます。

10エラーコード修正(1/2)

11• ECCメカニズムは、SECDEDアルゴリズムに基づき、次をサポート• シングルエラー訂正• ダブルエラー検出• ECCエラーが検出された場合• 障害が発生したFlashワードのアドレスは、FLASH_ECC_FA1/2Rレジスタに保存• 連続したエラー検出の場合、最初のエラーに対応するアドレスのみが保存• エラーが検出され、修正された場合• FLASH_SR1/2レジスタのSNECCERR1/2フラグにセット• FLASH_CR1/2レジスタのSNECCERRIEビットがセットされている場合、割込みを生成

Flashメモリ内のデータは266ビットワード:256ビットのフラッシュワードごとに10ECCビットが追加されます。
ECCメカニズムは、SECDEDアルゴリズムに基づいています。
次をサポートしています。
•シングルエラー訂正•ダブルエラー検出
エラーが検出されて修正されると、FLASH_SR1/2レジスタのSNECCERR1/2フラグにセットされます。FLASH_SR1/2レジ
スタのSNECCERRIEビットがセットされている場合、割込みが生成されます。
ECCエラーが検出されると、障害が発生したFlashワードのアドレスがFLASH_ECC_FA1/2Rレジスタに保存されます。
連続したエラー検出の場合、最初のエラーに対応するアドレス値が保存されます。エラーを生成した関連フラグがリセットされると、このレジスタは自動的にクリアされます。

11エラーコード修正(2/2)

12• 2つのエラーが検出された場合(この場合、受信データは修正されない)• FLASH_SR1/2レジスタのDBECCERR1/2フラグにセットされる• バスエラーの発生• FLASH_CR1/2レジスタのDBECCERRIE1/2ビットがセットされている場合、割込みが生成2つのエラーが検出されると、FLASH_SR1/2レジスタのDBECCERR1/2フラグがセットされ、バスエラーが生成されます。この場合、受信データは修正されません。
FLASH_CR1/2レジスタのDBECCERRIE1/2ビットがセットされている場合、割込みが生成されます。

12

巡回冗長検査(1/3)

13• Flashインタフェースは、1つの巡回冗長検査ハードウェア(CRC)モジュールを持つ• バンク1、または2に対するCRCチェックの操作は一度に1つのみ可能• CRCのチェック領域は、セクタまたは開始/終了アドレスによって定義

Flashインタフェースは、巡回冗長検査(CRC)ハードウェアモジュールを持ちます。このモジュールでは、Flashエリアのコンテンツの整合性をチェックできます。この領域は、セクタまたは開始/終了アドレスによって定義できます。
バンク1、または2でのCRCチェック操作は、一度に1つのみ開始できます。
CRC操作は、オプション・バイト変更操作と並行して実行することはできません。これは、オプション・バイト変更が進行中の間にCRC操作が要求された場合、CRC操作を提供する前にオプション・バイト変更操作を完了する必要があり、その逆も行う必要があることを意味します。

13

巡回冗長検査(2/3)

14• CRCハードウェア・モジュールは、128、512、2048または8192バイトの塊でFlashデータを処理• Flashインタフェースの問題：4、16、64または256の連続したFlashワード読み取りアクセス• CRCバースト長はソフトウェアで設定可能• これらのトランザクションは、他のAXI読取りリクエストと共に、読取りコマンド・キューに入れられる:• したがって、AXI読取りコマンドを拒否することを回避• キュー・コマンド・バッファにはCRCコマンドを1つだけ含めることが可能

Flashインタフェースは、4、16、64、または256の連続したFlashワード読取りアクセスを発行します。これらのトランザクションは、他のAXI読取りリクエストと共に読取りコマンドバッファのキューに入れられます。キューのコマンドバッファにはCRCコマンドを1つだけ含めることができます。

14

巡回冗長検査(3/3)

15• CRCチェックの設定手順:
1. FLASH_CR1/2レジスタでCRC機能を有効
2. FLASH_CRCCR1/1レジスタに必要なデータバーストサイズを入力
3. CRCを計算するFlash領域を定義(セクタまたはアドレス)
4. START_CRCビットをセットし、CRC操作をスタート
5. CRC_BUSYフラグがリセットされるまで待機
6. FLASH_CRCDATARレジスタのCRC結果を取得• CRCは、FLASH_CRCCR1/2レジスタにあるALL_BANKビットをセットすることで、バンク全体に対して計算可能• PCROPまたはセキュア保護されたユーザーFlash領域でCRCを実行すると、予期されるCRC値が変更される可能性がある

バンク1と2でCRC操作を設定する推奨シーケンスは、次のとおりです。
1.FLASH_CR1/2レジスタのCRC_ENビットをセットしてCRC機能を有効にします。
2.FLASH_CRCCR1/2レジスタのCRC_BURSTフィールドに、目的のデータサイズをインプットします。
3.CRCを計算するFlash領域を定義します。以下の2つのソリューションが可能です。
•FLASH_CRCSADD1/2R、およびFLASH_CRCEADD1/2Rをプログラミングすることにより、エリアの開始アドレスと終了アドレスを定義します。
•または、FLASH_CRCCR1/2レジスタにCRC_BY_SECTビットをセットし、FLASH_CRCCR1/2レジスタのCRC_SECTフィールドでターゲットセクタ番号を連続してプログラミングすることにより、対象のセクタを選択します。各CRC_SECTプログラミングの後にADD_SECTビットをセットします。
4.START_CRCビットをセットしてCRC操作を開始します。
5.CRC_BUSYフラグがリセットされるまで待ちます。
6.FLASH_CRCDATARレジスタのCRC結果を取得します。
CRCは、FLASH_CRCCR1/2レジスタのALL_BANKビットをセットすることで、バンク全体に対して計算できます。
15

Flashプログラムと消去操作(1/2)

16• Flashメモリインタフェースは、複数のプログラム操作をサポート:• ユーザセクタの書込み• ユーザセクタの消去• バンク1、バンク2、または両方のバンクの消去• ユーザオプションバイトの変更• Flashインタフェースの書込みキューバッファには、2つのリクエストを含められる:• 書込みキューバッファがいっぱいになるまで、書込みアクセスは受け入れられる• いっぱいになると、FlashインタフェースはAXIバスを停止• 書込み操作は、Flashインタフェースで受信した順序で実行

Flashメモリインタフェースは、複数のプログラム操作をサポートします。
•ユーザーセクタの書込み•ユーザーセクタの消去•バンク1、バンク2の消去、または両方のバンクの消去•ユーザーオプションバイトの変更
AXIインターフェイスを介して発行された書込みアクセスは、Flashインタフェース内の書込みバッファを読取ることができないことを除き、バッファリング可能でキャッシュ不可能と見なすことができます。
組込みFlashメモリは、インサーキットプログラミングまたはアプリケーション内プログラミングを使用してプログラムできます。

16

Flashプログラムと消去操作(2/2)

17• バンク1でプログラムまたは消去操作を実行し、別のプログラムまたは消去操作をバンク2で実行することが可能• レベルの復帰が必要な場合のオプションバイト変更の例外:この場合、両バンクが使用可能でないといけない• 並列処理は、プログラムまたは消去操作に対して設定する必要がある• 並列処理は、書き込み操作中に1回のショットで‘0’に書き込むことができる最大ビット数。プログラミング並列処理は、セクターおよびバンク消去操作の際にも使用される

バンク1でプログラムまたは消去操作を実行し、別のプログラムまたは消去操作をバンク2で実行することができます。
プログラミング並列処理は、プログラムまたは消去操作を実行する前に構成する必要があるパラメータであることに注意してください。

17

プログラミング・パラメータの構成18• Flash構成レジスタのロック解除とプログラム(FLASH_CR1/2)• FLASH_CR1/2レジスタのPSIZE1/2ビットを使用し、各バンクのプログラミング並列処理を設定• 並列処理のプログラミング(バイト、ハーフワード、ワード、ダブルワード)にハードウェア制限はない• 並列処理が低いほど、プログラミング操作中の消費電流のピークが低くなる• 並列処理が低いほど、実行時間が長くなる• FLASH_ACRレジスタのWRHIGHFREQパラメータを使用し、プログラミング遅延を設定• プログラミング動作タイミング制約は、Flashインタフェース周波数によって異なる

ユーザー・アプリケーションは、プログラム/消去操作を実行する前に、プログラミング・パラメータを構成する必要があります。

18

Flashプログラミング･シーケンス
シンプルな書込みシーケンス

19

最適ブロック書き込みシーケンス

FLASH_CR1/2レジスタのPG1/2ビットに対象バンクを設定(バンク1/2)

ターゲット・メモリ領域の保護を確認
32バイトのアライン・アドレスから始まる32バイト・データ ブロック全体が転送されるまで、連続して32データバイに対応する1つのFlashワードを書く
ト(Flashワード)を書込む
各Flashワードは、32バイトのアラインメント・アドレスで開始する必要がある
QW1/2フラグが発生していることを確認し、リセットされるまで待機2つの書込み操作モードが可能です。
シンプルな書込み順序(推奨)は以下の通りです。
1.FLASH_CR1/2レジスタのPG1/2ビットに対象のバンクの設定をします(バンク1/2)。
2.ターゲットメモリ領域の保護を確認します。
3.32バイトのアラインアドレスから始まる32バイトのデータに対応する1つのFlashワードを書きます。
4.QW1/2フラグが発生していることを確認し、リセットされるまで待ちます。
以下のシーケンスは、Flashメモリ内のブロック単位をプログラムするために使用できます。
1.対応するバンクのFLASH_CR1/2レジスタにPG1/2ビットを設定します(バンク1/2)。
2.ターゲットメモリ領域の保護を確認します。
3.ブロック全体が転送されるまで、連続して32データバイト(Flashワード)を書き込みます。
各Flashワードは、32バイトのアラインメント・アドレスで始まる必要があります。

19

ステータスのビジー状態フラグの書込み

20• FLASH_SR1/2レジスタに存在する3つの異なるステータス･フラグは、各バンクで使用可能、これらは、進行中の書込み操作の状態を示す

フラグ

説明

BSYx

このフラグは、有効な書込み、消去、またはオプションバイト変更操作がFlashメモリに進行中であることを示す

QWx

このフラグは、プログラム、消去、またはオプションバイト変更操作が保留状態であることを示す
このビットは、書込み操作が完了するまでセットされる。BSYxステータスビットに取って代わる

WBNEx

このフラグは、書込みバッファが空ではないことを示す
書込みコマンドがキューに入るとすぐにリセットされる

FLASH_SR1/2レジスタに存在する3つの異なるステータスフラグは、各バンクで使用できます。これらは、進行中の書込み操作の状態を示します。
・BSY1/2:このフラグは、有効な書込み、消去、またはオプションバイト変更操作がFlashメモリに進行中であることを示します。
・QW1/2:このフラグは、プログラム、消去、またはオプションバイト変更操作が保留されていることを示します。このビットは、書込み操作が完了するまでセットされます。BSY1/2ステータスビットに取って代わります。
・WBNE1/2:このフラグは、書込みバッファが空でないことを示します。書込みコマンドがキューに入るとすぐにリセットされます。

20

ステータスのビジー状態フラグの書込み

21• ビジー状態フラグの1つがアクティブな場合、MCUはD1ドメインをSTOPモードまたはスタンバイモードに切り替えることはできない• Flashインタフェースを解放するには、BSYxおよびQWxビジービットを次の方法でクリアする必要がある• データが欠落している書込みバッファを完了させる• FLASH_CRxレジスタのFWxビットをセットすることにより、不足しているデータを埋めずに書込みを強制• FLASH_CRxレジスタのPGxビットをリセットして書込みを終了すると、書込みバッファ内のデータが失われる

ビジーフラグの1つがアクティブな場合、MCUはD1ドメインをSTOPモードまたはスタンバイモードに切り替えることができません。
Flash・インタフェースを解放するには、BSYxおよびQWxビジー・ビットをクリアする必要があります。

21

ユーザオプション･バイト

22• ユーザオプション・バイトの変更操作を使用し、構成およびFlash・メモリ・オプション・バイト領域に保管されている保護設定を変更可能• Flashインタフェースでのオプション・バイト・ストレージの堅牢性を高めるために、各オプション・バイト・データは、Flashメモリ内のエラー・コード訂正(ECC)に関連付けられる• Flashインタフェースは、オプションバイトレジスタの2つのセットを備える• FLASH_XXX_CUR:すべての「_CUR」レジスタは読取り専用
これらの値は、電源投入後、またはオプションバイト変更操作後に自動的にロードされる• FLASH_XXX_PRG:すべての「_PRG」レジスタは読取り/書き込みモード
このレジスタを設定すると、オプションバイトを変更可能

ユーザーオプションバイトの変更操作を使用し、構成およびFlash・メモリ・オプション・バイト領域として保存された保護設定を変更できます。
Flashインタフェースには、オプションバイトレジスタの2つのセットがあります。
•最初のレジスタセットには、オプションバイトの現在の値が含まれます。それらの名前には_CUR拡張子があります。すべての「_CUR」レジスタは読取り専用です。これらの値は、電源投入後、またはオプションバイト変更操作後に自動的にロードされます。
•2番目のレジスタセットでは、オプションバイトを変更できます。
名前には、PRG拡張子が含まれ、すべての「_PRG」レジスタは、読取り/書き込みモードでアクセスできます。

22

割込み23• 各エラーフラグは、対応する割込み有効化ビットがFLASH_CR1/2レジスタに設定されている場合に割込みを生成可能
割込みイベント

説明

操作終了

1つ以上のFlashメモリ操作(プログラミング/消去)が正常に完了した場合にハードウェアでセットプログラミングエラー

Flashメモリ操作(プログラム/消去)が完了するとハードウェアによってセット成功していない

書込み保護エラー

書込み保護領域、システムメモリ領域またはOTP領域でプログラムまたは消去を実行する際、ハードウェアによってセット操作エラー

Flashメモリが書込みまたは消去操作中にエラーを検出した場合に、ハードウェアによってセット
このエラーは、Flashメモリの動作が正しくないことが原因で発生する可能性がある

4つの割込みは、Flashメモリによって生成できます。
1つ以上のFlashプログラムまたは消去操作が正常に完了すると、操作終了割込みがセットされます。
Flashメモリへのプログラムまたは消去操作が失敗すると、プログラミングエラー割込みがセットされます。
書込み保護エラー割込みは、Flashメモリの書込み保護領域への書込みアクセスが試行されるとセットされます。
書込みまたは消去操作中にエラーが検出されると、操作エラー割込みがセットされます。

23