0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

以前の記事「CH32V203 ボード BluePill+ を試す(途中)」
https://qiita.com/nanbuwks/items/90863c599e90fe8d877c

において、 MounRiver Studio をセットアップしました。その時は 1.9を利用しサンプルプログラムをビルドしたところで断念してしまいました。その後 MounRiver はバージョン2.4となり、どうなっているのかな? 改めて試してみました。

環境

  • Ubuntu 24.04 LTS
  • WeAct Studio CH32V203C8T6 BluePill+

MounRiver Studio IDE のセットアップ

2026年6月4日現在、公式ページは接続できたりできなかったり。

だましだまし https://mounriver.com/download にアクセス。

ダウンロード

Linux をクリック。
image.png

今回は .deb (x64) 形式をダウンロードしました。

インストール

$ sudo dpkg -i MounRiverStudio_Linux_X64_V240.deb 

3.5Gぐらいストレージを使うので注意。

ツールチェイン

今回は使いませんでしたが、念の為セットアップしておきます。同ページから MRS_Toolchain_Linux_X64_V240.tar.xz をダウンロードし、解凍します。 解凍後のサイズは 2.7G でした。 こんな構成でした。

$ du --max-depth=3 -h MRS_Toolchain_Linux_X64_V240
20K	MRS_Toolchain_Linux_X64_V240/Toolchain/arm-none-eabi-gcc/include
39M	MRS_Toolchain_Linux_X64_V240/Toolchain/arm-none-eabi-gcc/bin
326M	MRS_Toolchain_Linux_X64_V240/Toolchain/arm-none-eabi-gcc/arm-none-eabi
15M	MRS_Toolchain_Linux_X64_V240/Toolchain/arm-none-eabi-gcc/share
114M	MRS_Toolchain_Linux_X64_V240/Toolchain/arm-none-eabi-gcc/lib
493M	MRS_Toolchain_Linux_X64_V240/Toolchain/arm-none-eabi-gcc
20K	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/include
61M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/libexec
33M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/bin
29M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/share
1.7M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/distro-info
34M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/lib
306M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/riscv-none-embed
2.1M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC/lib64
464M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC
20K	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/include
112M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/libexec
64M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/bin
17M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/share
4.4M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/distro-info
110M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/lib
644M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/riscv-wch-elf
128K	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12/lib64
950M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC12
52K	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15/include
191M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15/libexec
112M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15/bin
19M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15/share
340M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15/riscv32-wch-elf
129M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15/lib
788M	MRS_Toolchain_Linux_X64_V240/Toolchain/RISC-V Embedded GCC15
2.7G	MRS_Toolchain_Linux_X64_V240/Toolchain
5.1M	MRS_Toolchain_Linux_X64_V240/OpenOCD/OpenOCD/bin
4.4M	MRS_Toolchain_Linux_X64_V240/OpenOCD/OpenOCD/share
9.5M	MRS_Toolchain_Linux_X64_V240/OpenOCD/OpenOCD
9.5M	MRS_Toolchain_Linux_X64_V240/OpenOCD
2.7G	MRS_Toolchain_Linux_X64_V240

起動

image.png

起動直後の画面
image.png
V1.9とだいぶ印象が違いますね。Ecripse ベースから VSCode ベースに変わったそうです。

MS-Windows版との比較

MS-Windows ではこのような画面が出てきましたが、Linux版では出てきませんでした。先のMRS_Toolchain_Linux_X64_V240.tar.xz に OpenOCD が被ってますがそれ以外は違うようですね。

image.png

サンプルプログラムとビルド

サンプルプログラムとして、 WeActStudio で公開されているレポジトリを用いることにします。

$ git clone https://github.com/WeActStudio/WeActStudio.BluePill-Plus-CH32.git

としたあと、MounRiver から WeActStudio.BluePill-Plus-CH32/Examples/CH32V203/02-flash_test/02-flash_test.wvproj を「File」-「Open Project」で開きます。
image.png
User/main.c を開くとこのように Blink ぽいソースが確認できます。

「Project」-「Build Project」すると、無事 elf ができたようです。
image.png

書き込みはNG

Project-Propaties を開き、Download Settings を開きます。

image.png

BluePill+ を Boot0 モードにして接続しておきます。

しかしながら Linked MCU Type: の Query ボタンを押してみたけれどもここで進まなくなります。

image.png

調査

Windows用をインストールして同様に動かしてみました。

image.png
image.png

どうやら WCH-Linkを取り付けるのが必要なようです。CH32V203 の USB接続で書き込みをしようと思っていたのですが、 MounRiver はそれを想定していないのかな?

WCHISP

書き込みは CH32V203 の USB インターフェースから行うために、 WCHISP を別に用意することにしました。

を読んで、準備を以下のようにしておきます。

$ sudo apt install libusb-1.0-0-dev

udev の設定をしておきます。

$ sudo vim /etc/udev/rules.d/50-wchisp.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="4348", ATTRS{idProduct}=="55e0", MODE="0666"

cargo 経由のインストールはNG

$ sudo apt install cargo

として、以下のようにインストールしようとしましたがディストリビューションパッケージの cargo ではうまくいかないようです。

$ cargo install wchisp --git https://github.com/ch32-rs/wchisp
    Updating git repository `https://github.com/ch32-rs/wchisp`
