Top > sh_cross_compiler 広告 準備DebianとUbuntu向けに書いてあります。 GCC,binutiles,newlibなどのソースをダウンロードしてくるそれぞれなるべく新しいものを取ってくる。ただし、PCで使っているバージョンと合っている方が、同じライブラリを使えて便利だと思う。
ディストリビューションのソースパッケージをインストールしても良いかも。 GCCのビルドに必要なライブラリを取ってくる大体はLinuxをインストールしたときにgcc(ソースではない)などと一緒にインストールされていると思うけど、足りないものがある。
「libmpc-dev」は他の2つのパッケージに依存するので、「libmpc-dev」をインストールすれば3つともインストールされる。 だいたい何かをコンパイルするなんてときは開発向けパッケージ(xxx-devみたいの)を入れておけばよい。 コンパイル先人たちに導かれるまま、まずはbinutilsのコンパイル $ tar jxvf binutils-x.xx.tar.bz2 $ mkdir binutils_tmp $ cd binutils_tmp $ ../binutils-x.xx/configure --prefix=/usr/local/sh_cross_4.7 --target=sh-renesas-elf $ make $ su # make install シンボリックリンクを作って使いやすくしておく # cd /usr/local # ln -s sh_cross_4.7 sh_cross 次にgccのコンパイル $ tar zxvf gcc-core-x.xx.x.tar.gz $ tar zxvf newlib-x.xx.x.tar.gz $ mkdir gcc-x.xx.x_tmp $ cd gcc-x.xx.x_tmp $ su # export PATH=$PATH:/usr/local/sh_cross/bin # ../gcc-4.7.0/configure --prefix=/usr/local/sh_cross_4.7 --target=sh-renesas-elf --with-newlib --with-headers=../newlib-1.20.0/newlib/libc/include/ --enable-languages=c,c++ makeに時間が掛かるので、マルチプロセッサでコンパイルする。「-j 12」の12はコア数x2 (Hyper threddingの場合) # make -j 12 # make install 最後にnewlibをコンパイル $ mkdir newlib_tmp $ cd newlib_tmp $ export PATH=$PATH:/usr/local/sh_cross/bin $ ../newlib-1.20.0/configure --prefix=/usr/local/sh_cross_4.7 --target=sh-renesas-elf $ make 結構時間が掛かるので $ make -j 12 とすると多少速くなる $ su # make install で、クロスコンパイラは出来上がり。 それぞれのCPUのヘッダーファイルが必要なのでルネサスのWebサイトから取ってくる。登録が必要 プログラムをコンパイル(別室)SH-2(SH7125F/SH7144F)で遊ぼう で配布してくれている、GCC用のサンプルプログラムファイルをもらってくる。 圧縮ファイルには、
Makefileの中身を自分の環境に合わせて変更すれば、とりあえず make でMOTファイルが出来上がる。 他の方法でプログラムをコンパイル$ /usr/local/sh_cross/bin/sh-renesas-elf-gcc -m2 hoge.c でコンパイルできる。「-m2」はSH2ファミリーのとき export PATH=$PATH:/usr/local/sh_cross/bin この行を./.bashrcに書いておくなりして、パスを通しておけば $ sh-renesas-elf-gcc -m2 hoge.c でよい。 ところが、これでできるのはバイナリファイルなので実際に書き込むときに必要なMOTファイルにする必要がある。 MOTファイルにするとりあえず以下のサイトを参照してMOTファイルに変換する 広告 |