ch32funとminichlinkはCH32V003を専用IDEなしで扱う最小スタックを作った
CH32を理解するためのノート群 と CH32の開発環境はMounRiverだけではなくGCC・ch32fun・Zephyr・Rustまで広がっている の補足。
事実
ch32funはCH32V003を中心にした軽量なオープンソース開発環境で、GCC、最小限のruntime、ヘッダ、example、書き込みツールをまとめて提供する。
プロジェクトは「厚いHALを避け、TRMに近い使い方をする」ことを明示している。
現在はV003だけでなく、V002/V004/V005/V006/V007、V103、V203、V208、V303/V305/V307、X035なども扱う。
同梱されるminichlinkはWCH-LinkEだけでなく、
- CH32V003ベースのSWIO programmer
- ESP32-S2ベースprogrammer
- STM32F042ベースprogrammer
- Arduino系interface
- USB ISP bootloader
など複数backendに対応する。
さらにGDB serverとsingle-wire printfも持つ。
考察
ch32funが面白いのは「WCH SDKの代替HAL」だからではない。
コンパイラ、最小runtime、flash tool、debug pathまで一式を軽量に揃え、CH32を普通のMakefileベース組込み開発へ戻した点が大きい。
V003のようにFlash/RAMが非常に小さいMCUでは、抽象化の厚さそのものがコストになる。ch32funの設計思想はチップの価格帯とよく噛み合っている。
minichlinkが複数programmerを抽象化していることも重要で、WCH-LinkEを必須にせず、実験用・量産治具用に別backendへ差し替えられる。
向くケース
- V003/V00xを小さいCコードで扱いたい
- CIでMounRiverを使いたくない
- Makefile/CLI中心で開発したい
- 独自書き込み器を使いたい
- GDBやprintf-over-SWIOを使いたい