こういうのをやってみようと思い格闘しているところです。
まず著者がいうような、RS232CのDSUB9ピンの口のあるジャンクPCというものは、秋葉原などに行ってもありません。
それにジャンク店自体がほとんど存在せず、秋葉原のラジオデパート内で1軒だけはありました。しかし、そこで聞くといまどきのパソコンはセキュリティの都合から、HDDは抜いてあるものが大半で、232Cのインタフェースがあるものもほとんどありませんでした。
そこで今持っているノートとかデスクトップでやろうと思いましたがノートは速度が遅すぎ、ubuntuの起動USBを作成し動かしました。起動できちゃんと動くのですが、所詮はUSB上で動いているだけで、またソースをダウンロードしてコンパイルなどしても、保存ができません。
このノートはWin10が入っていてubuntuに書きつぶすことはできず(デスクトップも同じ)、Cygwinでやってみました。これも動きましたが遅く、またどうにもうまくビルドできない。
最終的にデスクトップのWin10にVirtualBoxを入れて,ubuntu16を動かし、本に出ているようにビルドすることにしました。
しかしまずビルドできるまでが大変。著者がいうように、binutils-2.19.1, gcc-3.4.6 でやりましたが、何度も失敗しました。サポートサイトに出ているようにやるとできるのですが、順番が大切で
download.sh
build-binutils.sh
build-gcc.sh
の3つをDLし, 全て chmod +x で実行可能にしてからまずdownload.sh を実行。次いで、build-binutils.sh を実行する。
その後に build-gcc.sh をそのままやらない。この中身は
tar xvzf gcc-3.4.6.tar.gz
cd gcc-3.4.6
patch -p0 < ../patch-gcc-3.4.6-gcc4.txt
./configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c
make
と書かれているが、patct -p0 行の実行(これは gcc3.4.6/gcc/collect2.cのある1行だけ変更)したら ./configure する前にgcc3.4.6/gcc/config/h8300/h8300.c の3か所ほど次の変更を加える。
55,56c55,56
< static void h8300_emit_stack_adjustment (int, unsigned int);
< static int round_frame_size (int);
---
> static void h8300_emit_stack_adjustment (int, HOST_WIDE_INT);
> static HOST_WIDE_INT round_frame_size (HOST_WIDE_INT);
371c371
< h8300_emit_stack_adjustment (int sign, unsigned int size)
---
> h8300_emit_stack_adjustment (int sign, HOST_WIDE_INT size)
400,401c400,401
< static int
< round_frame_size (int size)
---
> static HOST_WIDE_INT
> round_frame_size (HOST_WIDE_INT size)
これをやってから、./configue をやらないと、エラーでmakeが出来ない状態になります。
