マツドサイエンティスト・研究日誌 保存版
SH-2 Linux上でのリアルタイム OS 開発環境 (その1 クロスコンパイラ構築編)

初出:2006年10月04日 元々のブログ・コンテンツへのリンク
カテゴリーのインデックス: パソコン・インターネット
シリーズのインデックス: SH-2・リアルタイム OS Linux

Interface 6月号付録の SH-2 基板を、Linux 上でプログラミングし、リアルタイム OS (HOS)を使い、更に rom 化して、SH-2 内蔵の rom に書き込む方法について述べる。
今回は、第一回目として、Linux 上でのクロスコンパイラ構築方法について述べる。

私の Linux は、Debian Linux 3.1 Sarge であるが、大概の Linux なら同様の方法で、クロスコンパイラが構築できると思う。また、私の Linux 環境にはセルフコンパイル用の gcc 等のインストールは既に済んでいる。もし、セルフ用 gcc 等のインストールが済んでいない人は、そこから行ってほしい。

まず、必要なソースファイルのダウンロードを行う。
GCCソースコードの在処
BINUTILSソースコードの在処
NEWLIBソースコードの在処

上記のリンク先から、下記のファイルをダウンロードする。
・binutils-2.17.tar.gz
・gcc-3.4.6.tar.gz
・newlib-1.14.0.tar.gz
なお、私のダウンロードしたバージョンは、その時点での最新のソースファイルをダウンロードしただけである。(gcc は、3.4 系列での最新)

ダウンロードしたファイルは、「~/src/」ディレクトリに入れておく。

以下のコマンドを実行する。なお、文頭が「$」はユーザーモードで、「#」はrootモードで実行すること。

解凍
$ cd ~/src/
$ tar zxvf binutils-2.17.tar.gz
$ tar zxvf gcc-3.4.6.tar.gz
$ tar zxvf newlib-1.14.0.tar.gz


binutils の構築
# mkdir /usr/cross
$ cd ~/src/binutils-2.17
$ ./configure -target=sh-elf -prefix=/usr/cross -disable-nls
$ make
# make install


~/.bashrc を編集し
 PATH=/usr/cross/bin:$PATH ; export PATH
を追加し、一度ターミナルを終了するか、ログアウトして、PATHを反映しておく。

gcc の構築
$ cd ~/src/gcc-3.4.6
$ ln -s ../newlib-1.14.0/newlib .
$ mkdir dist;cd dist
$ ../configure -target=sh-elf -prefix=/usr/cross -with-gnu-as
-with-gnu-ld -with-newlib
-with-headers=~/src/newlib-1.14.0/newlib/libc/include
--enable-languages="c,c++"
$ make
# PATH=/usr/cross/bin:$PATH ; export PATH
# make install

なお、上記の「../configure」は、本来、一行で入力するのだが、表示上複数行に分けて居るので、注意して欲しい。

これで、クロスコンパイラの構築は終了である。
なお、gcc の make などは、意外と時間がかかるので、のんびりできるときに行った方が良い。
inserted by FC2 system