MacでH8開発環境構築 - 12ステップ本を試す

仕事でやっていたプロジェクトがやっと片付いたので、先日からやろうと思っていたH8のプログラム作成を12ステップ本にそって試しました。

12ステップで作る組込みOS自作入門

12ステップで作る組込みOS自作入門

私が個人で使っているPCは半年くらい前からMacBook Proなのですが、12ステップ本では開発環境としてFreeBSD,Fedora,Ubuntu,Windowsは紹介されているものの、Macの記述がありません。
googleで検索してみても、情報が少ないようなので私が環境構築を行ったときの内容をまとめようと思います。

USBシリアル変換ケーブルとシリアルの延長ケーブルは、秋月で以前購入していたAKI−PICプログラマー用電源・USBシリアル(グレー)・ケーブルセットのものを使いました。持っていない人は秋月のUSB・シリアル変換ケーブル(延長ケーブル付)あたりを購入するといいと思います。

USBシリアルドライバは、最初ProlificのサイトのPL-2303 Software and Driversのページから最新のドライバmd_PL2303_MacOSX10.6_dmg_v1.4.0.zipをダウンロードしてインストールしてみましたが、h8writeで書き込む時に、応答がもどってこない状態になり書き込みできませんでした。AppleのサイトのドライバダウンロードページにあるPL2303 USB to Serial Driver 0.3.1だとちゃんと書き込めるようです。

以下が環境構築手順です。

H8用gcc, binutils, などをダウンロード

cd ~/Downloads/src
curl -O http://www.ring.gr.jp/archives/GNU/binutils/binutils-2.21.tar.bz2
curl -O http://www.ring.gr.jp/archives/GNU/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2
curl -O http://www.ring.gr.jp/archives/GNU/gmp/gmp-4.3.2.tar.bz2
curl -O http://www.ring.gr.jp/archives/GNU/mpfr/mpfr-2.4.2.tar.bz2
curl -O http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz

gcc, binutilsなどのインストール

binutils, gccのインストール先は12ステップ本とは少し変えて、/usr/local/h8-elfにインストールすることにしました。(このインストール場所でインストールして12ステップ本を試す場合、12ステップ本に書かれたMakefileは若干変更する必要があります)
gccのインストールに必要なライブラリ(gmp, mpfr, mpc)についても/usr/localの下に個別にディレクトリを作って、そこにインストールすることにします。

bintutils
tar jxvf binutils/binutils-2.21.tar.bz2
cd binutils-2.21
./configure --target=h8300-elf --disable-nls --prefix=/usr/local/h8-elf
make
sudo make install
gmpライブラリ
cd ~/Downloads/src
tar jxvf gmp-4.3.2.tar.bz2
cd gmp-4.3.2 
./configure --prefix=/usr/local/gmp
make
make check
sudo make install
mpfrライブラリ
cd ~/Downloads/src
tar jxvf mpfr-2.4.2.tar.bz2
cd mpfr-2.4.2
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
make
make check
sudo make install
mpcライブラリ
cd ~/Downloads/src
tar zxvf mpc-0.8.2.tar.gz
cd mpc-0.8.2
./configure --prefix=/usr/local/mpc \
  --with-gmp=/usr/local/gmp \
  --with-mpfr=/usr/local/mpfr \
make
make check
sudo make install
gcc
cd ~/Downloads/src
tar jxvf gcc-4.5.2.tar.bz2
mkdir build # gcc 4.5はソースディレクトリ内でビルドするとエラーになるため
cd build
../gcc-4.5.2/configure \
  --target=h8300-elf \
  --disable-nls \
  --disable-threads \
  --disable-shared \
  --disable-libssp \
  --enable-languages=c \
  --with-gmp=/usr/local/gmp \
  --with-mpfr=/usr/local/mpfr \
  --with-mpc=/usr/local/mpc \
  --prefix=/usr/local/h8-elf
make
sudo make install

USBシリアルドライバの動作確認

AppleのPL2303 USB to Serial Driver 0.3.1ダウンロードページからドライバをダウンロードしてインストールしたあと、USBシリアル変換ケーブルをMacにさして/devを確認します。

% ls -l /dev/cu*            
crw-rw-rw-  1 root  wheel   11,   3 12 25 23:24 /dev/cu.Bluetooth-Modem
crw-rw-rw-  1 root  wheel   11,   5 12 25 23:24 /dev/cu.Bluetooth-PDA-Sync
crw-rw-rw-  1 root  wheel   11,  33 12 26 20:23 /dev/cu.PL2303-00004006

USBシリアル変換ケーブルを取り付けると/dev/cu.PL2303-00004006というデバイスが表示されるようになります。
/dev/cu.PL2303-XXXXXXXのXXXXXXXの部分はUSBシリアル変換ケーブルを抜き差しすると数字が変わるようです。接続するUSBインターフェースをごとに違う番号になるようです。
そのため、h8writeでプログラムを書き込む時はUSBシリアル変換ケーブルを抜き差しするたびに/devを確認しないといけないようです。

h8writeインストール

これは普通にソースをダウンロードしてコンパイルするだけです。

curl -O http://mes.sourceforge.jp/h8/h8write.c
gcc -Wall -o h8write h8write.c

minicomインストール

macにデフォルトでインストールされているcuコマンドやscreenコマンドでもシリアル接続できますが、12ステップ本にminicomが紹介されていたのでそちらを使ってみます。
インストールはhomebrewを使いました。

brew install minicom

minicomの設定

12ステップ本どおりに設定します。

minicom -sで起動して下記の設定を行います。
表示されるメニューで「Serial port setup」を選択し、下記のようになるよう設定しました。

    +-----------------------------------------------------------------------+
    | A -    Serial Device      : /dev/cu.PL2303-00001004                   |
    | B - Lockfile Location     : /usr/local/Cellar/minicom/2.4/var         |
    | C -   Callin Program      :                                           |
    | D -  Callout Program      :                                           |
    | E -    Bps/Par/Bits       : 9600 8N1                                  |
    | F - Hardware Flow Control : No                                        |
    | G - Software Flow Control : No                                        |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+

ファーム書き込みと動作確認

あとは12ステップ本どおりにソースコードをうって、動作確認するだけです。

上記画面は12ステップ本のステップ1の実行結果です。実行できました。