You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
surenyi e73cbfe008 usbd working 1 year ago
ch32v307 usbd working 1 year ago
docs add docs/ 1 year ago
include usbd working 1 year ago
lib usbd working 1 year ago
src usbd working 1 year ago
.clangd usbd working 1 year ago
.gitignore usbd working 1 year ago
CMakeLists.txt usbd working 1 year ago
README.md usbd working 1 year ago
riscv-collab.cmake usbd working 1 year ago
xpack-riscv.cmake usbd working 1 year ago

README.md

FreeRTOS demo for WCH CH32V30x series MCU

How to use

  • Write your own CMake toolchain file (see xpack-riscv.cmake for example)
  • Configure project and build as usual. (see below for a simple test)

Sample usage

build project

cmake -S . -B build -G Ninja
cmake --build build

flash binary

Enter the isp mode: press reset and boot0 key at the same time. Release reset key then boot0 key.

cmake --build build -t flash

Notes

Startup files

There are two versions of startup assembly files, located at

  • BSP/Startup/startup_ch32v30x_D8.S
  • BSP/Startup/startup_ch32v30x_D8C.S

The first file is used for CH32V303 devices, which lacks of the following peripherals:

  • Ethernet
  • CAN2
  • USBHS
  • DVP

*** Change the startup file to the correct version for the hardware in use. ***

Compilers

These MCUs uses something called "RISC-V4F" core with Chinese documentation provided:

  • Implemented RV32IMAFC ABI

Here is the list of features proprietary or incompatible with upstream toolchain:

  • Fast IRQ handlers: uses a special attribute of interrupt, which value is WCH-Interrupt-fast

References