mruby 概要(研修フィードバック)
Bài đăng này đã không được cập nhật trong 8 năm
mrubyとは
- Rubyを小型化し、組み込み用途で利用する。
- 例)組み込みデバイス/他のアプリケーション内部で動く
Rubyとの違い
- ソースコードをコンパイルしてバイトコードを得る。
- バイトコードをVMが逐次実行する。(VMが存在する環境であれば使用できる。)
バイトコードの特徴
- バイナリ形式
- アーキテクチャに依存しない(OSやバージョン)
- 実行時の高速化・省メモリ
組込みソフトの難しさ
- 製品ごとに、使われているマイコンのCPU、メモリ、OSが異なる。
- マイコンごとに、専用の開発環境(PC)が必要
- 周辺回路(I/O)も異なる。
- 開発だけでなく、保守作業もマイコン用の環境を残しておく必要があり困難
組込みソフトの難しさ(例)
- 製品に使用していたCPUが製造終了
- 新しいCPUを使った製品を開発する
- ソフトを作り直す(CPUが異なることにより)
組込みソフトの難しさ解決方法
1. ハードウェアに近い部分を抽象化する(windows32ビットと64ビットを動かせる)
・HAL(Hardware Abstract Layer)
2. VMで抽象化する。
・Java
3. 抽象度の高い言語を使う。
・スクリプト言語(RubyやJavascriptなど)
2と3をmrubyで行う。(VMがあれば良いため。)
mrubyのコード
Lチカコード(プログラミング言語で言う"Hello World!" )
以下のコードをコンパイルしてバイトコードに変換したものをVMが逐次実行する。
while true do
led 1
delay 50
led 0
delay 950
end
VMで動作検証
- PCの上で動くVMを作っておくと組込みソフトのテストができる。
- テスト用入出力を用意しておきプログラム実行する。
- テストが完了したらマイコンに流し込む。
mrubyの最近の話題
enziボード:mruby専用のマイコンボード、ARM Coretex M4
- Arudinoみたいな感覚で使えるmrubyボード
- Arudinoとの違い
・mrubyである。
・enzi以外のmrubyボードも用意する(バイトコード変換)
・必要なセンサに対応したVMにカスタマイズ可能(Railsの感覚)
All rights reserved