実験でH8マイコンを使って遊ぶ、という週があったのでせっかくなのでMacでクロスコンパイル出来るようにしてやろうかと。
実験テキストの説明とかを基にやっているので、ところどころ曖昧です。
h8300-hms-gccのコンパイル
H8クロスコンパイラ環境作り
を参考にやってみたものの、生涯make成功率3%の私には出来るはずもなく...
仕方ないので、偉大な人のお力を借ります。
Mac OS X で H8 - novi’s page
LeopardでコンパイルすればSnowLeopardでも使えるみたいだけど、わざわざTimeMachineで戻すのも面倒なのでコンパイル済みGCC*1を使わせていただきます。
ダウンロードしたzipを解凍して、出てきたフォルダを/usr/local/以下に放り込みます。ちなみに、余談ですがMacでusrなんかにアクセスするときはFinderのフォルダへ移動*2でアクセスできます。Terminalでやってもよし。
各種ファイルを揃える
http://maisy.ei.fukui-nct.ac.jp/~t-saitoh/exp/h8/sample/h8car/
テキストのプログラム一式が置いてあるので、拝借します。Xcodeでコンパイルしてもいいのですが、面倒なのでTerminalで叩きます。
Makefileを書き換える
# # H8/3664F sample makefile # Copyright (c) 2001 Masahiro Ochiai # TARGET = h8car.mot CFLAGS = -O -mh -g -mrelax -mint32 -DH8_3664 CC = h8300-hms-gcc AS = h8300-hms-as LD = h8300-hms-ld LDSCRIPT = h8-3664.x CRT0 = 3664crt0.S ASRCS = SRCS = h8car.c # make all source trees all : $(TARGET) h8car.mot: h8car.coff h8300-hms-objcopy -O srec h8car.coff $@ h8car.coff: Makefile $(LDSCRIPT) $(SRCS:.c=.o) $(CRT0) $(ASRCS) $(LIBS) $(CC) $(CFLAGS) \ -T $(LDSCRIPT) -nostartfiles $(CRT0) \ $(ASRCS) $(SRCS:.c=.o) -o $@ $(LIBS) clean : rm -f $(TARGET) rm -f h8car.coff rm -f $(SRCS:.c=.o)
を以下のように
# # H8/3664F sample makefile # Copyright (c) 2001 Masahiro Ochiai # TARGET = h8car.mot CFLAGS = -O -mh -g -mrelax -mint32 -DH8_3664 CC = /usr/local/h8300-hms/bin/h8300-hms-gcc AS = /usr/local/h8300-hms/bin/h8300-hms-as LD = /usr/local/h8300-hms/bin/h8300-hms-ld LDSCRIPT = h8-3664.x CRT0 = 3664crt0.S ASRCS = SRCS = h8car.c # make all source trees all : $(TARGET) h8car.mot: h8car.coff /usr/local/h8300-hms/bin/h8300-hms-objcopy -O srec h8car.coff $@ h8car.coff: Makefile $(LDSCRIPT) $(SRCS:.c=.o) $(CRT0) $(ASRCS) $(LIBS) $(CC) $(CFLAGS) \ -T $(LDSCRIPT) -nostartfiles $(CRT0) \ $(ASRCS) $(SRCS:.c=.o) -o $@ $(LIBS) clean : rm -f $(TARGET) rm -f h8car.coff rm -f $(SRCS:.c=.o)
- 適当な場所にフォルダを置く
- cd hoge/h8car
- make
これでいけました。あとは、h8car.cをいぢるだけです。
転送はまだ出来ていません。jrem使えばできるのかな?/dev/以下になんて書けばいいのか分からないっていう。