Hatena::ブログ(Diary)

不沈船金義丸

2010-10-20

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

はじめに

組込みの分野に就職し、知識不足を痛感する日々…。

そんなとき、「12ステップで作る組み込みOS自作入門」に出会った。


自作OS…なんと厨二な響き。

俺「OSッスかwww自作しましたけどwww」

上司に言ってみてぇ…


気がついたら、本とマイコンボードを購入しておりました。


分からないことばかりだけど、左遷回避のためにがんばるよ!


Cygwinのインストール

開発環境の選択肢として、いくつか選択肢があったんだけど、

自分はCygwinを選んだよ。


開発環境の選択肢として、いくつか選択肢があったんだけど、

自分はCygwinを選んだよ。

今あるWindows環境を壊したくなかったからだよ。ヘタレだね。


UNIXライクな環境なんて、

学部のときにFreeBSDでのサーバ構築に失敗して以来だよ…。

基本的に何もわかりません。


インストールには、下記のサイトにお世話になったよ。

Releaseフォルダのダウンロードに3時間以上かかった…

何これ常識?

失敗しない Cygwin の インストール [ Windows 7 編 ]

http://windowss7.web.fc2.com/special/cygwin/

このページを参考にさせて頂きました。

Cygwinのバージョンは1.7.7。

binutilsのインストール

binutilsは、本に載ってるのは2.19.1だけど、

自分は2.20を選択。

本どおりで問題なし。


H8/3069F付属CDのCygwinだと、

binutils-2.20はインストールが出来なかった気がする。

だから3時間もかけて、上記のCygwinインストール法をとった気がする。

そういうのきちんと記録しないと。。。


gccのインストール

4.5.1はインストールできず

gccも新しいほうがいいとおもって4.5.1をインストールしようと思うも、うまくいかず。

同じ階層(つまりカレントディレクトリがgcc-4-5.1)だと

ビルドできないという報告があったので、

/gcc-4.5.1/build/を作成したりした。


結果をまとめる。

カレント:

/gcc-4.5.1/build/

コマンド:

../configure --target=h8300-elf --disable-nls --disable-threads --enable-languadge=c

結果:

configure: error: building out of tree but . . contains host-i686-pc-cygwin. Use a pristine source tree when building in a separate tree.

備考:

本に書いてあったように--disable-werrorを付加しても、特に出力に変化はないように見える。


カレント:

/gcc-4.5.1/

コマンド:

./configure --target=h8300-elf --disable-nls --disable-threads --enable-languadge=c

結果:

*** This configuration is not supported in the following  subdirectories: 
target-libmudflap target-libgomp target-libffi target-zlib target-libjava  target-libada gnattools target-libstdc++-v3 target-libgfortran target-libobjc target-boehm-gc 
(Any other directories should still work fine.)

備考:

そのままmakeすると

configure: error: in `/usr/local/gnu/gcc-4.5.1/h8300-elf/libgcc':

configure: error: changes in the environment can compromise the build

configure: error: run `make distclean' and/or `rm ./config.cache' and start over

make[1]: *** [configure-target-libgcc] Error 1

make[1]: Leaving directory `/usr/local/gnu/gcc-4.5.1'

make: *** [all] Error 2


もう面倒くさくなって、gccは3.4.6でいいや、ってなった。

Cygwin操作

全てが初めてなので学ぶことが多い。


Tabキーによる入力補完。


ユーザー環境変数でHOMEを作成、

パスをいれるとCygwin起動時のディレクトリを指定できる。


もうほんとね、「そこからかよ!」って感じ。いろいろ。