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

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は特に経路が多い。

  1. WCH-LinkE + SWIO
  2. factory UART ISP
  3. USBを持たないCH32V003をUSBで書き込むrv003usb bootloader
  4. V003自身をprogrammerにするrvswdio_programmer

この多様さ自体がV003コミュニティの特徴になっている。

出典

▸ ノート一覧に戻る