GR-CITRUSのmrubyソースをmakeする方法


　GR-CITRUSのソースをmakeする方法について説明します。ただし、Windows環境でmakeする場合についての説明です。
## GNU Toolsサイトへの登録
　GR-CITRUSのソースをmakeするためには、自分のPC上にRXマイコンのクロスコンパイル環境を作る必要があります。クロスコンパイル環境は[GNU Toolsサイト](https://gcc-renesas.com/ja/)からまとめてダウンロードできます。
　ダウンロードするためには[GNU Toolsサイト](https://gcc-renesas.com/ja/)へのユーザ登録が必要で、先ずは[ユーザ登録](https://gcc-renesas.com/wp-login.php?action=register)を行います。
### 登録内容
　登録画面では以下の情報を登録します。

* ユーザー名
* メールアドレス
* Password(パスワード)
* Password confirmation(パスワード確認)
* Country of Residence(国名)
* Company Name(会社名)
* Company Address(会社住所)
* Company URL(会社URL)
* Company Position(役職)
* Target Hardware → RX
* Application Domain(何用か)
* I intend to use CyberTHOR Studios GNU Tools for ...(目的)
* I agree to be bound by this website’s Terms of Useにチェックを入れる

　これら必須項目を入力した後、画像認証文字を入力して「登録」を押します。 
　確認画面になるので、これでOKであればもう一度「登録」を押します。

　登録すると、確認のメールが届きます。

```
To activate your user, please click the following link:

https://gcc-renesas.com/wp-login.php?cimy_key=****************&action=cimy_uef_redirect&redirect_to=https://gcc-renesas.com/ja/

After you activate, you will receive *another email* with your login.
```
　URLをクリックするとGNU Toolsサイトのユーザとして正式登録され、パスワード変更のメールが日本語で届きます。

```
こんにちは tarosay さん

あなたのパスワードが GNU Tools で変更されたことをお知らせします。

もしパスワードを変更した覚えがない場合、次のサイト管理者に連絡してください。
cyberthorstudios@gmail.com

このメールは tarosa.y@gmail.com に送信されました。


GNU Tools
https://gcc-renesas.com
```
これで登録は終了です。
## GNURXv1403-ELF.exeのダウンロード
　GR-CITRUSのmakeは、最新のGNURXではできません。v14.03を用いる必要があります。
　GNURXのv14.03を[Toolchainsダウンロード](https://gcc-renesas.com/ja/rx/download-legacy-toolchains/)からダウンロードします。
![picture1.png](https://qiita-image-store.s3.amazonaws.com/0/32065/1fbad3d8-0682-1069-cd0d-28238d1490a4.png "GNURX Toolchain v14.03")
GNURX v14.03 Windows Toolchain(ELF)をダウンロードします。
## Toolchainアクティベーションコードの取得
　Toolchainのインストールにはアクティベーションコードが必要となります。アクティベーションコードはGNU Toolsにログインして、以下に示すように、右上のユーザ名をクリックすると、ダッシュボードが選択できる画面に切り替わります。
　ここで、ダッシュボードメニューを選択すると、Toolchain アクティベーションコードを見ることができます。このコードを控えておいて、Toolchainインストール時に入力します。
![1.png](https://qiita-image-store.s3.amazonaws.com/0/32065/21640828-8c89-bf45-af1d-4f02028df3e2.png "ダッシュボード")
## rx631用のrx-elf-gccのセットアップ
　ダウンロードしたGNURXv1403-ELF.exeを実行します。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/32065/00faa93e-e152-5ccd-625e-4759b282ea57.png "Welcome to GNURX v14.03-ELF Setup")
　デフォルトでインストールします。「Next」を押します。
　次に、チェックボックスをチェックして「Next」を押します。
![02.png](https://qiita-image-store.s3.amazonaws.com/0/32065/2e2cf90f-c774-a5c1-d26c-b10efbfbf008.png "Registration Information")
　メールアドレスと先ほど控えた「アクティベーションコード(Activation Code)」を入力します。
![03.png](https://qiita-image-store.s3.amazonaws.com/0/32065/fbc8c248-f771-82bd-186d-e2287c4185d8.png)
　Choose Destination Locationを入力するときに、Program Filesに入れてしまうと後で面倒なので、「c:\renesas\GNURXv14.03-ELF」のようにフォルダを指定して、インストールします。
![06.png](https://qiita-image-store.s3.amazonaws.com/0/32065/87b5dd67-055a-6dec-a206-259544d8b21e.png "Choose Destination Location")
「Next」を押します。
　後は、「Next」を押し続けてインストールを行います。インストールが終了すると、最後に「finish」を押せばインストーラーが閉じます。
## GNU_RX_elf.batの確認
GNURXv14.03-ELFをインストールしたフォルダに「GNU_RX_elf.bat」というバッチファイルがあるはずです。
ファイルの中身を確認します。以下のようにbinなどにPathが通るように書かれていて、DOSプロンプトが起動するようになっているはずです。

```.bat:GNU_RX_elf.bat
@Echo Off
Set PATH=C:\renesas\GNURXv14.03-ELF\rx-elf\rx-elf\bin;"C:\renesas\GNURXv14.03-ELF\Other Utilities";C:\renesas\GNURXv14.03-ELF\rx-elf\rx-elf\libexec\gcc\rx-elf\4.8-GNURX_v14.03;%PATH%

Set MAKE_MODE=unix

cd "C:\renesas\GNURXv14.03-ELF"

Cmd "cd\" /k
```
　試しに、GNU_RX_elf.batを起動します(マウスでダブルクリックします)。DOSプロンプトが開いたら、rx-elf-gcc.exe --versionとして、以下のようにバージョンが表示されれは、インストールが成功しています。以下ではmakeが走るかどうかも調べています。

```dos
C:\renesas\GNURXv14.03-ELF>rx-elf-gcc.exe --version
rx-elf-gcc.exe (GCC_Build_1.01) 4.8-GNURX_v14.03
Copyright (C) 2013 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.


C:\renesas\GNURXv14.03-ELF>make
make: *** No targets specified and no makefile found.  Stop.

C:\renesas\GNURXv14.03-ELF>
```
これで、make環境は整いました。
## GR-CITRUSのソースコードの取得
[github](https://github.com/)の[wakayamarb/wrbb-v2lib-firm](https://github.com/wakayamarb/wrbb-v2lib-firm)リポジトリからmasterブランチをクローンします。
![a.png](https://qiita-image-store.s3.amazonaws.com/0/32065/62a9881f-5740-4cc3-4399-6d4fa5c87250.png "Clone or Download")
ダウンロードしたwrbb-v2lib-firm-master.zipファイルを適当なフォルダで解凍します。
## makefileを書き換える
　ダウンロードしたソースコードのmakefileを自分の環境に合うように書き換えます。書き換えるのは「GNU_PATH:=」の一箇所だけです。GNURXv14.03-ELFをインストールしたPathに書き換えます。

```mf:makefile
GNU_PATH := C:/Renesas/GNURXv14.03-ELF/rx-elf/rx-elf/
GCC_VERSION := 4.8-GNURX_v14.03
```

## makeします
　先ほどインストールしたGNU_RX_elf.batを実行します。解凍したwrbb-v2lib-firm-masterフォルダに移動します。

```dos
c:\renesas\GNURXv14.03-ELF>cd c:\Temp\wrbb-v2lib-firm-master

c:\Temp\wrbb-v2lib-firm-master>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は ******** です

 c:\Temp\wrbb-v2lib-firm-master のディレクトリ

2016/05/19  02:00    <DIR>          .
2016/05/19  02:00    <DIR>          ..
2016/05/19  02:00    <DIR>          description
2016/05/19  02:00    <DIR>          firmware
2016/05/15  15:21             1,076 MITL
2016/05/19  02:00    <DIR>          mruby
2016/05/15  15:21             1,591 README.md
2016/05/19  02:00    <DIR>          sample
2016/05/19  02:00    <DIR>          USB_Driver
               2 個のファイル               2,667 バイト
               7 個のディレクトリ  203,491,278,848 バイトの空き領域

c:\Temp\wrbb-v2lib-firm-master>
```
　makefileのあるfirmwareフォルダに移動します。

```dos
c:\Temp\wrbb-v2lib-firm-master>cd firmware

c:\Temp\wrbb-v2lib-firm-master\firmware>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は ******** です

 c:\Temp\wrbb-v2lib-firm-master\firmware のディレクトリ

2016/05/19  02:00    <DIR>          .
2016/05/19  02:00    <DIR>          ..
2016/05/15  15:21                27 .gitignore
2016/05/15  15:21           253,968 citrus_sketch.bin
2016/05/19  02:00    <DIR>          gr_common
2016/05/15  15:21             3,186 gr_sketch.cpp
2016/05/15  15:21            10,263 makefile
2016/05/15  15:21             7,037 wrbb.h
2016/05/19  02:00    <DIR>          wrbb_eepfile
2016/05/19  02:00    <DIR>          wrbb_mruby
               5 個のファイル             274,481 バイト
               5 個のディレクトリ  203,491,266,560 バイトの空き領域

c:\Temp\wrbb-v2lib-firm-master\firmware>
```
　gr_buildフォルダを作成します。

```dos
c:\Temp\wrbb-v2lib-firm-master\firmware>md gr_build

c:\Temp\wrbb-v2lib-firm-master\firmware>
```
　makeします。

```dos
c:\Temp\wrbb-v2lib-firm-master\firmware>make
...
...
rx-elf-objcopy -O binary ./gr_build/citrus_sketch.x  citrus_sketch.bin
rx-elf-objcopy -O srec -I elf32-rx-be-ns ./gr_build/citrus_sketch.x ./gr_build/citrus_sketch.mot

C:\Temp\wrbb-v2lib-firm-master\firmware>
```
　makeが終了すると、citrus_sketch.binが最新の日付で生成されているはずです。

```dos
C:\Temp\wrbb-v2lib-firm-master\firmware>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は ******** です

 C:\Temp\wrbb-v2lib-firm-master\firmware のディレクトリ

2016/05/19  08:29    <DIR>          .
2016/05/19  08:29    <DIR>          ..
2016/05/19  08:09                16 .gitignore
2016/05/19  08:29           253,968 citrus_sketch.bin
2016/05/19  08:29    <DIR>          gr_build
2016/05/19  08:28    <DIR>          gr_common
2016/05/19  08:09             3,186 gr_sketch.cpp
2016/05/19  08:29            36,400 gr_sketch.o
2016/05/19  08:09            10,252 makefile
2016/05/19  08:09             7,037 wrbb.h
2016/05/19  08:29    <DIR>          wrbb_eepfile
2016/05/19  08:29    <DIR>          wrbb_mruby
               6 個のファイル             310,859 バイト
               6 個のディレクトリ  15,571,156,992 バイトの空き領域

C:\Temp\wrbb-v2lib-firm-master\firmware>
```