[Ubuntu Linux][H8/3048F] LinuxでH8/3048Fの開発を行う方法
開発環境の準備
手順
以下の手順で、開発環境を準備します。
- 必要なパッケージをインストールします。
- AKI-H8/3048開発キットから、ヘッダファイルをコピーします。
- ベストテクノロジーから、スタートファイルとリンカスクリプトを
パクリダウンロードします。 - Open H8 writerをインストールします。
ヘッダファイルのコピー
AKI-H8/3048開発キットから、ヘッダファイル3048.hをコピーします。
スタートファイルとリンカスクリプトのコピー
ベストテクノロジーのBestTechnology download cornerから、「H8/300Hシリーズターゲットファイル」 (H8300HTARGET.zip) をダウンロードします。その中から、
- 3048F/h8crt0.s(スタートファイル)
- 3048F/h8rom.x(リンカスクリプト)
をコピーします。
Open H8 writerのインストール
Open H8 writerから、h8write.cをダウンロードします。
以下のMakefileを記述します。
PKG = h8write OBJ = $(PKG).o $(PKG): $(OBJ) $(CC) -o $@ $< .c.o: $(CC) -o $@ -O2 -c $< clean: rm -f $(OBJ) install: install $(PKG) /usr/local/bin .PHONY: clean install
$ sudo make install
で、/usr/local/bin/h8writeにインストールします。
プログラムの作成
例えば、ポート1の出力を定期的に0と1にするプログラムmain.cを作成します。
#include "3048.h" void wait() { long t = 400000; while (t--); } int main(int argc, char* argv[]) { P1.DDR = 0xff; while (1) { P1.DR.BYTE = 0xff; wait(); P1.DR.BYTE = 0x00; wait(); } }
これをコンパイルするときは、以下のMakefileのようにします。
PKG = main OBJ = main.o h8crt0.o TOOLS_PREFIX = /usr/h8300-hitachi-hms/bin/h8300-hitachi-hms- CC = $(TOOLS_PREFIX)gcc AS = $(TOOLS_PREFIX)as OBJCOPY = $(TOOLS_PREFIX)objcopy all: $(PKG).mot Makefile $(PKG).mot: $(PKG) $(OBJCOPY) -O srec $< $@ $(PKG): $(OBJ) $(CC) -o $@ -T h8rom.x -nostartfiles -nostdlib $(OBJ) .s.o: $(AS) -o $@ $< .c.o: $(CC) -o $@ -c -mh -mint32 $< clean: rm -f $(OBJ) $(PKG) write: h8write -3048 $(PKG).mot /dev/ttyUSB0 .PHONY: clean all
$ make all
とすると、main.motが作成されます。
$ make write
とすると、main.motがH8/3048Fに転送されます。
注意
あちこちからファイルを取ってきていることにより、問題が発生するかもしれません。
ヘッダファイルも、開発キットからではなく、ベストテクノロジーが用意しているヘッダファイルを使った方がいいかもしれません。
スタートファイルとリンカスクリプトは、てっとり早くコピーしましたが、中身をよく理解して使う必要があります。