このプログラムは、ブートモードでの書き込みを行う。書き込み時の大まかな手順は以下の通り。
- SH7045F とのボーレート合わせ
- 書き込み制御プログラムの転送
- フラッシュメモリの初期化
- 新アプリケーションプログラムの書き込み
基本的な通信プロトコルは F-ZTAT が定めているが、新アプリケーションの書き込みじに使用する通信プロトコルは任意となっている。
従って、以下では ・実装に必要な F-ZTAT 通信プロトコルの確認 ・新アプリケーションの書き込み時に使用する通信プロトコルの定義 の定義を行う。
※ F-ZTAT の詳細については、ルネサステクノロジ提供の「SH7040 シリーズハードウェアマニュアル」等を参照のこと。
- PC側が SH7045F へ 0x00 を連続送信し、0x00 という応答を受信する
- PC側が SH7045F へ 0x55 を送信し、0xaa という応答を受信する
- PC側が転送する書き込み制御プログラムのバイト数を、上位、下位の順に送信する
- SH7045F側が返すバイト数についてのエコーバックを PC側で受信する
- PC側が書き込み制御プログラムをバイト毎に転送し、エコーバックを受け取る
- フラッシュメモリの初期化自体は書き込み制御プログラム転送後に自動で行われる
- SH7045F側が 0xaa を送信する
- SH7045F側が受信した書き込み制御プログラムを 0xfffff000 番地から実行する
書き込み制御プログラムで実装する通信プロトコル等の定義。
SH7045F側から返されるメッセージは、80[byte]を越えないとする。
新アプリケーションのデータの通信時に使用する通信速度を設定する
- PC側が "SXXXXXX\n" を送信
- SH7045F側はボーレート設定終了後、PC側に '0' を送信する (エラー時 'E')
ボーレートが実際に変更されるのは、PC側が応答を返すときからとする
SH7045F側からエコーバック以外のデータを受信した場合、プログラムはアボートする
データの正当性は、mot データの check sum を用いて行う。
- PC側は、書き込みデータをアドレス、データ、チェックサムの順にバイナリ形式にて送信する
- PC側は SH7045F からの応答に従い、以下の対応を行う。応答への対応は以下の通り
- '0' ... 正常, 次のデータを送信する
- '1' ... check sum error 1回目。前回送ったデータを再送する
- '2' ... check sum error 2回目。前回送ったデータを再送する
- '3' ... check sum error 3回目。プログラムをアボートする
- 'E' ... 書き込み失敗。プログラムをアボートする
以上