CH32V003のNRST(リセット)ピンはデフォルトでPD7に割り当てられているため、そのままではGPIOとして使用することができません。
WCH-LinkUtilityを使って設定を変更できるのですが、やり方をいつも忘れてしまうので備忘録として残しておきます。

フラッシュの内容をすべて削除する
まずはチップ内のフラッシュメモリを消去します。
「Target」タブを選択し、「Clear All Code Flash-By Poweroff」をクリックします。
NRSTピンの無効化、スタンバイモードでのリセットの無効化
NRSTピン機能の無効化や、スタンバイモードでのリセットの無効化は、何かしらのファームウェアの書き込みと同時に行わないと設定が反映されない仕様のようです。そのため、以下の手順で一気に設定と書き込みを行います。
「File」メニューから「Open Firmware」をクリックして、目的のHEXファイルを選択する。
MCU Coreで「RISC-V」内の「CH32V00X」を選択する。
「EraseAll」と「Program」にチェックを入れる(「Verify」と「Reset and Run」のチェックは任意でOKです)。
「Disable Standby-Mode Rst」と「Enable Soft-Ctrl IWDG」にチェックを入れる。
「Disable mul-func, PD7 is used for IO function」を選択する。
画面上の青色四角で囲ったアイコン「ChipInfo」をクリックする。
最後に、オレンジ色四角で囲ったアイコン「ExecuteCheckedOperation」をクリックして実行する。
これで、無事にPD7ピンをGPIOとして扱えるようになります。
