From d71a0500c2145f920a345081392367e387298030 Mon Sep 17 00:00:00 2001
From: cnlohr <lohr85@gmail.com>
Date: Mon, 17 Apr 2023 01:21:05 -0400
Subject: [PATCH] Move all makefiles from examples into using the common
 makefile.

---
 ch32v003fun/ch32v003fun.mk             |   6 +--
 examples/GPIO/Makefile                 |  44 +++------------------
 examples/GPIO_analogRead/Makefile      |  44 +++------------------
 examples/MCOtest/Makefile              |  51 +++----------------------
 examples/adc_dma_opamp/Makefile        |  40 ++-----------------
 examples/adc_dma_opamp/adc_dma_opamp.c |   4 +-
 examples/adc_polled/Makefile           |  40 ++-----------------
 examples/blink/Makefile                |  42 ++------------------
 examples/blink/blink.bin               | Bin 520 -> 548 bytes
 examples/bootload/Makefile             |  43 ++-------------------
 examples/debugprintfdemo/Makefile      |  46 ++--------------------
 examples/external_crystal/Makefile     |  43 ++-------------------
 examples/i2c_oled/Makefile             |  41 ++------------------
 examples/optionbytes/Makefile          |  47 +++--------------------
 examples/run_from_ram/Makefile         |  43 +++------------------
 examples/sandbox/Makefile              |  45 ++--------------------
 examples/self_modify_code/Makefile     |  46 ++--------------------
 examples/spi_dac/Makefile              |  48 ++---------------------
 examples/systick_irq/Makefile          |  41 ++------------------
 examples/systick_irq_millis/Makefile   |  41 +++-----------------
 examples/tim1_pwm/Makefile             |  41 +++-----------------
 examples/uartdemo/Makefile             |  41 +++-----------------
 examples/ws2812bdemo/Makefile          |  43 +++------------------
 23 files changed, 96 insertions(+), 784 deletions(-)

diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index 9cadeaa..6803839 100644
--- a/ch32v003fun/ch32v003fun.mk
+++ b/ch32v003fun/ch32v003fun.mk
@@ -4,7 +4,7 @@ PREFIX:=riscv64-unknown-elf
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
-CFLAGS:= \
+CFLAGS+= \
 	-g -Os -flto -ffunction-sections \
 	-static-libgcc \
 	-march=rv32ec \
@@ -14,11 +14,11 @@ CFLAGS:= \
 	-nostdlib \
 	-I. -Wall
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+LDFLAGS+=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
 
 SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
 
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
+$(TARGET).elf : $(SYSTEM_C) $(TARGET).c $(ADDITIONAL_C_FILES)
 	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
 
 $(TARGET).bin : $(TARGET).elf
diff --git a/examples/GPIO/Makefile b/examples/GPIO/Makefile
index 15a92ee..c7ee56a 100644
--- a/examples/GPIO/Makefile
+++ b/examples/GPIO/Makefile
@@ -1,43 +1,11 @@
 TARGET:=GPIO
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DTINYVECTOR -Wall
+CFLAGS+=-DTINYVECTOR
+ADDITIONAL_C_FILES+=wiring.c
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c wiring.c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/GPIO_analogRead/Makefile b/examples/GPIO_analogRead/Makefile
index c655dc1..ff995e6 100644
--- a/examples/GPIO_analogRead/Makefile
+++ b/examples/GPIO_analogRead/Makefile
@@ -1,43 +1,11 @@
 TARGET:=GPIO_analogRead
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DTINYVECTOR -Wall
+CFLAGS+=-DTINYVECTOR
+ADDITIONAL_C_FILES+=wiring.c
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c wiring.c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/MCOtest/Makefile b/examples/MCOtest/Makefile
index 2625e61..2cdcdbf 100644
--- a/examples/MCOtest/Makefile
+++ b/examples/MCOtest/Makefile
@@ -1,51 +1,10 @@
 TARGET:=MCOtest
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-
-ifeq ($(OS),Windows_NT)
-# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
-LIB_GCC=../../misc/libgcc.a
-else
-LIB_GCC=-lgcc
-endif
-
-CH32V003FUN:=../../ch32v003fun
+CFLAGS+=-DTINYVECTOR -DSTDOUT_UART
 
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc $(LIB_GCC) \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -DTINYVECTOR -Wall
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/adc_dma_opamp/Makefile b/examples/adc_dma_opamp/Makefile
index ac00c74..acbb935 100644
--- a/examples/adc_dma_opamp/Makefile
+++ b/examples/adc_dma_opamp/Makefile
@@ -1,41 +1,9 @@
 TARGET:=adc_dma_opamp
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
+all : flash
+flash : cv_flash
+clean : cv_clean
 
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
 
