コンテンツにスキップ

# イレース・プログラム・ベリファイ範囲

ターゲットデバイスのメモリのうち、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`

## 関連項目

Unused byte

2025-07-23