ROMの書き換え2

AZ9360MBのROM書き換え後、リセット?していた問題について。
元々書き込まれていたユーザーアプリとデフォルトアプリのROMをチェック。
ELF形式のヘッダが付いていない。替わりに別の形式のヘッダが付いている。

http://www.ydktec.com/support/download/TOPPERS/az9360_toppers_jsp.zip
からAZ9360KIT/SDKソースコードをダウンロードして斜め読み。
BOOTからユーザーアプリまたはデフォルトアプリをRAMにコピーする前にCRCチェックを行っている。
ヘッダ部にはCRCなどが入っている様子。

SDKの環境でROMを作るときにヘッダを付加しているはずなので確認したらWindows用ツール(itron/az9360/aplhdr.exe)が同梱されていた。
itron/az9360/make.sh
の89行目がツールを呼び出している処理。

公式版のTOPPERS/JSPで作成したROMをAZ9360MBでftp&updateコマンドで書き込むには、
itron/az9360/aplhdr.exeとaplhdr.datを適当な位置にコピー(今回はcfgの下に置いた)
Makefileからaplhdr.exe呼び出し。(下記*.bin生成の行追加とimage.binの生成の行追加。)
を変更すればいいはず。

#
#  全体のリンク
#
$(OBJFILE): Makefile.depend $(ALL_OBJS) $(MAKE_KERNEL) $(OBJNAME).chk
	$(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) \
			$(START_OBJS) $(TASK_OBJS) $(ALL_LIBS) $(END_OBJS)
	$(NM) $(OBJFILE) > $(OBJNAME).syms
	$(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
	$(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin
	$(SRCDIR)/cfg/aplhdr $(SRCDIR)/cfg/aplhdr.dat $(OBJNAME).bin image.bin
	$(SRCDIR)/cfg/chk -m $(OBJNAME).syms,$(OBJNAME).srec \
			-obj -cs $(OBJNAME).chk -cpu $(CPU) -system $(SYS)

生成されたimage.binをftpでアップし、updateコマンドでFROMへ書き込む。
DOS窓にて。

ftp 192.168.0.1
ftp> bin
ftp> put image.bin
ftp> bye

ディップスイッチ3〜5をONにしてデフォルトアプリで起動。
TeraTerm(UART1)にて。

A:>update prog image.bin

電源OFF→ディップスイッチ3〜5をOFFしてユーザーアプリで起動。
TeraTerm(UART1)に見慣れた表示が出力される。

task1 is running (001). | 
task1 is running (002). | 
task1 is running (003). | 
task1 is running (004). | 

無事、sample1が動作するのが確認できた。