2014/05/30

FreeRXduino で GR-SAKURA のローカルビルド環境を整えてみた

最近、GR-SAKURA の Web コンパイラのバックエンドライブラリとして使われていた、RXduino が自由にダウンロードできるようになり、FreeRXduino として公開されたようです。
http://rx.tokudenkairo.co.jp/freesoft.html

今まで、GR-SAKURA の開発環境は、Web コンパイラがあったわけですが、そのプロジェクトをローカルにダウンロードして、手元でビルドすることはライセンス的に不可能でした。
(詳細: http://rx.tokudenkairo.co.jp/license_gr.html)

しかし、FreeRXduino が公開されたことで、手元のローカルマシンでビルドすることが、ライセンス違反なく、自由にできるようになります。
ただし、オープンソースではないので、ビルド環境ごと再配布したり、RXduino を改変した物を公開したり、 GPL のソースコードとともにコンパイルしたバイナリを再配布したりすることも不可能です (LGPL なら問題ないはずです)。

# ちなみに、最近 Web コンパイラに、GR-SAKURA ライブラリ v2.00 が追加されました。こちらはオープンソースとなるようですが。つまり、RXduino は終焉の方向?

そこで、久しぶりに GR-SAKURA を持ちだして、少しいじってみました。
(とはいえ、実は目的があってのことなのですが、それは後日)


ツールチェイン (binutils, gcc) の整備

まずは、GR-SAKURA に搭載されている RX63N 用のコンパイル環境を整えます。RX 用のコンパイラは、がじぇるねの Web コンパイラも gcc を利用しています。

ツールチェインの入手先として、ルネサス向けの GNU ツールの開発元?の KPIT からダウンロードする方法があります。Windows であれば、Cygwin 用のコンパイル環境がここから入手できます。Linux 用のバイナリとソースコードもあります。
http://www.kpitgnutools.com/index-ja.php

僕は普段 Linux をメインに使っているので、今回も Windows ではなく Linux のマシンに GR-SAKURA のローカルビルド環境を構築してみようと思います。利用しているディストリビューションは、Debian 7 (wheezy) です。

Debian では、RX 用のクロスコンパイル環境のパッケージは提供されていません。
KPIT からバイナリをダウンロードしてみたのですが、32bit 向けしかありません。ソースコードからコンパイルしてみたのですが、何故かうまくコンパイルできません。しかも、アーカイブの中のパーミッションもなんかおかしいです。

なので、GNU から最新版の Binutils と gcc と Newlib をダウンロードしてきて、 以下のようにコンパイルしました。
  • binutils-2.24
    • ../binutils-2.24/configure --target=rx-elf --program-prefix=rx-elf-
  • gcc-4.9.0
    • ../gcc-4.7.2/configure --target=rx-elf --enable-languages=c,c++ --with-newlib
  • newlib-2.1.0
    • (gcc のディレクトリの下に newlib と libgloss をシンボリックリンク貼ると、gcc と同時にコンパイルできる)

rx-elf-gcc, rx-elf-as などが用意できれば問題無いです。

FreeRXduino を使ってみる

FreeRXduino は、以下からダウンロードできます。この記事を書いてる時点で最新の、v1.10a をベースに話を進めます。
http://rx.tokudenkairo.co.jp/freesoft.html

展開して、簡単な使い方.txt をベースに以下のように進めます。
  • ./setenv_rx.sh
    • これは、シェルを立ち上げる度に、ビルドする前に毎回実行
  • make use_grsakura
    • 説明には乗ってないけど、このコマンドで GR-SAKURA 用のライブラリを設定できる
  • make gadget
    • userapp.bin が出力されます。
    • そのまま、GR-SAKURA を接続してファイルをコピーして、書き込みましょう。
userapp.cpp がサンプルとして用意されてるので、簡単にテストできます。LED が、ピカピカして正しく動作すれば OK です。

これで、GR-SAKURA 用のローカルビルド環境を構築出来ました。
ただ、rxbuild はインクルードパスがおかしいので、Linux ではちょっと書き換える必要がありました。
とりあえず、普通に使う分には make gadget で問題ないでしょう。

せっかくなので、mrubyの環境も整えてみました。
それはまた別のエントリで。

0 件のコメント: