GR-SAKURAでmrubyを動かす (1)
こんにちは、久々の更新になります。
ようやく、GR-SAKURAにmrubyを入れてみたので、備忘録を兼ねて書いておきます。
GR-SAKURAのローカルビルド環境を作る
WindowsユーザなのでWindowsでの話しになります。
mrubyをWebコンパイラでビルドするのは難しいので、先ず最初にローカル環境でビルドできるようにします。
ローカル環境でビルドするにはWindowsにcygwinをインストールします。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 10月 6 15:49 gr_build drwxr-xr-x+ 1 minao None 0 10月 6 15:49 gr_common -rwxr-xr-x 1 minao None 637 10月 6 15:32 gr_sketch.cpp -rwxr-xr-x 1 minao None 3249 10月 6 15:43 makefile -rwxr-xr-x 1 minao None 30020 10月 6 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のローカルビルド環境が整いました。