Everything
2.3.2.3 [フラッシュ・セルフ・エミュレーション設定]タブ

次に示すカテゴリごとに,フラッシュ・セルフ・プログラミング・エミュレーション(コード・フラッシュ)の設定を行います。

ただし,このタブは,選択しているマイクロコントローラがフラッシュ・メモリ内蔵品の場合のみ表示されます。

 

(1) [フラッシュ・セルフ・エミュレーション]

(2) [書き込み/消去時間設定]

(3) [マクロ・サービス・エラー]

(4) [フラッシュ・シールド・ウインドウ設定]

(5) [セキュリティ・フラグ・エミュレーション設定]

 

(1)

[フラッシュ・セルフ・エミュレーション]

フラッシュ・セルフ・プログラミング・エミュレーション機能に関する設定を行います。

図 2.16

[フラッシュ・セルフ・エミュレーション]カテゴリ

(a)

[フラッシュ・セルフ・プログラミング・エミュレーションを行う]

フラッシュ・セルフ・プログラミング・エミュレーション機能を使用するか否かを選択します。

フラッシュ・セルフ・プログラミング・エミュレーション機能を使用する場合は[はい]を選択してください(デフォルト:[いいえ])。

(2)

[書き込み/消去時間設定]

フラッシュ・メモリへの書き込み,または消去時間に関する設定を行います。

図 2.17

[書き込み/消去時間設定]カテゴリ

(a)

[コードフラッシュ・メモリへの書き込み時間]

フラッシュ・メモリへ書き込む際の遅延時間をシミュレートします。

シミュレート値を次のドロップダウン・リストにより選択してください。

リトライなし

リトライ回数を0とし,遅延時間=0(書き込み時間最速)とします。

フラッシュ・マクロ・スペック上の想定回数

使用するフラッシュ・マクロのスペック上の想定回数を遅延時間とします(デフォルト)。

フラッシュ・マクロ・スペック上の想定最大回数

使用するフラッシュ・マクロのスペック上の想定最大回数を遅延時間とします。

リトライ回数最大

リトライ回数を最大とし,遅延時間を最大(書き込み時間最長)とします。

(b)

[書き込み対象アドレス]

書き込みを行う際の遅延時間をシミュレートする対象アドレスを指定します。

直接入力により,0x0~0xFFFFFの範囲の16進数で指定してください(デフォルト:[0])。

(c)

[書き込み対象アドレスのマスク値]

書き込み対象アドレスに対するマスク値を指定します。

直接入力により,0x0~0xFFFFFの範囲の16進数で指定してください(デフォルト:[0x3])。

なお,マスクは,書き込み対象アドレスに対してビット単位で“0”をDon’t Careとします。

注意

コード・フラッシュ用フラッシュ・ライブラリへの書き込みは4バイト単位で行われるため,マスク値の下位2ビットは“1”固定で指定してください。

0x1000~0x1FFFの範囲の書き込み対象アドレスを設定する場合
[書き込み対象アドレス]: 0x1000
[書き込み対象アドレスのマスク値]: 0xF003
[対象アドレス]: 0x1000, 0x1004, 0x1008, 0x100C, 0x1010, ..., 0x1ffc

(d)

[コードフラッシュ・メモリの消去時間]

フラッシュ・メモリの消去を行う際の遅延時間をシミュレートします。

シミュレート値を次のドロップダウン・リストにより選択してください。

リトライなし

リトライ回数を0とし,遅延時間=0(消去時間最速)とします。

フラッシュ・マクロ・スペック上の想定回数

使用するフラッシュ・マクロのスペック上の想定回数を遅延時間とします(デフォルト)。

フラッシュ・マクロ・スペック上の想定最大回数

使用するフラッシュ・マクロのスペック上の想定最大回数を遅延時間とします。

リトライ回数最大

リトライ回数を最大とし,遅延時間を最大(消去時間最長)とします。

(e)

[消去対象アドレス]

消去を行う際の遅延時間をシミュレートする対象アドレスを指定します。

直接入力により,0x0~0xFFFFFの範囲の16進数で指定してください(デフォルト:[0])。

(f)

[消去対象アドレスのマスク値]

消去対象アドレスに対するマスク値を指定します。

直接入力により,0x0~0xFFFFFの範囲の16進数で指定してください(デフォルト:[0x3FF])。

なお,マスクは,消去対象アドレスに対してビット単位で“0”をDon’t Careとします。

注意

コード・フラッシュ用フラッシュ・ライブラリの消去はブロック単位で行われるため,マスク値の下位10ビットは“1”固定で指定してください。

