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
- bash再起動
- 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