H8の開発環境はほんとうに沢山あるようですが、ここでは一番手軽で工作や学習などによく使われている、モニタプログラムを使ったものについて説明します。
完成したプログラムを外付けのRAMに転送してそこから実行します。
必要なもの
- h8300-hms-gcc 一式
- Makefile
- ターミナルソフト
- エディタ
コンパイラは純正のHEWもありますが、補完が出来なかったり、繰り返し文の中で、変数の宣言が出来なかったりする(設定の問題かも?)ので、gcc+Make+エディタを使います。(というかHEWはそもそもMacで使えません。)
h8300-hms-gcc のコンパイル
Snow Leopard上でコンパイルをしようとすると、どうも失敗するようです。
gccが新しくなったからだと思われますが、gccのバーションを変えてもダメでした。
これは仕方ないので、Leopard環境でコンパイルしたものをSnow Leopardに
もってきて、そのまま使うことにします。
コンパイル方法は色々ありますがこちらがまとまっていて分かりやすいと思います。
もう、Snow Leopardにアップグレードしちゃったよっていう人なんかで、
ターミナルソフト
OS X ならjermが軽くて使い易いと思います。
Macportsからインストールできます。
$ jerm -b 38400 /dev/cu.usbserial
で実行します。
エディタ
エディタはぶっちゃけ何でもいいと思います。
結局のところ、Makefileプロジェクトなので、ターミナルから直接叩いてもよいですし、統合開発環境を使ってもいいです。
私の場合、補完がちゃんと効くかどうかで選んでいます。
Xcode: 中途半端に補完される。構造体の要素はダメっぽい。
Eclipse: 結構優秀。マクロの内容までポップアップで展開される。
重いですが、補完という点ではEclipseが一番いいと思います。
実行
コンパイルしたプログラムをモニタ経由でRAMに転送するには、Sレコードファイル(いわゆるmotファイル)に変換します。
これは普通Make時に勝手に生成されます。
問題はこれをモニタプログラムに転送する方法で、OS Xの場合、手軽にできるターミナルソフトがありません。
jerm は"C-M~>"でファイルを転送出来ますが、モニタ側でファイル受信待ち状態にした後、C-Mキーが送られてしまうので正しく動きませんでした。
そこで、モニタプログラムへ直接転送するアプリを作っている方がいるのでこれを参考にします。
H8 development diary on MacOSX - 2
このままでは動かなかったり、使っているモニタが自分のものとは違うので、改変して使っています。
プログラムが出来れば、Makefileに組み込んでやればいいので、
あとは$ make hogeとするだけで、自動的にビルド・リンク・転送・実行をやってくれるので便利です。
h8loaderとMakefileのサンプル ↓
コメントをお書きください