AKI-H8/3069Fを購入

後で書く。

秋月電子通商で購入

水曜日の夜にWebで発注して、金曜日の夜には届いた。通販って素敵。


ちなみに、購入したのは以下の3点。

  1. H8/3069Fネット対応マイコンLANボード(完成品) / 3750円
  2. 超小型スイッチングACアダプター5V1.2A(入力100〜240V)内径2.1mm GF06-US0512 / 600円
  3. USB・シリアル変換ケーブル[スケルトン](延長ケーブル付) / 1200円

オレにしては、思い切った買い物をしたと思う。いわゆる電子工作はやったことないし、ハンダごてとかも無いし、必ずしも工作をやりたいワケではないので、完成品を購入した。
このマイコンボードを選んだ理由は、本もたくさん出てるし、Web上に情報もたくさんあるし、何よりも安いから。せっかくならArdiunoにしようかとか、Androidが動くヤツ、、、とか、思ったけど、遊ぶには高価すぎる。

開発環境を作る

基本的には、「MacでH8開発環境構築 - 12ステップ本を試す - satfyの日記」を参考にさせてもらうことにする。こういう時に「開発環境は枯れてた方が、、、」と言われがちなことはなんとなく知っているけれど、この際なので、最新版を使ってみて、ハマってみようと思う。

ちなみに、SnowLeopardをまだ使っていて、Lionにしていない。Xcodeも新しくしてないので、今回使ったgccは、こういうバージョン。

% gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5664~105/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5664)
binutils-2.21

「うまくいかない時は--disable-werrorすべし」という教えに従って、configureする。

% mkdir BUILD
% cd BUILD
% ../configure --prefix=/opt/local --program-prefix=h8300-elf- --target=h8300-elf --disable-nls --disable-werror
% make
% sudo make install
% /opt/local/bin/h8300-elf-as -v
GNU assembler version 2.21 (h8300-elf) using BFD version (GNU Binutils) 2.21

無事、インストールできているっぽい。

gmpとmpfrとmpc

順番にインストールする。

% cd gmp-5.0.2
% ./configure --prefix=/opt/local/gmp
% make
% make check
% sudo make install
% ls /opt/local/gmp
/include/ lib/     share/
% cd ../mpfr-3.0.1
% ./configure --prefix=/opt/local/mpfr --with-gmp=/opt/local/gmp
% make
% make check
% sudo make install
% ls /opt/local/mpfr/
include/ lib/     share/
%cd ../mpc-0.9
% ./configure --prefix=/opt/local/mpc --with-gmp=/opt/local/gmp --with-mpfr=/opt/local/mpfr
% make
% make check
% sudo make install
% ls /opt/local/mpc
include/ lib/     share/
 
gcc-4.6.1

gcc-4.6.1をbuildするにあたって、newlibがいる説と不要説があってよく分からないので、とりあえずnewlib付きでbuildすることにする。
newlibについては、lynx -dump http://sourceware.org/newlib/download.html してみたらcvsからのダウンロードが紹介されてたので、cvsからcheckoutしておいた。

% cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/src login
% cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/src co newlib

このnewlibに含まれるヘッダをgccがbuildする時に参照するようにしなくちゃいけないらしいので、シンボリックリンクを張る。

% ln -s newlib/newlib gcc-4.6.1/newlib

あとは、buildするのみ。sourceを展開したディレクトリではbuildしないほうが良いらしいので、BUILD用のディレクトリを作っておく。

% mkdir gcc-4.6.1/BUILD
% cd gcc-4.6.1/BUILD
% ../configure --prefix=/opt/local --program-prefix=h8300-elf- --target=h8300-elf --with-gmp=/opt/local/gmp --with-mpfr=/opt/local/mpfr --with-mpc=/opt/local/mpc --disable-nls --disable-libssp --disable-threads --disable-shared --disable-werror --enable-languages=c --with-neaders=../newlib/libc/include --with-newlib
% make CC='cc -no-cpp-precomp' CFLAGS='-O2 -fomit-frame-pointer'
% sudo make install 

なぜ、make時にCCとCFLAGSを定義しなおすのかはよく分からないけれど、そうしろと参考にしたサイトに書いてあるので。

newlib のbuild

newlibをbuildする。gccをbuildするより時間がかかった。

% autoconf
% ./configure --prefix=/opt/local --program-prefix=h8300-elf- --target=h8300-elf
% make
% sudo make install
現時点でのcross開発環境
% /opt/local/bin/h8300-elf-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/local/bin/h8300-elf-gcc
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/h8300-elf/4.6.1/lto-wrapper
Target: h8300-elf
Configured with: ../configure --prefix=/opt/local --program-prefix=h8300-elf- --target=h8300-elf --with-gmp=/opt/local/gmp --with-mpfr=/opt/local/mpfr --with-mpc=/opt/local/mpc --disable-nls --disable-libssp --disable-threads --disable-shared --disable-werror --enable-languages=c --with-neaders=../newlib/libc/include --with-newlib
Thread model: single
gcc version 4.6.1 (GCC) 

ひとまず、cross-compilerを作るところまではできた。

いつかは分からないけれど、続く。