verylowfreq が 2025年01月06日19時18分23秒 に編集
初版
タイトルの変更
WCH CH32VをArduino IDEでデバッグする
タグの変更
Arduino
RISC-V
CH32V
CH32V203
メイン画像の変更
記事種類の変更
セットアップや使用方法
本文の変更
RISC-Vマイコン WCH CH32V203 をArduino IDEでデバッグする方法を紹介します。本記事では CH32Vマイコンボード Suzuno32RV を利用します。 WCH CH32Vシリーズは、CPUに32bit RISC-V、ペリフェラルはSTM32という組み合わせの、安価でパワフルなマイコンチップです。CH32V003, CH32V203, CH32V305 などは日本国内でも秋月電子で購入できます。 https://www.wch-ic.com/products/CH32V203.html “Suzuno32RV”は、RISC-VマイコンWCH CH32Vシリーズの CH32V203C8T6 を搭載した、Arduino UNO形状のマイコンボードです。わたしが開発し、BitTradeOneより発売されています。 - BitTradeOne公式オンラインショップ → https://btoshop.jp/products/adsz32rv - Amazon(jp) → https://www.amazon.co.jp/dp/B0DHGDCBV5/ CH32VにはWCH自身によりopenocdが移植されていて、これをArduino IDEから呼び出すことでGUIからブレイクポイントを設定したり変数の値を確認したりできます。 (本記事は2025年1月時点の情報です) ## コアのインストール Suzuno32RV向けに整備しているArduinoコア(わたしの独自フォーク)をインストールしてください。本記事執筆時点では “1.0.4+sz8” が最新です。 以下のURLを「基本設定」→「追加のボードマネージャのURL」へ追加してください。 https://raw.githubusercontent.com/verylowfreq/board_manager_ch32/main/package_ch32v_index_sz.json なお本家では、最新のコードにはこのデバッガー対応が含まれていますが、正式リリース(openwchでリリースしているv1.0.4)には含まれていないようです。 ## WCH LinkEケーブルでボードと接続する デバッグ機能には**公式デバッガーWCH LinkEでの接続が必須です**。(Suzuno32RVボードからType-Cコネクタ経由でのUSB接続ではできません) Suzuno32RVではWCH LinkEが接続できるピンヘッダーのパターンを用意していますので、ここにL字の10ピンのものをはんだづけしてください。 (※シールド基板によってはピンヘッダーが物理的に干渉するかもしれないのでご注意を!)  わたしは10ピンのリボンケーブルでWCH LinkEとつないでいます。(差し込み方向に気をつけてくださいね)  ## Arduino IDEでビルドオプションを変更する 1つだけビルドオプションを変更してください。ツールから、 ”**Debug symbols and core logs**” を “**Symbols Enabled (-g)**” に変更してください。 これでデバッグシンボルが埋め込まれたファームウェアがビルドされるようになります。これを忘れるとブレイクポイントが設定できません。 ## ビルド & アップロード 普段通りアップロードします。ファームウェアのアップロード方法はWCH-SWD(LinkE)でもWCH-ISP(USB書き込み)でもどちらでも問題ありません。 ## デバッグの開始 デバッグシンボルを有効にしたファームウェアをアップロードしたら、「アップロード」ボタンの右にある「**デバッグを開始**」を押すと、デバッガーが起動し、デバッグできるようになります。 デバッグでは、処理を一時停止したい行に「ブレイクポイント」を設定できます。行番号の左をクリックすると、丸いマークを打つことができます。(再度クリックで設定解除) デバッグ中は、ブレイクポイントの設定された行に到達すると処理が一時停止します。「続行 (C)」を押すと処理が再開され、次のブレイクポイントまで進みます。 