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.
 
 
 
Jiajie Chen 4cbc967415
Fix libnosys linkage and remove unneeded fstat & sbrk
9 months ago
BSP Fix libnosys linkage and remove unneeded fstat & sbrk 9 months ago
include Fixed memory usage report, check TXE instead of TC. 10 months ago
src Fix libnosys linkage and remove unneeded fstat & sbrk 9 months ago
.gitignore Added README.md and .gitignore. 10 months ago
CMakeLists.txt Fix libnosys linkage and remove unneeded fstat & sbrk 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
program.cfg Fix libnosys linkage and remove unneeded fstat & sbrk 9 months ago
riscv64-elf.cmake Initial commit with WCH drivers. 10 months ago
riscv64-unknown-elf.cmake Fix libnosys linkage and remove unneeded fstat & sbrk 9 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