12ステップで作る 組込みOS自作入門の環境構築メモ

Last Updated on 2013年1月10日 by kabekin

酒井氏著書の「12ステップで作る組込みOS自作入門」の開発環境をUbuntuで整えてみました。
本ではFreeBSD、GNU/Linux/Windows+Cygwinでのクロス開発環境が紹介されていますが、
ここは一番実現性の高いUbuntuで作業を開始することにしてみます。
ホントはこの機会にFreeBSDにもチャレンジしてみたいのですが、
おそらくFreeBSDの環境を整えるだけで終了してしまいそうなのでここはubuntuで挑戦。
また、今回の目的はgccの問題解決が目的ではなくH8開発環境の構築なので余計なことで躓かないように
筆者が環境確認してくれているバージョンをそのまま使うことにします。
次回のメモを兼ねて手順を残しておきます。

1) Ubuntuのインストール+設定 (実際はVMPlayer上に仮想環境でセットアップ)
ネットワーク設定でインターネットが見えるようにしておく
VMPlayerでプリンタポートがなぜかシリアルCOM0を使用している場合がある。
ttyS0でシリアルが使用できないときプリンタポートを確認すると幸せになれる可能性あり。
インストールされているパッケージ類のアップデート
2) セルフコンパイラの準備
・binutils (GNU アセンブラ、リンカ及びバイナリユーティリティ)
・gcc (GNU Cコンパイラ)
・make (コンパイルを制御するユーティリティ) の3つ
ubuntuではSynapticパッケージマネージャから追加。
Synapticパッケージ・マネージャで「クイック検索」窓に入力すると各パッケージの詳細が表示される
私の環境では
binutils = 2.20.1-3ubuntu7.1
gcc = 4.4.4.3-1ubuntu1
make = 3.81-7ubuntu1
が既にインストール済だった
3) クロスコンパイラの準備
H8用のbinutils と gcc を準備
binutils と gcc のダウンロード
http://core.ring.gr.jp/pub/GNU/ からダウンロード又は筆者のサイトから
→http://core.ring.gr.jp/pub/GNU/binutils/binutils-2.19.1.tar.gz
→http://core.ring.gr.jp/pub/GNU/gcc/gcc-3.4.6/gcc-3.4.6.tar.gz
●H8用binutilsのインストール

$ tar xvzf binutils-2.19.1.tar.gz  ← ダウンロードファイルの解凍
$ cd binutils-2.19.1  ← 解凍したディレクトリに移動
$ ./configure --target=h8300-elf --disable-nls  ← makefileを作成
$ make  ← makeを実行
$ sudo make install  ← インストール実行

binutilsのインストールが成功していれば
/usr/local/bin ディレクトリにh8300-elf~のツール類がインストールされている。
(出力先を変更したい場合は ./configure実行時に –prifix=ディレクトリ名で指定)
この時点で/usr/local/binの下に12個のファイルが生成されていた
h8300-elf-addr2line h8300-elf-as h8300-elf-gprof h8300-elf-nm h8300-elf-objdump h8300-elf-readelf
h8300-elf-strings h8300-elf-ar h8300-elf-c++filt h8300-elf-ld h8300-elf-objcopy h8300-elf-ranlib
h8300-elf-size h8300-elf-strip
●H8用gccのインストール

$ tar xvzf gcc-3.4.6.tar.gz  ← ダウンロードファイルの解凍
$ cd gcc-3.4.6  ← 解凍したディレクトリに移動
$ ./configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --enable-languages=c  ← makefileを作成
$ make  ← makeを実行
$ sudo make install  ← インストール実行

17ページに書かれている引数のエラーはubuntu10.04では発生してしまいました。collect2.cを修正
出力先を変更したい場合は ./configure実行時に –prifix=ディレクトリ名で指定
gcc4系での構築はオフィシャルサイトに情報あり → http://kozos.jp/books/makeos/#gcc4
この時点で/usr/local/binの下に12個のファイルが7個追加されていた
h8300-elf-cpp h8300-elf-gcov h8300-elf-gcc h8300-elf-gcc.3.4.6 h8300-elf-ld h8300-elf-c++filt h8300-elf-gccbug
●H8Writerのインストール
H8Writerの入手
http://mes.sourceforge.jp/h8/writer-j.html から Linux用実行ファイルを入手
/usr/local/binにコピーして実行属性を付けておく
#chmod +x h8write
ubuntu10.04 では M/B内蔵COM0はデバイス名=ttyS0でOK
筆者が確認済のバージョンで環境構築してみるとGNU/Linux初心者の私でも特に問題なく環境構築ができました。
上手くいかない方はbinutils = 2.19.1 gcc = 3.4.6 で作業するのがよさそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください