LoginSignup
1
2

More than 5 years have passed since last update.

ubuntu16.04.2 LTSで組み込みOS h8-3069の初期設定について

Last updated at Posted at 2017-05-24

いろいろ苦しかったので、ここに書く。

環境

ubuntu16.04.2(64bit)

まずはじめに

http://kozos.jp/books/makeos/ 
ではあまりうまくいかなかったので、ネットでしらべつつ頑張った内容を後学のためにここに記す。

binutilsの設定

https://ftp.gnu.org/gnu/binutils/
からbinutils-2.19.1.tar.bz2をダウンロードする。
kozosの方からダウンロードしたものではうまく解凍できなかったので、gnuのほうからダウンロードする。
図だとこんな感じ。2.19.1aとか間違えないこと。
binutils.png

cd ~/Downloads
tar jxvf binutils-2.19.1.tar.bz2

次に上を実行。オプションで指定しているjxvfについては参考文献[1]などを参考にしてください。

cd ~/Downloads/binutils-2.19.1
./configure --target=h8300-elf --disable-nls --disable-werror
make
sudo make install

次に上を実行。.configureによってターゲットをH8向けに設定する。

cd /usr/local/bin
ls

を実行すれば、h8300-elf-asやh8300-elf-arなどがはいっていることがわかる。これであれば成功。

gccの設定

次にgccのダウンロードをする。
https://ftp.gnu.org/gnu/gcc/gcc-3.4.6/
からgcc-3.4.6.tar.bz2をダウンロードする。
図だとこんな感じ。
Index of  gnu gcc gcc 3.4.6.png

cd ~/Downloads
tar jxvf gcc-3.4.6.tar.bz2

でgccを解凍する。

ここからが、本と結構違うので注意!
ちなみに、参考文献[2] http://d.hatena.ne.jp/ryochack/20110515/1305400022に依存しています。

cd ~/Downloads/gcc3.4.6/gcc/
vim collect2.c

で、collect2.cを編集します。vimの操作方法については、他の記事を参考にしてください。需要があれば、ここで書きます。
1537行目をが最初の状態なので、それをのように編集します。

[in 1537 line]
<old>
redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT);

<fix>
redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, 0755);

次に、また別のファイルも修正します。

cd ~/Downloads/gcc3.4.6/gcc/config/h8300/
vim h8300.c


以下のlineをからに変更してください。

[in 55,56 line]
<old>
static void h8300_emit_stack_adjustment (int, unsigned int);
static int round_frame_size (int);
<fix>
static void h8300_emit_stack_adjustment (int, HOST_WIDE_INT);
static HOST_WIDE_INT round_frame_size (HOST_WIDE_INT);

[in 371 line]
<old>
h8300_emit_stack_adjustment (int sign, unsigned int size)
<fix>
h8300_emit_stack_adjustment (int sign, HOST_WIDE_INT size)

[in 400,401 line]
<old>
static int
round_frame_size (int size)
<fix>
static HOST_WIDE_INT
round_frame_size (HOST_WIDE_INT size) 

これができたらやっとmakeの作業に移ります。

cd ~/Downloads/gcc-3.4.6
./configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --enable-languages=c --disable-werror

を実行します。特にここのconfigureは間違えやすいので気をつけてください。改行はせずにやりましょう。

次に、シェルスクリプトを作ります。(正確には、シェルスクリプトにmake installを実行させます)

vim ~/Downloads/gcc-3.4.6/install.sh

で新規ファイルを作成します。

PATH=${PATH}:/usr/local/trunk/cross/bin
make install

を書き、そしたらそれを保存してください。

sudo sh install.sh

でgccのインストールに成功します。これで作業はほとんど終了です!

次に、この作ったbinutilsを/usr/local/binに入れます。

cd ~/Downloads/
sudo mv gcc-3.4.6 /usr/local/bin

これが終わればだいたいおしまいです。
もし、part1のコードとかを書きたいならば、あの本通りにすすめてください。
http://kozos.jp/kozos/osbook_03.html
から、ソースコードを取って、あとは流れに沿えば問題なくできるはず。

参考文献

[1] http://qiita.com/astro_super_nova/items/e7ff4ef5ec9fa253fd61
[2] http://d.hatena.ne.jp/ryochack/20110515/1305400022

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2