Top > sh_cross_compiler 広告
*準備 [#f6fb5ee3] DebianとUbuntu向けに書いてあります。 **GCC,binutiles,newlibなどのソースをダウンロードしてくる [#f2189426] それぞれなるべく新しいものを取ってくる。ただし、PCで使っているバージョンと合っている方が、同じライブラリを使えて便利だと思う。 -binutils --ftp://ftp.gnu.org/gnu/binutils/ -gcc --ftp://ftp.gnu.org/gnu/gcc/ -newlib --http://sources.redhat.com/newlib/ ディストリビューションのソースパッケージをインストールしても良いかも。 **GCCのビルドに必要なライブラリを取ってくる [#vf7f541c] 大体はLinuxをインストールしたときにgcc(ソースではない)などと一緒にインストールされていると思うけど、足りないものがある。~ GMPとMPFR、MPCを入れるのだけれど、libgmpなどは多分すでにインストール済み。~ じゃあ何を入れるのかとなると、開発向けパッケージを入れる必要がある。つまり -libgmp-dev -libmpfr-dev -libmpc-dev 「libmpc-dev」は他の2つのパッケージに依存するので、「libmpc-dev」をインストールすれば3つともインストールされる。~ だいたい何かをコンパイルするなんてときは開発向けパッケージ(xxx-devみたいの)を入れておけばよい。 **コンパイル [#fde5ece4] [[先人:http://hyakuren-soft.sakura.ne.jp/dame_rbo_html/superh_cross_page.html]]たちに導かれるまま、まずはbinutilsのコンパイル~ それぞれのファイルのバージョンはダウンロードしたものに合わせる。~ &color(Red){ディレクトリやファイル名などは適宜訂正してください。}; $ 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サイト:http://japan.renesas.com/]]から取ってくる。登録が必要~ なかなか見つけにくいが「SuperHファミリ用I/Oレジスタ定義ファイル」で検索すると良いかも。~ 現時点では「[[ここ:http://japan.renesas.com/support/downloads/download_results/C2001401-C2001500/sample_codes_sh_io_register.jsp]]」。&color(Red){登録が必要}; **プログラムをコンパイル [#o8c42cac] [[(別室)SH-2(SH7125F/SH7144F)で遊ぼう :http://homepage3.nifty.com/ARTWEB/sh2.htm]]で配布してくれている、GCC用のサンプルプログラムファイルをもらってくる。 圧縮ファイルには、 -Makefile -main.c -startup1.s -memory.def が入っている。「memory.de」と「startup1.s」は流用可能みたい。 Makefileの中身を自分の環境に合わせて変更すれば、とりあえず make でMOTファイルが出来上がる。 **他の方法でプログラムをコンパイル [#m44a7a7f] $ /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ファイルにする [#afd786d5] とりあえず以下のサイトを参照してMOTファイルに変換する -[[使ってみよう、linux! GDB-H8 simulator編(おまけ、SH):http://www2.plala.or.jp/taxmanmt/gdbSH.html]] -http://www.geocities.jp/chako_ratta/micon/h8gcc_install.html -[[H8用コンパイラ GCC(Cygwin):http://www.geocities.jp/chako_ratta/micon/h8gcc_install.html]] 広告 |