mruby/cとマイコン依存のコードの分離


様々なマイコンで簡単にmruby/cを使えるようにするために、mruby/c依存の部分とマイコン依存の部分を分離するという方法を考えて、2026/10/18のブログで紹介した。 その主な部分が出来てきたのでそのことについて説明したい。

mruby/c依存の部分は、いくつかのマイコン用に以前書いたコードの共通の部分を取り出したら、比較的簡単に作ることができた。 また、これまでArduinoとch32funとgd32vf103用にmruby/c環境を作って来たが、それらからマイコン依存の部分を取り出すこともそれほど難しくは無かった。 新しく作った環境でも、コンパイルはできることと、サイズがそれほど変らないことは確認できた。 まだ動作確認はあまりできていないが、私のホームページのマイコンのところに公開することにした。

ファイルの数が多くならないように、すべてヘッダファイルのみで構成することにした。 mruby/c依存の部分は合計で20kバイト程度になった。 一方でマイコン依存の部分は10kから15kバイト程度で、Arduino用は6k弱になった。 バイト数だけでは判断できないが、一つのマイコン用に作らなければならないコードの合計が、30k強から10k強になり、開発が楽になると考えられる。 ちなみに、今回新しく公開したLongan Nanoについては、カラー液晶を利用して、エスケープシークエンスで文字の色を変えられるようにした。

deep sleepなども、このやり方で組み込もうかな。