タラバガニー設計局stalins.clubNOTE/notes/ch32-zephyr-rust

CH32でZephyrとRust/Embassyが使えるようになりつつあるが成熟度は系列ごとに違う

CH32の開発環境はMounRiverだけではなくGCC・ch32fun・Zephyr・Rustまで広がっている のRTOS/Rust部分。

事実

Zephyr本体にはWCH/CH32向けboard supportが入り、V003だけでなくV006、V2/V3系、H417系まで対象が広がっている。

一方Rustではch32-rs/ch32-halが、複数CH32系列を一つのHALで扱う方向で開発されている。

ch32-halは、

  • embedded-hal
  • Embassy
  • async/await
  • DMA
  • defmt

などの組込みRust ecosystemと統合する。

ただしプロジェクト自身が「experiment/testingには使えるがproductionで完全にstableとは限らない」と明記している。

考察

CH32でZephyrやEmbassyを使える意味は、GPIO APIが便利になることだけではない。

USB、network stack、async task、driver modelなどを自前で積み上げず、既存ecosystemを利用できる。

特にV203/V307/H417のように通信機能が多いMCUほど、middlewareの価値が大きくなる。

一方V003/V006のような小型MCUでは、RTOS/HALの固定コストが相対的に大きくなる。

そのため、

  • V003級: ch32fun/bare metal
  • 通信が多い上位MCU: Zephyr
  • Rust/asyncを積極利用: ch32-hal + Embassy

のように用途で分けるのが自然である。

注意点

「board supportがある」と「全peripheralがproduction quality」は別である。

新しい型番ほど、clock、DMA、USB、特殊analog peripheralなどのdriver completenessを個別に確認する必要がある。

出典

▸ ノート一覧に戻る