Embedded Rust device crates for WCH's RISC-V and Cortex-M(planned) microcontrollers.
Note This project is not affiliated with WCH. This is a hobby project.
The ch32-rs team also working on a unified "metapac" solution for all WCH's MCUs, using metadata to generate an "all-in-one" PAC crate. It's still in early stage, but you can check it out at ch32-rs/ch32-data and ch32-rs/ch32-metapac.
The original SVD files were distributed with MounRiver IDE without explicit license information. These files have been extensively modified and corrected for use in this project. If you believe this project violates any licensing terms or if you have any concerns, please contact the project maintainers immediately.
If you are planing to use these SVD files in another product, please contact WCH for license information.
To handle the license issue, ch32-data is created. The data in ch32-data has been manually created and curated, referencing the original SVD files and official datasheets but incorporating significant modifications and corrections. And, the most important, ch32-data is released under the MIT license.
- ch58x-hal - embassy, gpio, spi, i2c, ble
- ch32x0-hal - embassy, gpio
- ch59x-hal - early stage, ch58x-hal can be used with very minor changes
- ch57x-hal - planning, ch58x-hal can be used with very minor changes
- ch32v00x-hal - early stage, requires nightly rust for RV32EC support
- ch32-hal - wip unified hal for all WCH's MCUs
- qingke, qingke-rt
- wchble - planning
- Toolchains for Flashing and Debugging
- wchisp for USB-ISP
- wlink for WCH-Link probe
- probe-rs support
- CH32V003 support
- CH32V307 support, should work with CH32V20x too
- flash-algorithms
- Support other families
- HAL crates
- Support CH32V3x/CH32V2x family
- Support CH32V103 family
- Support CH32V003 family, ch32v00x-hal
- Cortex-M MCUs.
# Do not use rust version of svdtools
pip install svdtools
# install xmlint
cargo install svd2rust
./scripts/generate.sh && ./scripts/update.sh
- 32-bit General Purpose RISC-V
- 32-bit General Purpose Cortex-M3
- 32-bit High-speed Interface MCU, RISC-V or Unmentioned
- 32-bit BLE MCU, RISC-V or Coretex-M
NOTE: Will never support 8-bit MCUs.
Nick name: "赤菟"(Chitu). IP Core brand: 青稞(Qingke). V2A, V3A, V4A, V4B, V4C, V4F.
- CH32V003: Qingke-V2A
- CH32V103: Qingke-V3A
- CH32V203: Qingke-V4B
- CH32V208: Qingke-V4C, BLE
- CH32V30x: Qingke-V4F
- CH32L103 Qingke-V4C, Low power
- CH32X03x: Qingke-V4C, USB PD, PIOC
- CH56x: Qingke-V3A, USB 3.0 SS
- CH571, CH573: Qingke-V3A, BLE 4.2
- CH58x: Qingke-V4A, BLE 5.3
- CH59x: Qingke-V4C, BLE 5.4
- CH641: Qingke-V2A, USB PD
- CH643: Qingke-V4C RGB/LED/PWM, PIOC, USB PD
- CH645: Qingke-V4C, USB PD + USB HS
CH32F uses Cortex-M3. CH577/CH578/CH579 uses Cortex-M0.
- CH32F103
- CH32F203
- CH32F205
- CH32F207
- CH32F208, BLE 5.3
- CH577/CH578/CH579, BLE 4.2
- MRS: MounRiver Studio
- Precompiled binary of OpenOCD is included in MRS(Windows, Linux, and macOS)
- WCH-LinkUtility is included in MRS
- WCHISPTool is included in MRS
- Official Flash Tool: NanjingQinheng/WCH-Link
- OpenOCD fork with WCH-Link support(wlink)
- Buggy, compatible with WCH-Link 2.3
- ch32-rs/wchisp
- ch32-rs/wlink