error: failed to parse manifest at `/home/owner/.cargo/git/checkouts/wchisp-052209e38cd65ae2/cefd870/Cargo.toml`

Caused by:
  feature `edition2024` is required

  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.75.0).
  Consider trying a more recent nightly release.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.

バイナリをダウンロード

ビルド済みバイナリがナイトリーリリースとして用意されています。
以下から wchisp-linux-x64.tar.gz をダウンロードします。
https://github.com/ch32-rs/wchisp/releases/tag/nightly

解凍後、

$ cd wchisp-linux-x64/
$ chmod +x wchisp

動作確認

$ ./wchisp probe
08:25:15 [INFO] Found 1 USB device
08:25:15 [INFO] Opening USB device #0
08:25:15 [INFO] 	Device #0: CH32V203C8T6[0x3119]
08:25:15 [INFO] hint: use `wchisp info` to check chip info

認識しているようですね。しかしながら

$ ./wchisp info
08:25:24 [INFO] Opening USB device #0
Error: Operation timed out
$ ./wchisp config
08:25:44 [INFO] Opening USB device #0
Error: Operation timed out

あれれーと思って接続し直しました。

$ ./wchisp info
08:27:32 [INFO] Opening USB device #0
08:27:32 [INFO] Chip: CH32V203C8T6[0x3119] (Code Flash: 64KiB)
08:27:32 [INFO] Chip UID: CD-AB-B2-61-0E-BC-8D-C9
08:27:32 [INFO] BTVER(bootloader ver): 02.70
08:27:32 [INFO] Code Flash protected: false
08:27:32 [INFO] Current config registers: a55aff0000ff00ffffffffff00020700cdabb2610ebc8dc9
RDPR_USER: 0x00FF5AA5
  [7:0]   RDPR 0xA5 (0b10100101)
    `- Unprotected
  [16:16] IWDG_SW 0x1 (0b1)
    `- IWDG enabled by the software, and disabled by hardware
  [17:17] STOP_RST 0x1 (0b1)
    `- Disable
  [18:18] STANDBY_RST 0x1 (0b1)
    `- Disable, entering standby-mode without RST
  [23:22] SRAM_CODE_MODE 0x3 (0b11)
    `- CODE-228KB + RAM-32KB / CODE-160KB + RAM-32KB depending on the chip
DATA: 0xFF00FF00
  [7:0]   DATA0 0x0 (0b0)
  [23:16] DATA1 0x0 (0b0)
WRP: 0xFFFFFFFF
  `- Unprotected
179

Boot0モードは時間切れがあるようです。

インストール

動作に問題がないのでインストールします。

$ sudo cp wchisp /usr/local/bin

サンプルプログラムの実行

書き込みます。

$ wchisp flash 02-flash_test.elf
08:31:17 [INFO] Opening USB device #0
08:31:17 [INFO] Chip: CH32V203C8T6[0x3119] (Code Flash: 64KiB)
08:31:17 [INFO] Chip UID: CD-AB-B2-61-0E-BC-8D-C9
08:31:17 [INFO] BTVER(bootloader ver): 02.70
08:31:17 [INFO] Code Flash protected: false
08:31:17 [INFO] Current config registers: a55aff0000ff00ffffffffff00020700cdabb2610ebc8dc9
RDPR_USER: 0x00FF5AA5
  [7:0]   RDPR 0xA5 (0b10100101)
    `- Unprotected
  [16:16] IWDG_SW 0x1 (0b1)
    `- IWDG enabled by the software, and disabled by hardware
  [17:17] STOP_RST 0x1 (0b1)
    `- Disable
  [18:18] STANDBY_RST 0x1 (0b1)
    `- Disable, entering standby-mode without RST
  [23:22] SRAM_CODE_MODE 0x3 (0b11)
    `- CODE-228KB + RAM-32KB / CODE-160KB + RAM-32KB depending on the chip
DATA: 0xFF00FF00
  [7:0]   DATA0 0x0 (0b0)
  [23:16] DATA1 0x0 (0b0)
WRP: 0xFFFFFFFF
  `- Unprotected
08:31:17 [INFO] Read 02-flash_test.elf as ELF format
08:31:17 [INFO] Found loadable segment, physical address: 0x00000000, virtual address: 0x00000000, flags: 0x5
08:31:17 [INFO] Section names: [".init", ".vector", ".text"]
08:31:17 [INFO] Found loadable segment, physical address: 0x0000231c, virtual address: 0x20000000, flags: 0x6
08:31:17 [INFO] Section names: [".data"]
08:31:17 [INFO] Firmware size: 9216
08:31:17 [INFO] Erasing...
08:31:17 [INFO] Erased 10 code flash sectors
08:31:18 [INFO] Erase done
08:31:18 [INFO] Writing to code flash...
██████████████████████████████████████████████████████████████████████ 9216/921608:31:18 [INFO] Code flash 9216 bytes written
08:31:18 [INFO] Verifying...
██████████████████████████████████████████████████████████████████████ 9216/921608:31:19 [INFO] Verify OK
08:31:19 [INFO] Now reset device and skip any communication errors
08:31:19 [INFO] Device reset

このあと、リセットします。動作開始まで15秒ほど待つとLEDが点滅しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?