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が動作するのが確認できた。