H8クロス開発環境

2017年現在、もう今さら使うこともないだろうけども、WindowsでのGCCのH8クロス開発環境について忘れ去られる前にいちおうメモしておく。

ロスコンパイラ作成

  • Cygwinがインストールされていること
  • CygwinのパッケージでDevelとPerlがインストールされていること
  • binutils(アセンブラ/リンカなどのツール)をダウンロード
  • gccをダウンロード
  • newlibをダウンロード
  • 上記3つを解凍
mkdir /tmp
cd /tmp
wget http://ftp.gnu.org/gnu/binutils/binutils-2.16.1.tar.gz
wget http://core.ring.gr.jp/pub/GNU/gcc/gcc-3.4.1/gcc-3.4.1tar.gz
wget ftp://sources.RedHat.com/pub/newlib/newlib-1.16.0.tar.gz
tar zxvf binutils-2.16.1.tar.gz
tar zxvf gcc-3.4.1tar.gz
tar zxvf newlib-1.16.0.tar.gz
  • インストール先を作成する
mkdir /opt
mkdir /opt/h8300
  • .bashrcにパスを通すコマンドを追記
export PATH=/opt/h8300/bin:$PATH
  • binutilsのビルドとインストール
cd /tmp/binutils-2.16.1
mkdir tmpdir
cd tmpdir
../configure -target=h8300-hms -disable-nls \
--prefix=/opt/h8300
make
make install
h8300-hms-ld -v # バージョン確認
  • gccのビルドとインストール
cd /tmp/gcc-3.4.1
mkdir tmpdir
cd tmpdir
../configure -target=h8300-hms -disable-nls \
--prefix=/opt/h8300 \
--with-gnu-as --with-gnu-ld --with-gnu-newlib \
--enable-languages=c,c++ \
--with-headers=../../newlib-1.6.0/newlib/libc/include
make
make install
h8300-hms-gcc -v # バージョン確認
  • newlibのビルドとインストール
cd /tmp/newlib-1.16.0
mkdir tmpdir
cd tmpdir
../configure -target=h8300-hms \
--prefix=/opt/h8300
make
make install

Makefile

main.cをビルドするMakefileの例

CROSS_COMPILE=h8300-hms-
CC=$(CROSS_COMPILE)gcc
OBJCOPY=$(CROSS_COMPILE)objcopy
LDSCRIPT = -T debug.ld

OBJ=main.c
OBJ_D =
OBJ_SYS = start.S 

all: main.coff
	$(OBJCOPY) -O srec  main.coff main.srec

main.coff:  $(OBJ) $(OBJ_D) $(OBJ_SYS)
	$(CC) -Wall -mh -mint32 $(LDSCRIPT) \
	 $(OBJ) $(OBJ_SYS) $(OBJ_D) \
	-nostartfiles \
	-nodefaultlibs -nostdlib -Wl,-static \
	-o $@ \

clean: 
	rm -f *.o
	rm -f *.coff
	rm -f *.srec
	rm -f *.mot

フラッシュ書き込み

  • 秋月AKI-H8/3069Fボードの付属CD-ROMに収録のh8writeを使用
  • Cygwinの適当なディレクトリ(/usr/local/h8/bin など)にh8write.exeを置き、パスを通しておく
  • h8write --help で使用方法が表示される
  • H8ボードをフラッシュ書き込みモードに設定
  • H8ボードをPCにシリアルポートで接続
  • フラッシュに書き込む。(ここではシリアルポートがCOM3であると仮定)
h8write -3069 -f20 main.srec com3
  • H8ボードを実行モード5に設定

参考文献