1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Renesas RX210でmruby/c

Last updated at Posted at 2024-07-28

e2 studioは遅いしWindowsのノートPCは画面が狭くて見通しがすこぶる悪いので、結局FreeBSDでLinux用のツールチェインを使って開発する事にしました。

FreeBSDにはLinuxのELFバイナリを実行する機能があり、蟹さんのツールチェインなどを動かしています。

実はportsを作ってネイディブのbinutilとgcc492をビルドしてみたのですが、ビルドはできるのですすが、正常に動くターゲットのバイナリが作れなかったので、あきらめました。

gccやbinutilのrxサポートは本家にも入っているのですがRenesas版には独自の修正が入っているようです。本家のgcc492にはmisaオプションはありません。

Renesas版のソースは提供されているので、頑張ればネイティブのコマンドが作れると思いますが、Linux互換機能で十分使えるので、ビルドはしません。

オープンソースのサイトにあるgcc4系の最後のパッケージのgcc-4.8.4.201902-SP1-GNURX-ELF.runを使いました。activation codeの事は前の記事に書きました。

gcc8ではなくgcc4にしたのはmruby on YABMがすべてgcc4だからです。

ちょうどRXのmruby/cの記事が公開されていたので参考にしました。

同じコードを下記のレポジトリに突っ込んでビルドできるようにしてみました。

e2 studioで新プロジェクトで生成されたファイルにネットで見つけたコードを入れてmruby/cのコードとがっちゃんこしました。

makeするとmain.motが出来上がるので、このファイルをWindowsにコピーしてRenesas Flash Programmerで焼くと出来上がりです。

image.png

100円(税込)で動くmruby/cは最安値ではないでしょうか。

RX210へのmruby/cのポートはitocさんにpdf資料があるのですが、5年くらい前のもので、古くなっていますが、大変参考になりました。

timerサポートをやってきがついたのだがmruby/cはメモリの少ないターゲットではstackの設定が引っかかる事があるようです。RX210のtimerサポートではスタック調整のためldスクリプトをいじりました。

間違ったバイナリを焼かないために、main.motを作る時にCRCを表示するようにしました。

rx-elf-size main.elf
   text    data     bss     dec     hex filename
 106252    3272   12392  121916   1dc3c main.elf
rx-elf-objcopy main.elf -O srec -I elf32-rx-be-ns main.mot
CRC-32 : 29ACDD1A

Renesas Flash Programmerで焼く時に確認できます。

image.png

Renesas Flash Programmerにはcliのコマンドもあるようです。

R5F52108ADFPの場合、焼先はFlashではなくてROMです。

スイッチ付のUSB HUBやケーブルを使うと設定を変えたときにコネクタの抜き差しをしなくてすむので便利です。

写真(2024-07-30 8.39) #2.jpg

実装不良品でリセットボタンが付いてなかったのでこうしました。普通の製品ではリセットボタンでよいです。

R5F52108ADFPのROMの書き込み回数は1000回のようです。古い製品なのでちょっと少ないですが、トライ&エラーをしている分にはそれほどにはならないと思います。ちなみに後継の製品で使われているR5F5210BBDFPは10000回のようです。

R5F52108ADFPにもデータ用のflashがあり、そこは8Kで100,000回の書き込みが出来るようです。Rubyスクリプトをいろいろ試したのであればmrbをそこに置くのも手かもしれません。データ用のflashは2バイト単位でのアクセスなので一旦ヒープにコピーして使うことにしました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?