H8 on Mac

実験でH8マイコンを使って遊ぶ、という週があったのでせっかくなのでMacでクロスコンパイル出来るようにしてやろうかと。
実験テキストの説明とかを基にやっているので、ところどころ曖昧です。

h8300-hms-gccコンパイル

H8クロスコンパイラ環境作り
を参考にやってみたものの、生涯make成功率3%の私には出来るはずもなく...

仕方ないので、偉大な人のお力を借ります。
開発環境 - 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)
  1. 適当な場所にフォルダを置く
  2. cd hoge/h8car
  3. make

これでいけました。あとは、h8car.cをいぢるだけです。



転送はまだ出来ていません。jrem使えばできるのかな?/dev/以下になんて書けばいいのか分からないっていう。