イレース・プログラム・ベリファイ範囲
ターゲットデバイスのメモリのうち、I.S.P-320がイレースする範囲、およびプログラムやベリファイを行う範囲について説明します。
1. イレース範囲
I.S.P-320は、以下の範囲をイレースします。
- 領域(コードフラッシュ, またはデータフラッシュなど)全体。
チップ全体を消去する場合
ターゲットデバイスの仕様など、条件によりチップ全体を消去の場合があります。 条件は品種によります。
イレースしない場合
例として、書込み時に自動で事前にイレースが行われるデバイス品種は、特にイレースを行わない場合があります。
1.1. STM32L011の例
ターゲットデバイス名 | 条件 | イレース範囲 | 解説 |
---|---|---|---|
STM32L011x3 |
プロテクト未設定 | 0x8000000~0x8001FFF | メインフラッシュの領域全体がイレースされます。 |
STM32L011x3 #A |
プロテクト未設定 | 0x8080000~0x80001FF | データフラッシュの領域全体がイレースされます。 |
STM32L011x3 |
ターゲットにプロテクト設定済み | 0x8000000~0x8001FFF 0x8080000~0x80001FF |
書込の際、プロテクトを外します。 その際、チップ全体がイレースされます。 こちらは、CPUの仕様によるものです。 |
2. プログラム・ベリファイ範囲
I.S.P-320は、以下の範囲をプログラム・ベリファイします。
- ユーザーデータが存在する部分を含む、切りのいい範囲。
切りのいい範囲について
①範囲の単位は、0x10 ~ 0x400バイト程度です。こちらの値は、公開はしておりません。
②データ前後の半端な空領域はUnused byte
とみなされます。
③ユーザーデータの先頭に0xFFが続いており、単位全体が0xFF
となる場合、データが無いものと見なす場合があります。
Unused byte
ROM全体を書き込む場合
例として、必ず領域全体を書き込む必要があるCPU品種は、ユーザーデータに関わらずROM全体を書込みます。
2.1. 例
- ROM : 0x0000~0xFFFF
- Unused byte :
0xFF
- 範囲単位 : 0x100バイト
- ユーザーデータ :
Address | データ | 解説 |
---|---|---|
0x0000 – 0x00FF | 空 |
|
0x0100 – 0x01FF | 0xFF 0xFF … 0xFF |
切りのいい範囲のルール③より、データは無いものとみなされます |
0x0200 – 0x02FF | 空 空 空0x03 0x04 0x05 … 0xFE 0xFF |
切りのいい範囲のルール②より、空の部分はUnused byte とみなされます。 |
0x0300 – 0x03FF | 0x00 0x01 0x02 0x03 … 0x46 0x47 0x48 空 空 … 空 |
切りのいい範囲のルール②より、空の部分はUnused byte とみなされます。 |
… | 空 |
|
0xFE00 – 0xFEFF | 空 |
|
0xFF00 – 0xFFFF | 空 |
↓
- 実際に書き込まれるデータ :
Address | データ |
---|---|
0x0200 – 0x02FF | 0xFF 0xFF 0xFF 0x03 0x04 0x05 … 0xFE 0xFF |
0x0300 – 0x03FF | 0x00 0x01 0x02 0x03 … 0x46 0x47 0x48 0xFF 0xFF … 0xFF |