diff --git a/examples/adc_dma_opamp/adc_dma_opamp.c b/examples/adc_dma_opamp/adc_dma_opamp.c
index 0e7889c..cb3d6a3 100644
--- a/examples/adc_dma_opamp/adc_dma_opamp.c
+++ b/examples/adc_dma_opamp/adc_dma_opamp.c
@@ -51,9 +51,9 @@ int main()
 	printf("looping...\n\r");
 	while(1)
 	{
-		GPIOC->BSHR = (1<<1);	 // Turn on GPIOs
+		GPIOC->BSHR = 1<<1;	 // Turn on GPIOs
 		Delay_Ms( 100 );
-		GPIOC->BSHR = (1<<1+16); // Turn off GPIODs
+		GPIOC->BSHR = 1<<(1+16); // Turn off GPIODs
 		Delay_Ms( 100 );
 		printf( "%4d %4d ", adc_buffer[0], adc_buffer[1]);
 		printf( "%4d %4d\n\r", adc_buffer[2], adc_buffer[3]);
diff --git a/examples/adc_polled/Makefile b/examples/adc_polled/Makefile
index ae735e6..0a4ea74 100644
--- a/examples/adc_polled/Makefile
+++ b/examples/adc_polled/Makefile
@@ -1,41 +1,9 @@
 TARGET:=adc_polled
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
+all : flash
+flash : cv_flash
+clean : cv_clean
 
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
 
diff --git a/examples/blink/Makefile b/examples/blink/Makefile
index 4acaf26..63f7ff0 100644
--- a/examples/blink/Makefile
+++ b/examples/blink/Makefile
@@ -1,43 +1,9 @@
 TARGET:=blink
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DTINYVECTOR -Wall
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
+all : flash
+flash : cv_flash
+clean : cv_clean
 
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
 
diff --git a/examples/blink/blink.bin b/examples/blink/blink.bin
index f4a7fa56e5eb064927ec95f85687b82ff2dc8db8..b0cf5a4fa20b888e4185c78fd1a5230786bc2059 100755
GIT binary patch
literal 548
zcmd02cp%9D1hW_+7{ta0K<YpMnTF}5HVv|8`*(&1H=HYH-#BdkT#P}Oo!xB4Y2_vC
z3^SaC)5RHP9KPYq+Fg2o22jO}!%Yo=f^0{W4yhg3F3#j&&d$K7yoepBN1S8E;Z`?u
zbtVUq!{+Ss8D<<e2g=JhPo9>}@c1s<zZmC*ZXah)ey+|Ca~P!ahO=S!W4Y`9X83Ps
z`}qH_m~c8f^NjP`#Tgx#m$N%;XJJrqoUOdzIhY4>1&m$V4`Urn3k9=hI6DH}1#_#p
z2&03myRya;2Ud596SC&!?1Bs+Q<YadcQ}|Xb3)L*c{vM1E4%W7FANv==L3B|osmId
za-(9Ja3dpwFe?K`u>h;VWHtka;t6gI;;alnvD7EVsaF|_1wsvgd<7u?@#I#=24OY^
zhUAE?49W^efofbC9{X(lC(P=gG##jBa;xe?aW<e@wq*~JdyX<RtFZ!oa22d>aw|~n
Ww4?tfvp?V|o*-^g%%EVvzyJW?K9qd`

literal 520
zcmb`Au}i~16vkg_FW14LC8bda5-ixYf_S4TN7GGlsFPc<9UX#$gHV;AP^y(Hc-X-z
zf`38Ds4<F#4&r3Ds#QA|EN;~cA~-qu!M*S9-tT*F74&fs3I@K9fB#E9=j*rsWdGa!
zJ<bO_w&{AU?U7y#6pUwiD}IK7Q>CB+_u3Sd);e4e+}kQHM&#?stEo#z4HyK26hFlx
zqlUO=n<No1q8`D=z;7KH0z@zx9qbP}%k;$T*H|wB%buTX)9F%o;$g@ah}{3&h$#g;
z!taPG84P2iN}V9+?orjNQuY=D-}`%hP37-}Yt*f2qOzU}nn$93DrlrLyoEAjO*H3-
zIRr<5?O=nq+=AAep4&bTf{o+#cW^HbCD7UCQ(oDWKtT|)!YElbt%_Mx5s07kYqo5K
zvq|yN6}0lg>{L-Qb4v{fyAjl#ZwwVw)DK0M+4i$43rd!sbGtVXO;rVPfVxLFLxvwm
Nt%^Ehfu5A=0AD^kf%gCa

diff --git a/examples/bootload/Makefile b/examples/bootload/Makefile
index 7d681ec..47ff5e0 100644
--- a/examples/bootload/Makefile
+++ b/examples/bootload/Makefile
@@ -1,43 +1,8 @@
 TARGET:=bootload
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DCUSTOM_INTERRUPT_VECTOR
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun-bootloader.ld -Wl,--gc-sections -L../../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -h -U -w $< bootloader -B
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/debugprintfdemo/Makefile b/examples/debugprintfdemo/Makefile
index 01ae2f3..0e3fda6 100644
--- a/examples/debugprintfdemo/Makefile
+++ b/examples/debugprintfdemo/Makefile
@@ -1,46 +1,8 @@
 TARGET:=debugprintfdemo
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -Wall
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-monitor : flash
-	$(MINICHLINK)/minichlink -T
-	
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/external_crystal/Makefile b/examples/external_crystal/Makefile
index 9ee7fc5..a4a4b8d 100644
--- a/examples/external_crystal/Makefile
+++ b/examples/external_crystal/Makefile
@@ -1,43 +1,8 @@
 TARGET:=external_crystal
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DTINYVECTOR -Wall
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/i2c_oled/Makefile b/examples/i2c_oled/Makefile
index da35468..2da3d04 100644
--- a/examples/i2c_oled/Makefile
+++ b/examples/i2c_oled/Makefile
@@ -1,41 +1,8 @@
 TARGET:=i2c_oled
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/optionbytes/Makefile b/examples/optionbytes/Makefile
index 1c2032c..fca3e40 100644
--- a/examples/optionbytes/Makefile
+++ b/examples/optionbytes/Makefile
@@ -1,47 +1,10 @@
 TARGET:=optionbytes
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DTINYVECTOR
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+CFLAGS+=-DTINYVECTOR
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
+include ../../ch32v003fun/ch32v003fun.mk
 
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-monitor : flash
-	$(MINICHLINK)/minichlink -T
-
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/run_from_ram/Makefile b/examples/run_from_ram/Makefile
index dd492af..55db45e 100644
--- a/examples/run_from_ram/Makefile
+++ b/examples/run_from_ram/Makefile
@@ -1,43 +1,10 @@
 TARGET:=run_from_ram
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-EVT:=../../ch32v003evt
-
-MINICHLINK:=../../minichlink
-CH32V003FUN:=../../ch32v003fun
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DTINYVECTOR -Wall
+CFLAGS+=-DTINYVECTOR
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/sandbox/Makefile b/examples/sandbox/Makefile
index e45f982..1388833 100644
--- a/examples/sandbox/Makefile
+++ b/examples/sandbox/Makefile
@@ -1,45 +1,8 @@
 TARGET:=sandbox
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -Wall
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-monitor : flash
-	$(MINICHLINK)/minichlink -T
-	
+all : flash
+flash : cv_flash
+clean : cv_clean
 
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
diff --git a/examples/self_modify_code/Makefile b/examples/self_modify_code/Makefile
index abafa8a..80c711c 100644
--- a/examples/self_modify_code/Makefile
+++ b/examples/self_modify_code/Makefile
@@ -1,46 +1,8 @@
 TARGET:=self_modify_code
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -Wall
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-monitor : flash
-	$(MINICHLINK)/minichlink -T
-	
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/spi_dac/Makefile b/examples/spi_dac/Makefile
index 0978583..109146e 100644
--- a/examples/spi_dac/Makefile
+++ b/examples/spi_dac/Makefile
@@ -1,48 +1,8 @@
 TARGET:=spi_dac
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-ifeq ($(OS),Windows_NT)
-# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
-LIB_GCC=../../misc/libgcc.a
-else
-LIB_GCC=-lgcc
-endif
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc $(LIB_GCC) \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
+include ../../ch32v003fun/ch32v003fun.mk
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/systick_irq/Makefile b/examples/systick_irq/Makefile
index d8910e1..c9c13de 100644
--- a/examples/systick_irq/Makefile
+++ b/examples/systick_irq/Makefile
@@ -1,41 +1,8 @@
 TARGET:=systick_irq
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/systick_irq_millis/Makefile b/examples/systick_irq_millis/Makefile
index 266cce9..e2050f9 100644
--- a/examples/systick_irq_millis/Makefile
+++ b/examples/systick_irq_millis/Makefile
@@ -1,41 +1,10 @@
 TARGET:=systick_irq_millis
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
+CFLAGS+=-DSTDOUT_UART
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/tim1_pwm/Makefile b/examples/tim1_pwm/Makefile
index 0aecad0..eb2260d 100644
--- a/examples/tim1_pwm/Makefile
+++ b/examples/tim1_pwm/Makefile
@@ -1,41 +1,10 @@
 TARGET:=tim1_pwm
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
+CFLAGS+=-DSTDOUT_UART
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/uartdemo/Makefile b/examples/uartdemo/Makefile
index 25b0efa..d77dc21 100644
--- a/examples/uartdemo/Makefile
+++ b/examples/uartdemo/Makefile
@@ -1,41 +1,10 @@
 TARGET:=uartdemo
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -DSTDOUT_UART -Wall
+CFLAGS+=-DSTDOUT_UART
 
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
+include ../../ch32v003fun/ch32v003fun.mk
 
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+all : flash
+flash : cv_flash
+clean : cv_clean
 
diff --git a/examples/ws2812bdemo/Makefile b/examples/ws2812bdemo/Makefile
index c6af022..3c82328 100644
--- a/examples/ws2812bdemo/Makefile
+++ b/examples/ws2812bdemo/Makefile
@@ -1,40 +1,7 @@
-TARGET:=ws2812bdemo
+TARGET:= ws2812bdemo
 
-all : flash
-
-PREFIX:=riscv64-unknown-elf
-
-CH32V003FUN:=../../ch32v003fun
-MINICHLINK:=../../minichlink
-
-CFLAGS:= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -Wall
-
-LDFLAGS:=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L../../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c
-	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
-
-$(TARGET).bin : $(TARGET).elf
-	$(PREFIX)-size $^
-	$(PREFIX)-objdump -S $^ > $(TARGET).lst
-	$(PREFIX)-objdump -t $^ > $(TARGET).map
-	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
-	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
-
-flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
-
-clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+include ../../ch32v003fun/ch32v003fun.mk
 
+all : flash
+flash : cv_flash
+clean : cv_clean
-- 
GitLab