0x1000~0x1FFFの範囲の消去対象アドレスを設定する場合
[消去対象アドレス]: 0x1000
[消去対象アドレスのマスク値]: 0xF3FF
[対象アドレス]: 0x1000, 0x1400, 0x1800, 0x1C00

(3)

マクロ・サービス・エラー]

フラッシュ・セルフ・プログラミングを行う際のフラッシュ・マクロ・サービスに関する設定として,セルフ・プログラミング・ライブラリのフラッシュ関数の動作を設定します。

図 2.18

[マクロ・サービス・エラー]カテゴリ

(a)

[マクロ・サービス・エラー]

エミュレートを行うフラッシュ・マクロ・サービスで発生させるエラーを指定します(エラー値は,通常のエミュレーションでは返ることがありません)。

発生させるエラーの種類は,このプロパティのサブプロパティとして3パターン([0]/[1]/[2])まで指定することができます。エラーを強制的に返す場合は,各[発生させるエラー]サブプロパティにおいて,次のいずれかを選択してます。

1) FlashEraseで消去エラーを返す

2) FlashBlankCheckでブランク・チェック・エラーを返す

3) FlashWriteで書き込みエラーを返す

4) FlashIVerifyで内部ベリファイ・エラーを返す

5) FlashSetSecurity / FlashSetFSWで消去エラーを返す

6) FlashSetSecurity / FlashSetFSWで書き込みエラーを返す

7) FlashSetSecurity / FlashSetFSWで内部ベリファイ・エラーを返す

 

なお,1)~4)のいずれかを選択した場合は,下段に表示される[エラーの対象アドレス],および[エラー対象アドレスのマスク値]サブプロパティにおいて,エラーを発生させるフラッシュ・メモリ領域内のアドレス,およびそのマスク値を,0x0~0xFFFFFの範囲の16進数で直接入力により指定してください(デフォルト:[0])。

[FlashWriteで書き込みエラーを返す]を選択した場合,マスク値の下位2ビットは“1”固定で指定してください(コード・フラッシュ用フラッシュ・ライブラリへの書き込みは4バイト単位で行われます)。
また,[FlashEraseで消去エラーを返す]/[FlashBlankCheckでブランク・チェック・エラーを返す]/[FlashIVerifyで内部ベリファイ・エラーを返す]を選択した場合,マスク値の下位10ビットは“1”固定で指定してください(コード・フラッシュ用フラッシュ・ライブラリの消去/ブランク・チェック/内部ベリファイはブロック単位で行われます)。

(4)

フラッシュ・シールド・ウインドウ設定]

フラッシュ・セルフによる書き込み/消去が可能な領域を制限する(フラッシュ・シールド・ウインドウ機能)設定を行います。

注意

このカテゴリ内の設定は,CPUリセットを行うまで反映されません。
設定を変更した場合は,CPUリセットを行ったのち,プログラムを実行してください。

図 2.19

[フラッシュ・シールド・ウインドウ設定]カテゴリ

(a)

[フラッシュ・シールド・ウインドウ開始ブロック]

フラッシュ・セルフによる書き込みと消去が可能な領域の開始ブロックを指定します。

直接入力により,0x0~0xFFFFの範囲の16進数で指定します(デフォルト:[0])。

(b)

[フラッシュ・シールド・ウインドウ終了ブロック]

フラッシュ・セルフによる書き込みと消去が可能な領域の終了ブロックを指定します。

直接入力により,0x0~0xFFFFFの範囲の16進数で指定します(デフォルト:[FFFF])。

(5)

セキュリティ・フラグ・エミュレーション設定]

セキュリティ・フラグ・エミュレーション機能に関する設定を行います。

フラッシュ・メモリにセキュリティを設定した場合の,セキュリティ・フラグの初期値をエミュレーションします。

注意

このカテゴリ内の設定は,CPUリセットを行うまで反映されません。
設定を変更した場合は,CPUリセットを行ったのち,プログラムを実行してください。

図 2.20

[セキュリティ・フラグ・エミュレーション設定]カテゴリ

(a)

[ブロック消去を禁止する]

ブロック消去禁止のエミュレーションを行うか否かを選択します。

ブロック消去禁止のエミュレーションを行う場合は[はい]を選択してください(デフォルト:[いいえ])。

(b)

[ライトを禁止する]

ライト禁止のエミュレーションを行うか否かを選択します。

ライト禁止のエミュレーションを行う場合は[はい]を選択してください(デフォルト:[いいえ])。

(c)

[ブート領域書き換えを禁止する]

ブート領域書き換え禁止のエミュレーションを行うか否かを選択します。

ブート領域書き換え禁止のエミュレーションを行う場合は[はい]を選択してください(デフォルト:[いいえ])。