狠狠撸
Submit Search
mruby for embedded systems
?
9 likes
?
4,062 views
masayoshi takahashi
Follow
罢辞办测耻搁耻产测会议05での発表资料です。
Read less
Read more
1 of 17
Download now
Download to read offline
More Related Content
mruby for embedded systems
1.
mruby for embedded systems
2012/07/29 TokyuRuby会議05 高橋征義?やまねゆりえ
2.
※某弊社の宣伝とかRuby Conf渡航支援募集中とか 札幌Ruby会議2012LT 募集中とかLL Decade 参加者募集中とかの話は 時間がないので今回は割愛 させていただきます(_o_)
3.
本日のお題 ● mrubyとは ●
組込み環境について ● mrubyの課題 ● デモ ● 解決策 ● 実装
4.
mrubyとは ● 軽量Ruby ●
平成22年度地域イノベーショ ン創出研究開発事業「軽量 Rubyを用いた組込みプラッ トフォームの研究?開発」の 成果 ● ささださんが作ってない方の Ruby
5.
軽量Ruby を用いた組込みプラットフォームの研究?開発 http://www.pref.fukuoka.lg.jp/uploaded/life/50/50557_12372800_misc.pdf
6.
http://el.jibun.atmarkit.co.jp/rails/2012/04/rubymruby-2004.html
7.
組込み環境 ● 家電から自動車、ロケットまでいろい
ろ ● コストと性能のバランス ● PCほどリッチじゃない(ことも多 い) ● OSなし or RTOS(VxWorks, μITRON, 独自の謎OSなど)
8.
mrubyの課題 ● 意外にでかい(当社比) ●
特に実行時の動的メモリ確保がでか い ● 数MBくらいのメモリ環境を想定し ているらしい(まつもとさん談) ● 起動だけで30KB超える ● 100KBくらいでも動かすのがしん どそう
9.
デモ マイコン: Interface付録のFM3(Cortex-M3) のエミュレータ(QEMU 1.0.1) OS: TOPPERS/ASP
1.7.0 アプリ: sample1のtask2としてmruby実行
10.
対策 ●
ハッシュ(khash.h)を使わないよ うにする – シンボル管理で名前?数値の対応 付けに使われているデータ構造を ただの配列にする – 遅い、けど小さくなる
11.
対策 ●
ハッシュ(khash.h)を使わないよ うにする – 内部でインスタンス変数、メソッ ド定義に使われているデータ構造 をセグメントリストに置き換える (PyMiteのパクリ) – 遅い、けど小さくなる
12.
対策 ●
parserとcodegenを捨てる – VM+ライブラリのみ – あらかじめバイトコードコンパイ ルしたRubyスクリプトを実行 – evalとかダメゼッタイ
13.
対策 ●
初期化時のメモリ確保をケチる – 足りなくなったら後で確保するら しい – ついでにシンボルの上限も300 個にする(あふれたら終了)
14.
対策 ●
Ruby標準クラスを捨てる – 試してみたけどいろいろ不具合が 起きやすいのでだいたい戻した – Hash、Range、Struct、Ti me、Math、Regexpがない (Struct、Time、Math、Re gexpはマクロでオフにする設定 がある)
15.
実装 ●
コードはGitHubに上がってます https://github.com/yurie/mruby/tree/lessmemory – コミットログが日本語ですみませ ん…
16.
実行方法 # Macなど $ make #
FM3用 (Yagarto GNU ARM toolchain用) $ make -f Makefile.fm3
17.
続きは札幌で! ※選考には落ちたので これからLT応募書きます…
Download