CH32の書き込みとデバッグはSWIO・ISP・minichlink・probe-rsを分けて考える
CH32を理解するためのノート群 の書き込み・デバッグ経路。
事実
CH32では「コンパイル環境」と「書き込み経路」と「デバッガ」は独立して組み合わせられる。
代表的な経路は次の通り。
WCH-LinkE + SWIO/SWD
V003などではSWIOを使い、WCH-LinkEからFlash書き込みやデバッグを行える。
上位系列では2-wire debug interfaceを持つものもある。
minichlink
ch32funに含まれるminichlinkはWCH-LinkEを扱えるだけでなく、
- V003ベースSWIO programmer
- ESP32-S2系programmer
- STM32F042系programmer
- Arduino系interface
- USB ISP bootloader
など複数backendを持つ。
GDB serverとsingle-wire debug printfも提供する。
wchisp
wchispはWCH MCUのISP bootloaderを利用するCLI。
USB peripheralを持つWCH MCUではUSB ISPを利用できるものがある。
V00xはUSB ISPを持たず、UART ISPを使う。
probe-rs
2026年のprobe-rs 0.32.0ではCH32 target定義が大幅に増え、WCH-Linkからchip自動判別する機能も入った。
考察
「CH32を使うにはMounRiverが必要」という理解は、ビルド・書き込み・デバッグを一つの製品として考えてしまうことで生まれやすい。
実際には、
GCC + ch32fun + minichlink
Rust + ch32-hal + probe-rs
Zephyr + minichlink
といった組み合わせが可能である。
これはCH32をCIやheadless buildへ組み込みやすくする。
一方、option byteやRAM/Flash splitのようなWCH固有設定を誤ると、一般的なdebuggerだけでは原因が分かりにくい場合がある。
「標準ツールを使える」と「チップ固有知識が不要」は別である。
V003の場合
V003は特に経路が多い。
- WCH-LinkE + SWIO
- factory UART ISP
- USBを持たないCH32V003をUSBで書き込むrv003usb bootloader
- V003自身をprogrammerにするrvswdio_programmer
この多様さ自体がV003コミュニティの特徴になっている。