AKI-H8/3069Fを購入
後で書く。
秋月電子通商で購入
水曜日の夜にWebで発注して、金曜日の夜には届いた。通販って素敵。
ちなみに、購入したのは以下の3点。
- H8/3069Fネット対応マイコンLANボード(完成品) / 3750円
- 超小型スイッチングACアダプター5V1.2A(入力100〜240V)内径2.1mm GF06-US0512 / 600円
- 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を作るところまではできた。
いつかは分からないけれど、続く。