SHのクロスコンパイル開発環境の構築方法


   Linux上で組み込み用CPUSH(Super-H)4のクロスコンパイル開発環境を構築する方法をご紹介します。私はLinux上で構築しましたが、UNIX系のOSでも同様の方法で構築できると思います。
 
■準備
 適当なディレクトリ(ここでは、$HOME/SH_TOOL)を作って、その配下に以下のツールをダウンロードしておきます。各ツールのバージョンについては、開発する製品によって異なるので、自分が担当している製品に合ったバージョンを選択する必要があります。一応、私がダウンロードしたファイルも付記しておきました。

注)GNUmake(gmake)がインストールされていない場合は、先にインストールしておく必要があります。(ftp://ftp.gnu.org/gnu/make/

  ◆バイナリユーティリティ(binutils):アセンブラ(as)、リンカ(ld)、バイナリファイルのフォーマット変換(objcopy等)等のツール群

  ダウンロードサイト:ftp://ftp.gnu.org/gnu/binutils/
  私がダウンロードしたファイル:binutils-2.11.2.tar.gz, binutils-2.11-2.11.2-patch.gz
 
 
  Cコンパイラ(gcc)GNUCコンパイラ

  ダウンロードサイト:ftp://ftp.gnu.org/gnu/gcc/
  私がダウンロードしたファイル:gcc-3.0.1.tar.gz
 
 
  Cの標準ライブラリ(newlib、又は、glibc)GNUの組み込み用ライブラリ

  ダウンロードサイト:ftp://ftp.gnu.org/gnu/glibc/
  私がダウンロードしたファイル:製品独自のものを使用したためダウンロードせず。
 
 
  デバッガ(gdb)GNUのデバッガ

  ダウンロードサイト:ftp://ftp.gnu.org/gnu/gdb/
  私がダウンロードしたファイル:gdb-6.0.tar.gz
 
 

 

■インストール方法
1. バイナリユーティリティ(binutils)のインストール

 必ず、Cコンパイラ(gcc)をインストールする前に行います。なぜなら、gccbinutilsにあるツールを呼び出すようになっているからです。
 
 
$ cd $HOME/SH_TOOL # ダウンロードしたディレクトリに移動
$ tar xzvf binutils-x.xx.x.tar.gz # ファイルの解凍・展開
(binutils-x.xx.xというディレクトリが生成され配下にファイルが展開される)
$ cd binutils-x.xx.x # 展開してできたディレクトリに移動
(パッチが必要なバージョンは、この間にパッチファイルの解凍・展開し、patchコマンド、又は手動でパッチを行う)
$ ./configure --target=xxxxxxxx --perfix=yyyyyyyy # 環境設定
(注)--target、及び、--prefixの値は、開発環境に従って設定する。
例)--target=sh-hitachi-coff --perfix=/usr/devel/sh4
$ gmake # コンパイル
$ su # スーパーユーザに変更
Password: (パスワード)  
# gmake install # インストール
# exit #一般ユーザに戻る
$  
 

2. Cコンパイラ(gcc)のインストール

 
$ cd $HOME/SH_TOOL # ダウンロードしたディレクトリに移動
$ tar xzvf gcc-x.x.x.tar.gz # ファイルの解凍・展開
(gcc-x.x.xというディレクトリが生成され配下にファイルが展開される)
$ cd gcc-x.x.x # 展開してできたディレクトリに移動
(パッチが必要なバージョンは、この間にパッチファイルの解凍・展開し、patchコマンド、又は手動でパッチを行う)
$ ./configure --target=xxxxxxxx --perfix=yyyyyyyy # 環境設定
(注)--target、及び、--prefixの値は、開発環境に従って設定する。
例)--target=sh-hitachi-coff --perfix=/usr/devel/sh4
$ gmake # コンパイル
$ su # スーパーユーザに変更
Password: (パスワード)  
# gmake install # インストール
# exit #一般ユーザに戻る
$  
 

3. Cの標準ライブラリ(newlib、又は、glibc)のインストール

 私の場合、製品で用意されたものを使用したので、実際はインストールしていませんが、他のツールと同じ要領で行います。
 

 
$ cd $HOME/SH_TOOL # ダウンロードしたディレクトリに移動
$ tar xzvf glibc-x.x.x.tar.gz # ファイルの解凍・展開
(glibc-x.x.xというディレクトリが生成され配下にファイルが展開される)
$ cd glibc-x.x.x # 展開してできたディレクトリに移動
(パッチが必要なバージョンは、この間にパッチファイルの解凍・展開し、patchコマンド、又は手動でパッチを行う)
$ ./configure --target=xxxxxxxx --perfix=yyyyyyyy # 環境設定
(注)--target、及び、--prefixの値は、開発環境に従って設定する。
例)--target=sh-hitachi-coff --perfix=/usr/devel/sh4
$ gmake LANGUAGE="c" # コンパイル (使用言語をCに指定)
$ su # スーパーユーザに変更
Password: (パスワード)  
# gmake install # インストール
# exit #一般ユーザに戻る
$  
 

4. デバッガ(gdb)のインストール

 私の場合、開発規模が大き過ぎてデバッグモードのコンパイル時に「line number overflow」というwarningが出てしまい、gdbを起動してデバックを開始しようとすると、「Program received signal SIGBUS, Bus error.」と表示されデバッグができないという問題があり、実はgdbは使用していません。
 色々調べたのですが、どうもline numberが0xffffを超えるとオーバフローしてデバッグできないようです。でも一応、gdbのインストール方法は簡単なのでご紹介しておきます。
 

 
$ cd $HOME/SH_TOOL # ダウンロードしたディレクトリに移動
$ tar xzvf gdb-x.x.x.tar.gz # ファイルの解凍・展開
(gdb-x.x.xというディレクトリが生成され配下にファイルが展開される)
$ cd gdb-x.x.x # 展開してできたディレクトリに移動
(パッチが必要なバージョンは、この間にパッチファイルの解凍・展開し、patchコマンド、又は手動でパッチを行う)
$ ./configure --target=xxxxxxxx --perfix=yyyyyyyy # 環境設定
(注)--target、及び、--prefixの値は、開発環境に従って設定する。
例)--target=sh-hitachi-coff --perfix=/usr/devel/sh4
$ gmake # コンパイル
$ su # スーパーユーザに変更
Password: (パスワード)  
# gmake install # インストール
# exit #一般ユーザに戻る
$  
 

 

 


Copyright (C) 2003-2004 Taketo Kamikawa