ソースコードはあるから、既存製品のE2PROMに書かれた値を確認してほしいとの依頼があり、引き受けましたが、いざE8a エミュレータを接続すると、IDコード確認画面が出てきて困りました。
その時の対処方法を記述します。
最初に実行したこと
・依頼先にIDコードを聞く。
・書いたプログラマーに IDコードを 聞く。
結論から言うと、誰に聞いても昔のことで不明でした 。
初期値の入力
資料を調べると、ID未設定時の初期値が”FFFFFFFFFFFFFF“と判明。
結論から言うと、初期値に”FFFFFFFFFFFFFF“を入力しても受け付けてくれませんでした。
Flash Development Toolkitでの接続確認
Flash Development ToolkitでMotファイルを読み込むと、メッセージウィンドウ欄にIDコードが出ることが判明しました。

表示されているIDコードの”00000000000000“を入力して、エミュレータは無事起動しました。
原因調査
ルネサスの資料
下記ルネサスのスタートアッププログラムの説明を見ると、3ページ目の”4.1固定ベクタテーブルの設定”と 8ページ目の”4.10 IDコード書き込み”にIDコードが記載されている。
High-performance Embedded Workshop スタートアッププログラムの説明
また、E8aエミュレータの使用上の注意事項の38ページには”表7.6 IDコード格納領域”が記載されている。
FFFDFh IDコード 1バイト目
FFFE3h IDコード 2バイト目
FFFEBh IDコード 3バイト目
FFFEFh IDコード 4バイト目
FFFF3h IDコード 5バイト目
FFFF7h IDコード 6バイト目
FFFFBh IDコード 7バイト目
E8aエミュレータの使用上の注意事項
実際のプロジェクト
今回依頼されたソースには”fvector.c“がない。
Flash Development Toolkitでmotファイルを読み込むと、該当領域は”0x00“になっている

新規のプロジェクト作成で試してみる
・作成方法1
プロジェクトタイプで”Application”を選択した場合は、”fvector.c“は作成されず、代わりに”sect30.inc“にIDコード”FFFFFFFFFFFFFF“が記載される。

;---------------------------------
; fixed vector section
;---------------------------------
.section fvector,ROMDATA
.org 0fffdcH
UDI: .lword dummy_int
OVER_FLOW: .lword dummy_int
BRKI: .lword dummy_int
ADDRESS_MATCH:.lword dummy_int
SINGLE_STEP: .lword dummy_int
WDT: .lword dummy_int
DBC: .lword dummy_int
NMI: .lword dummy_int
RESET: .lword start
;=================================
; ID code & ROM code protect
;---------------------------------
; ID code check function
.id "#FFFFFFFFFFFFFF"
・作成方法2
プロジェクトタイプで”c source startup Application”を選択した場合は、”fvector.c“は作成され、”fvector.c“にIDコードが記載される。

#pragma sectaddress fvector,ROMDATA 0xfffdc
#pragma interrupt/v _dummy_int //udi
#pragma interrupt/v _dummy_int //over_flow
#pragma interrupt/v _dummy_int //brki
#pragma interrupt/v _dummy_int //address_match
#pragma interrupt/v _dummy_int //single_step
#pragma interrupt/v _dummy_int //wdt
#pragma interrupt/v _dummy_int //dbc
#pragma interrupt/v _dummy_int //nmi
#pragma interrupt/v start
_asm(" .id ""\"#FFFFFFFFFFFFFF\"");
・今回のソースと比較
;===============================================================
; fixed vector section
;---------------------------------------------------------------
;----- fuction define (user) -----
.glb _int_WDT
;-----------------------------------
.section fvector,ROMDATA
.org 0fffdcH
UDI: .lword dummy_int
OVER_FLOW: .lword dummy_int
BRKI: .lword dummy_int
ADDRESS_MATCH: .lword dummy_int
SINGLE_STEP: .lword dummy_int
WDT: .lword dummy_int
DBC: .lword dummy_int
NMI: .lword dummy_int
; .org 0ffffcH
RESET:
.lword start
;
; ID code check function
; .id "CodeChk"
“.id CodeCheck“の記載がないため、IDコードが”00000000000000”となっていると思われる。
コ ード生成日が2008年10月のため、当時はIDコードが自動生成されなかったではないかと思われる。
.id “#FFFFFFFFFFFFFF“を記載しコンパイルしたMotファイルを、Flash Development Toolkitで読み込むとIDコードが”FFFFFFFFFFFFFF“なりました。
コメント