goo blog サービス終了のお知らせ 

つれづれなるまゝに

単なる作業メモ。主に、Linux, arduino, raspberry piとか?

MacでGR SAKURAのクロスコンパイル環境を構築

2014-09-27 22:34:32 | プログラミング
mruby向けにGR SAKURAのクロスコンパイル環境の構築にトライ つづき

前回に書き忘れたが、gccのバージョンをあげたのはMacPortsでいれたgccが4.2でクロスコンパイル環境構築中にエラーになってうまくいかなかったから。
結論的には、4.8にしたところ上手く構築できた。

基本的には、以下のページを参考にした。

GR-SAKURAでmrubyを使う - Qiita

ただ、v12.02 と少し古めなので最新のバージョンで構築。
結果から先に書くと、以下のバージョンで構築できた。
・GNURX v14.02 Source Code of GCC
・GNURX v14.02 Source Code of Newlib
・GNURX v14.02 Source Code of Binutils
・GDBRX v14.01 Source Code of GDB

gdbだけ、v14.02だと以下のエラーが出てmakeができなかった。

Undefined symbols for architecture x86_64:
 "_n_high_128", referenced from:
  _regcache_raw_write in regcache.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [gdb] Error 1

ちょうどエラーになっている部分のコードを見ると、

/* RX hack: add the high part of 128(96) bit register */

というコメントがあった。何かのファイルもれかパス通しもれかとおもってgrepかけたけど見つからず断念。


以下、差分やポイントだけ列記。

・configureのCCは利用するバージョンになおす
 gcc-4.7 → gcc-4.8
・configureのprefixはフルパスで書かないとエラーになる
 ~/rx-tools → /Users/<ユーザ名>/rx-tools
・gccのシンボリックリンク(ln -s)の先は、使用するnewlibのバージョンにあわせたパスになおす。間違ってもエラーにならないので注意しないとエラーになってあれ?って思う。
 newlib-1.20.0 → newlib-2.1.0
・14.01のgdbのmake/make installでは以下のファイルに実行権を付与する必要あり。V14.02では解凍したファイルに実行権ついてたが、V14.01では実行権がついてない。
 configure
 gdb/observer.sh
 mkinstalldirs
 install-sh

webコンパイラ環境からGR-SAKURA用のライブラリを取得する方法ですが、参照もとでは1つ1つ落とさないといけないような感じで書かれてるが、最近はzipでまるごと落とせる。
このあたりは、たろささんの以下のページを参照にするといいかも。
GR-SAKURAでmrubyを動かす (1)

ポイントは一度ビルドしてmakefileを作成することでしょうか。

で、落としてきたファイルでmakeするとsketch.binができる。
USBでつなげて、赤いSW1を押してリセットすると、ドライブとして認識されるので、sketch.binを放り込む。
すると、強制的でドライブが解放されて、放り込んだバイナリが動作した。
 →本体のLEDが順番に点灯するデモが実行されます。


ということで、やっと本題のmrubyにとりかかれる。

<余談>
とってあったメモベースこのブログを書きながら、撮りためたアルドノア・ゼロ(8話と9話)みてましたが、結構面白いなぁ。続きみようっと

最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。