コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

GR-SAKURAでmrubyを動かす (1)

こんにちは、久々の更新になります。
ようやく、GR-SAKURAにmrubyを入れてみたので、備忘録を兼ねて書いておきます。

GR-SAKURAのローカルビルド環境を作る

WindowsユーザなのでWindowsでの話しになります。
mrubyをWebコンパイラでビルドするのは難しいので、先ず最初にローカル環境でビルドできるようにします。
ローカル環境でビルドするにはWindowscygwinをインストールします。cygwinのインストール方法は、過去にも記事にしているのでcygwinで検索してみてください。
cygwinではDevelとRubyが必要です。Develを入れるとRubyは入っているかもしれません。


次に、GR-SAKURAのコンパイラを用意します。特殊電子回路株式会社さんのRX-MEGAボード/ダウンロードサイトから「RX用GNU C コンパイラ RX-ELF-GCC(Cygwin版)」をダウンロードします。
cygwinの環境作りは特殊電子回路株式会社さんのサイトにも書かれていました。


ダウンロードしたtkdn-20110720-gcc.tar.bz2をcygwin上で解凍します。

$ tar jxvf tkdn-20110720-gcc.tar.bz2

解凍したものを適当なところに置きます。私は/usr/local/に置きました。

$ mv tkdn-20110720 /usr/local/

そして、パスが通るように.bashrcに下記を追加します。

#GR-SAKURA
export PATH=$PATH:/cygdrive/c/cygwin/usr/local/tkdn-20110720/rx-elf/bin

これで、cygwinを再度立ち上げるか、source .bashrcすれば、GR-SAKURAのビルド環境が出来上がります。
試しに、rx-elf-gcc --versionすると下記のようなメッセージがでると思います。

$ rx-elf-gcc --version
rx-elf-gcc (GCC) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

テストコンパイル

Webコンパイラからプロジェクトを持ってきて、試しにコンパイルしてみたいと思います。先ず新規にプロジェクトを作成します。

一度、ビルドします。一度ビルドするのは、makefileを自動生成させるためです。

Down Load Zip Fileを選びます。

プロジェクト一式をダウンロードします。


これをcygwinのホームのどこかに展開します。私は~/gr-sakura/に展開しました。

$ cd ~/gr-sakura/localcompile/

minao@tarosa8 ~/gr-sakura/localcompile
$ ls -l
合計 44
drwxr-xr-x+ 1 minao None     0 106 15:49 gr_build
drwxr-xr-x+ 1 minao None     0 106 15:49 gr_common
-rwxr-xr-x  1 minao None   637 106 15:32 gr_sketch.cpp
-rwxr-xr-x  1 minao None  3249 106 15:43 makefile
-rwxr-xr-x  1 minao None 30020 106 15:43 sketch.bin


そして、makeします。

$ make
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib  -c -x c++ gr_sketch.cpp -o gr_sketch.o
rx-elf-ld ./gr_common/gstart.o ./gr_sketch.o ./gr_common/intvect.o ./gr_common/lowlevel.o  ./gr_common/lib/libc.a ./gr_common/lib/libg.a ./gr_common/lib/libgcc.a ./gr_common/lib/libm.a ./gr_common/lib/librxduino.a ./gr_common/lib/libsim.a ./gr_common/lib/libstdc++.a ./gr_common/lib/libsupc++.a ./gr_common/lib/libtkdnhal.a   -Map ./gr_build/sketch.map -L./gr_common/lib/ -lrxduino -lstdc++ -lsupc++ -lc -lsim -lgcc -lm -ltkdnhal -nostartfiles --no-flag-mismatch-warnings -T ./gr_common/gr_sakura.gsi -o ./gr_build/sketch.x
rx-elf-ld: warning: section `.bss' type changed to PROGBITS
rx-elf-objcopy -O binary ./gr_build/sketch.x  sketch.bin
rx-elf-objcopy --srec-forceS3 --srec-len 32 -O srec ./gr_build/sketch.x  ./gr_build/sketch.mot
rm -f *.o


これで、新規に sketch.bin が生成されます。
GR-SAKURAのローカルビルド環境が整いました。