70 lines
1.4 KiB
Markdown
70 lines
1.4 KiB
Markdown
# 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.
|
|
|