Monami-ya.mrb の開発環境(2014年6月版)

SNS の外でご意見頂きまして.

Monami-ya.mrb って,twitter 辺りでは目にするけれど,どんな環境で作っているのか判らない

はい.断片的にはtweetなどしていますし,OSX 上でのビルド環境等も(今のところ消極的に)公開しているのではありますが.

ハードウェアがどんな感じなのかは,なかなか想像つかないという方も多いと思います. 特に Ruby 系の方は,組み込みボードそのものに面識が無かったりするでしょうし.

ターゲットハードウェア

写真を撮ったので,並べておきます.

開発ホスト機

しょっぱなから写真を撮り忘れました. でもまあ機種名を挙げれば,想像つくかと思います.

MacBook Pro 2.8 GHz Intel Core 2 Duo. すいぶんと古い箱です. メモリは8GB.HDDは500GB.

この程度のスペックでも,monami-ya.mrb のビルドは,1分以内に終わります.

正直言うと,もう少し良いのが欲しいですけれどね…GCCのビルドまで行う場合には…. (会社では,GCCのビルドは,クラウド上のビルドサーバを活用しています)

ターゲット

CPU ボード + マザーボード

開発のメインとなるターゲットボードは, BF533CB です. Blackfin という DSP を積んでいます.メモリは RAM 16MB + 内蔵若干,永続ストレージは SPI Flash.

BF533CB

DSP というと特殊なプロセッサという印象を持たれるかもしれません. char のビット幅が16だったり32だったりという変態,みたいな.

しかし,Blackfin に関して言えば,普通の RISC プロセッサとして使えます.char のビット幅は 8 ですし. あまり知られてませんが,品番によっては Microsoft .NET-MF が動きます.uClinux も動きます. しかも 500MHz の高速動作です.

問題は,情報が少ないことです. 特に日本語の情報をwebで求めようとすると,片手で収まるくらいの開発者にしか当たりません. (いや,商社やメーカの中などに入れば,日本人の開発者も,もちろんそれなりにいらっしゃいます)

CPUボードだけでも monami-ya.mrb は動作しますが,シリアルポートのコネクタが便利なので,マザーボードを併用しています.

BF533CB は,シンプルでとてもよいボードなのですが,今後の量産計画は未定のようなのが難点です. 近日中に,BF533CB から,金子システム製の UCB-BF512へ変更する予定でいます.

USB-serial アダプタ

最近の廉価帯ARMボードだと,USB-serialのアダプタをオンボードで積んでいる場合も多いですが,現在使っている BF533CB にはありませんので,外付けしています.

USB-serial

シグナルが3.3Vレベルであれば,何を使っても良いのでしょうけれども,私は秋月電子通商のFT232RL USBシリアル変換モジュールを使っています. モジュールのみで900円と,微妙なお値段ではあります. しかし,UART は,Lチカが済んだあとから開発終了までデバッグ用として永く使うものですので,安定していることと,壊れても代替がすぐに手に入るほうがよいと思います.

JTAG アダプタ

UCB-BF512 は,出荷時点でブートローダとして u-boot が書き込まれていますし,BF533CB も一度 JTAG 経由で書き込めば,同様に u-boot が使えます.

monami-ya.mrb は,uClinux と同様に u-boot 経由でブートできます. よって,JTAG デバッグアダプタは不要です. …と言えれば話は楽なのですが,GDB 無しでは PC 上の mruby 開発が難しいのと同様に,JTAG デバッガなしでの monami-ya.mrb の開発は困難を極めます.

刺身包丁

私が使っているのは,PizzaFactory Tiny JTAG です. つまるところ JTAG ですので,ARM用の JTAG アダプタや FT2232 が載ったモジュールを使うことはできるはずなのですが…. 私自身が PizzaFactory Tiny JTAG の開発を行った時に,BF533 プロセッサで謎の相性問題を引き起こした経験があります.

納期の無い趣味なら,相性問題でアタマを抱えるのも愉しみのうちでしょう. 少しでもお仕事が絡んでいるのなら,人件費と比べて,サクッと買ったほうが安いです.

ざっとこんな感じです. (組み込み開発 == ロジアナやオシロといった計測器が積まれた机),のような印象を持たれるかもしれませんが,実際のところ,RTOS や VM のコア部分での開発では,それらの計測器はあっても無駄です.プローブを挿す場所がありませんから.

開発ホスト機を除くと,予算的には,1万5千円もあればお釣りが来るという感じでしょうか. 「STM32F4-discovery は 2千円でお釣りが来るのに!」っていう気もしますが,スペックが違うので比べるのは野暮かなぁとも思います. STM32F4-discoverty は .NET-MF は走りますが,uClinux が走らないですし.

取り留めもないですが,本稿は日記なので,纏めなくても良いですね.それでは.