# CH32v003 Cmake + CppUTest Template ## Goal Be a flexable template repo for working with ch32v003 controllers while aslo inegrating TDD scripts using Cmake. ## Requirements - CMake - Sh, Bash or compatible shell - Make/GMake/BSDMake/etc - clang/gcc - clangd - CppUTest(for unit tests) - NewLIB/newlib-nano ## Installing toolchain **FreeBSD:** ```sh sudo pkg install gawk gsed git clone https://github.com/riscv-collab/riscv-gnu-toolchain.git cd ./riscv-gnu-toolchain git submodule update --init --recursive mkdir ./build && cd ./build # Create needed dir for the output. mkdir /usr/local/riscv && chmod -R 0775 /usr/local/riscv # Setup to build newlib for 32bit embedded and compressed cpus. ./configure --prefix=/usr/local/riscv --with-arch=rv32ec \ --with-arch=rv32ec \ --with-abi=ilp32e \ --with-multilib make -j4 newlib # Some Example options below. make -j4 build-gcc1 make -j4 build-gcc2 make -j4 build-gdb make -j4 build-libc make -j4 build-llvm make -j4 build-uclibc make -j4 build-binutils ``` **Linux:** Pretty much the same as FreeBSD, just follow the toolchain's `README.md` files instructions. ## TODO - [ ] Add NewLib finding/functionality - [ ] Add NewLib-nano finding/functionality - [X] Add ch32v003fun sources. - [X] Add example blinky default main. - [ ] Add useful test examples. - [ ] Add useful mock examples. - [ ] Get Blinky to run on hardware.