いつもお世話になっております。
H8をさわり始めたばかりの、小栗と言います。
今回フラッシュメモリの書き換えを、ユーザープログラムモードを利用して行いたい
と考えています。
①PCからプレライト実行命令を取得
②プレライト実行
③PCへプレライト完了を送信
④PCから消去実行命令を取得
⑤消去実行
⑥PCへ消去完了を送信
っといった感じに処理を進めたいと考えています。
しかし、②のプレライト実行を行い最終アドレスに0x00を書込んだところで、何か問
題が発生しているようです。
この原因がわからなくメールを送信いたしました。
この書込み関数は、下記の通りに行っております。
if(*gblPreAdr == 0x00)
{
if(gblPreAdr < &AD_E)
{
gblPreAdr++; /* 書込み先アドレス++ */
gblPreMember = PRE_STEP2; /* ステータス移行 */
}
else
{
gblPreMember = PRE_STEP8; /* ステータス移行 */
}
}
else
{
gblPreMember = PRE_STEP5; /* ステータス移行 */
}
※unsigned char *gblPreAdr; /* プレライト処理アドレス */
※#define AD_E (*(unsigned char *)0x1FFFF)
っという記述を行っています。
0x00000〜0x1FFFFまで順にアドレスをインクリメントし、1バイト単位で0x00を書込
んでいくものです。
上記の処理では、0x00を書込めたかを確認するためのベリファイ処理を行っていま
す。
このアドレスが0x1FFFFまで、行ったときに何か問題が発生しています。
この処理になにか問題があるでしょうか?
アドバイスよろしくお願いいたします。
以上。