That's Done!

thatsdone's (mostly technical) memorandum

[ja] Hello Zephyr


今年('25)の5月くらいまでさかのぼりますが、RTOSのZephyrをさわりはじめました。

しばらく前から趣味で作っているCPU負荷発生器で 新言語のネタがなくなってきたのと、 やんごとなき事情(?)で関わっているAGLの議論の中で興味を持ったのがきっかけです。

CPU負荷発生器(mpmt)のZephyr版を作ってみる

まず、とりあえずはCPU負荷発生器のmpmtのZephyr版を作ってみました。

README.mdはこんな感じです。 x86_64とarm64のそれぞれやってみました。

kernel threadを使って、指定したcore数を使い切っているなというところまで確認できて、 いったん満足してしまいました(苦笑)

CAN通信してみる

CPU負荷発生器を作ってみたあと、しばらく別件で忙しくなってお休みしていたのですが、 AGL方面でZephyrが動くマイコンでCAN通信できることを確認しておこうという話があり、担当することにしました。

お題は、コロナがはじまったころに出来心で買ったまま放置していたEspressifのESP32を使っています。

中間成果を先日('25/10/20)大阪で開催されたZephyr Project Meetup: Japan, Osakaというイベントで話してきました。 イベントがこれで、 話した小ネタがこれです。

ESP32とRaspberry Pi Zero W、 およびRenesas R-Car Sparrow Hawkの2種類のSBCと、 対向でCAN通信できるところまで確認しています。

今後

上記の小ネタ発表資料にも書きましたが、以下のようなことを考えています。

  • AGL付属のCAN負荷発生機の移植
  • Zephyr virtio-can driver (FE/BE)開発のお手伝い
  • UDSライブラリの開発

そのほか、ESP32はIoTマイコンとしては比較的ポピュラーな位置づけかなと思うのですが、 クラウドというかデータセンタ用のサーバでの開発とくらべていろいろ違いがあるな… という気付きがあったのでぼちぼちまとめていきたいと思います。