秋月SH2基板をITRON(HOS-V4)で利用してみる

ver 1.1


概要

1年半以上?前の事だが秋月SH2基板にITRON(HOS-V4)を導入してDebian/GNU Linux環境で、開発をした事がある。 その際に、gdbを使用して開発をしてみた。 開発は一応終了しているが、このまま埋もれさせるのももったいないと思い。 再利用が出来る様に最低限の導入方法を記述しておく。
ネタ的に若干古い事は御了承願いたい。(^^;


リソースの準備

以下のものを揃える。


開発環境(binutils, gcc, newlib, gdb, h8write)

以下のFILEを揃えてmake&installしました。
http://ring.ip-kyoto.ad.jp/archives/GNU/gcc/gcc-2.95.2.tar.gz
http://ring.ip-kyoto.ad.jp/archives/GNU/binutils/binutils-2.10.tar.gz
ftp://sources.redhat.com/pub/newlib/newlib-1.8.2.tar.gz
http://ring.ip-kyoto.ad.jp/archives/GNU/gdb/gdb-5.3.tar.gz
http://mes.sourceforge.jp/h8/h8write.c

# cd /usr/local/src/
# tar zxvf binutils-2.10.tar.gz
# mkdir binutils-2.10/work
# cd binutils-2.10/work
# ../configure --target=sh-hms --prefix=/usr/cross/sh
# make
# make install
# PATH=$PATH:/usr/cross/sh/bin

# cd /usr/local/src/
# tar zxvf newlib-1.8.2.tar.gz
# tar zxvf gcc-2.95.2.tar.gz
# mkdir gcc-2.95.2/work
# cd gcc-2.95.2/work
# ../configure --target=sh-hms --prefix=/usr/cross/sh --with-newlib --with-headers=/usr/local/src/newlib-1.8.2/newlib/libc/include
# make LANGUAGES="c"
# make install LANGUAGES="c"

# cd /usr/local/src/newlib-1.8.2
# mkdir work
# cd work
# ../configure --target=sh-hms --prefix=/usr/cross/sh
# make
# make install

# cd /usr/local/src/
# tar zxvf gdb-5.3.tar.gz
# mkdir gdb-5.3/work
# cd gdb-5.3/work
# ../configure --target=sh-hms --prefix=/usr/cross/sh
# make
# make install

# cd /usr/local/src/
# mkdir h8write
# cd h8write
# cp /tmp/h8write.c .
# gcc -O2 -o h8write h8write.c
# cp h8write /usr/local/bin/
後でシリアルポートを使用しますので、使用するデバイスのパーミッション設定を便宜設定して使用出来る様にしておきます。


gdb-stubをFlashに書き込む

まずはsh2のコンパイル等が出来る様に、PATHを通しておく。
$ PATH=$PATH:/usr/cross/sh/bin

hos-v4のdirに居るとする。

$ cd sample/akish2/stub/akish2/
$ make
stubファイルが生成される。 以下のコマンドでCPUのFlashに書き込みをする。 (RS-232C経由での書き込みです。DIP-SW設定等は基板の取扱説明書を見てください)
$ make write
これでstubがCPUのFlashに書き込まれました。
次からはgdbを使用してRS-232C経由でSRAMにプログラムを転送してDEBUGをしていく事になります。


HOS-V4のコンパイルとリンク

hos-v4のdirに居るとする。
$ cd lib/sh/sh2gcc/
$ make -f h4sh2.mak
$ cd ../../../config/
$ make -f gcc.mak
$ cd ../sample/akish2/
$ make -f gcc.mak
akish2.outかakish2.motが生成出来る。

最初だけ、コンフィギュレーターとライブラリの整備の為にコンパイル処理をしますが、以降は、

$ cd ../sample/akish2/
$ make -f gcc.mak
の部分の範囲で開発をしていく事になります。

akish2.outかakish2.motのどちらが生成されるかはMakefile内の

RAM    = true
の行が有効だとgdbでのDEBUGを対象にしたakish2.out迄が生成されますが、
行をコメント・アウトした場合は、CPU-Flashにstubの代わりに実プログラムとして利用する場合のakish2.motが生成されます。
※コメント・アウトをした場合は、一旦、中間FILEを削除してからmakeしてください。


gdbでのDEBUG

先に生成されたakish2.outはMakefile内の
RAM    = true
の行が有効だとgdbでのDEBUGを対象にしたFILEとして生成されます。
gdbの利用は、
$ sh-hms-gdb
で開始出来ます。
諸設定FILEは、.gdbinitファイルとして置いてあります。


履歴