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.
 
 
 
imi415 4ce56e6ee9
Multiple updates, see freertos demo.
9 months ago
BSP Multiple updates, see freertos demo. 9 months ago
include Multiple updates, see freertos demo. 9 months ago
src Multiple updates, see freertos demo. 9 months ago
.gitignore Added README.md and .gitignore. 10 months ago
CMakeLists.txt Compiler warning fixes, syscall implementation changed. 9 months ago
LICENSE Multiple tidying and warnings fixed, added LICENSE 10 months ago
LICENSE.wch Multiple tidying and warnings fixed, added LICENSE 10 months ago
README.md Updated README. 10 months ago
riscv64-elf.cmake Initial commit with WCH drivers. 10 months ago

README.md

Template for WCH CH32V30x series MCU

How to use

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

Sample usage

mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=riscv64-elf.cmake ..
make -j${nprocs}

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