From 585d91a79759d1f19e19a9eed510ce87e9bfaad1 Mon Sep 17 00:00:00 2001
From: Alexander Mandera <alexander@mandera.eu>
Date: Thu, 29 Jun 2023 13:03:50 +0200
Subject: [PATCH] Add dynamic MCU and package selection

---
 .gitignore                      |  1 +
 ch32v003fun/ch32v003fun.h       |  8 ----
 ch32v003fun/ch32v003fun.mk      | 47 +++++++++++++------
 ch32v003fun/ch32v10xfun.ld      | 13 ++++++
 ch32v003fun/ch32v10xfun.mk      | 57 ++++++++---------------
 ch32v003fun/ch32v20xfun.ld      | 33 +++++++-------
 ch32v003fun/ch32v20xfun.mk      | 80 ++++++++++++++++++---------------
 ch32v003fun/ch32v30xfun.ld      | 35 +++++++--------
 ch32v003fun/ch32v30xfun.mk      | 65 ++++++++++++---------------
 examples_v10x/blink/Makefile    |  3 +-
 examples_v10x/blink/funconfig.h |  2 +-
 examples_v20x/blink/Makefile    |  3 +-
 examples_v20x/blink/funconfig.h |  2 +-
 examples_v30x/blink/Makefile    |  4 +-
 examples_v30x/blink/funconfig.h |  2 +-
 15 files changed, 178 insertions(+), 177 deletions(-)

diff --git a/.gitignore b/.gitignore
index f79293a..dac6f1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ minichlink/minichlink.so
 compile_commands.json
 .clangd
 .cache
+ch32v003fun/generated_*.ld
\ No newline at end of file
diff --git a/ch32v003fun/ch32v003fun.h b/ch32v003fun/ch32v003fun.h
index 2212859..75021d9 100644
--- a/ch32v003fun/ch32v003fun.h
+++ b/ch32v003fun/ch32v003fun.h
@@ -12157,11 +12157,6 @@ void DefaultIRQHandler( void ) __attribute__((section(".text.vector_handler")))
 
 #endif
 
-#define str(token) #token
-#define xstr(token) str(token)
-
-#pragma message("CH32V003FUN: " xstr(FUNCONF_PLL_MULTIPLIER) " Multiplier")
-
 // Determination of PLL multiplication factor for non-V003 chips
 #if defined(CH32V10x) || defined(CH32V20x) || defined(CH32V30x)
 	#if !defined(FUNCONF_SYSTEM_CORE_CLOCK)
@@ -12241,9 +12236,6 @@ void DefaultIRQHandler( void ) __attribute__((section(".text.vector_handler")))
 	#endif
 #endif
 
-#pragma message("CH32V003FUN: " xstr(FUNCONF_SYSTEM_CORE_CLOCK) " Clock")
-
-
 #ifndef __ASSEMBLER__
 
 void DelaySysTick( uint32_t n );
diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index 278b736..8fdec52 100644
--- a/ch32v003fun/ch32v003fun.mk
+++ b/ch32v003fun/ch32v003fun.mk
@@ -1,31 +1,50 @@
 
 PREFIX?=riscv64-unknown-elf
 
+TARGET_MCU?=CH32V003
+TARGET_EXT?=c
+
 CH32V003FUN?=../../ch32v003fun
 MINICHLINK?=../../minichlink
 
-CFLAGS+= \
-	-g -Os -flto -ffunction-sections \
-	-static-libgcc \
-	-march=rv32ec \
-	-mabi=ilp32e \
-	-I/usr/include/newlib \
-	-I$(CH32V003FUN)/../extralibs \
-	-I$(CH32V003FUN) \
-	-nostdlib \
-	-I. -Wall $(EXTRA_CFLAGS)
+WRITE_SECTION?=flash
+SYSTEM_C?=$(CH32V003FUN)/ch32v003fun.c
 
-LINKER_SCRIPT?=$(CH32V003FUN)/ch32v003fun.ld
+ifeq ($(TARGET_MCU),CH32V003)
+	CFLAGS+= \
+		-g -Os -flto -ffunction-sections \
+		-static-libgcc \
+		-march=rv32ec \
+		-mabi=ilp32e \
+		-I/usr/include/newlib \
+		-I$(CH32V003FUN)/../extralibs \
+		-I$(CH32V003FUN) \
+		-nostdlib \
+		-DCH32V003=1 \
+		-I. -Wall $(EXTRA_CFLAGS)
+
+	LINKER_SCRIPT?=$(CH32V003FUN)/ch32v003fun.ld
+else
+	ifeq ($(findstring CH32V10,$(TARGET_MCU)),CH32V10)
+		include $(CH32V003FUN)/ch32v10xfun.mk
+	else ifeq ($(findstring CH32V20,$(TARGET_MCU)),CH32V20)
+		include $(CH32V003FUN)/ch32v20xfun.mk
+	else ifeq ($(findstring CH32V30,$(TARGET_MCU)),CH32V30)
+		include $(CH32V003FUN)/ch32v30xfun.mk
+	else
+		$(error Unknown MCU $(TARGET_MCU))
+	endif
+endif
 
 LDFLAGS+=-T $(LINKER_SCRIPT) -Wl,--gc-sections -L$(CH32V003FUN)/../misc -lgcc
 
-WRITE_SECTION?=flash
-SYSTEM_C?=$(CH32V003FUN)/ch32v003fun.c
-TARGET_EXT?=c
+ifeq ($(TARGET_MCU), CH32V003)
 
 $(TARGET).elf : $(SYSTEM_C) $(TARGET).$(TARGET_EXT) $(ADDITIONAL_C_FILES)
 	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
 
+endif
+
 $(TARGET).bin : $(TARGET).elf
 	$(PREFIX)-size $^
 	$(PREFIX)-objdump -S $^ > $(TARGET).lst
diff --git a/ch32v003fun/ch32v10xfun.ld b/ch32v003fun/ch32v10xfun.ld
index 509b9f1..e4506fe 100644
--- a/ch32v003fun/ch32v10xfun.ld
+++ b/ch32v003fun/ch32v10xfun.ld
@@ -7,8 +7,21 @@ PROVIDE( _stack_size = __stack_size );
 
 MEMORY
 {
+#if MCU_PACKAGE == 1
+
 	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K
 	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
+
+#elif MCU_PACKAGE == 2
+
+    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K
+	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 10K
+
+#else
+
+    #error "Unknown MCU package"
+
+#endif
 }
 
 
diff --git a/ch32v003fun/ch32v10xfun.mk b/ch32v003fun/ch32v10xfun.mk
index afe095f..997e7f1 100644
--- a/ch32v003fun/ch32v10xfun.mk
+++ b/ch32v003fun/ch32v10xfun.mk
@@ -1,8 +1,5 @@
-
-PREFIX?=riscv64-unknown-elf
-
-CH32V003FUN?=../../ch32v003fun
-MINICHLINK?=../../minichlink
+TARGET_MCU_PACKAGE?=CH32V103R8T6
+MCU_PACKAGE?=1
 
 CFLAGS+= \
 	-g -Os -flto -ffunction-sections -fdata-sections \
@@ -16,43 +13,25 @@ CFLAGS+= \
 	-I/usr/include/newlib \
 	-I$(CH32V003FUN) \
 	-nostdlib \
+	-DCH32V10x=1 \
 	-I. -Wall
 
-LDFLAGS+=-T $(CH32V003FUN)/ch32v10xfun.ld -Wl,--gc-sections -L$(CH32V003FUN)/../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c $(ADDITIONAL_C_FILES)
-	$(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
-
-ifeq ($(OS),Windows_NT)
-closechlink :
-	-taskkill /F /IM minichlink.exe /T
-else
-closechlink :
-	-killall minichlink
+# MCU Flash/RAM split
+ifeq ($(findstring R8, $(TARGET_MCU_PACKAGE)), R8)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring C8, $(TARGET_MCU_PACKAGE)), C8)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring C6, $(TARGET_MCU_PACKAGE)), C6)
+	MCU_PACKAGE:=2
 endif
 
-terminal : monitor
-
-monitor :
-	$(MINICHLINK)/minichlink -T
-
-gdbserver : 
-	-$(MINICHLINK)/minichlink -baG
-
-cv_flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
+GENERATED_LD_FILE:=$(CH32V003FUN)/generated_$(TARGET_MCU_PACKAGE).ld
+LINKER_SCRIPT:=$(GENERATED_LD_FILE)
+FILES_TO_COMPILE:=$(SYSTEM_C) $(TARGET).$(TARGET_EXT) $(ADDITIONAL_C_FILES)
 
-cv_clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex || true
+$(GENERATED_LD_FILE) :
+	$(PREFIX)-gcc -E -P -x c -DMCU_PACKAGE=$(MCU_PACKAGE) $(CH32V003FUN)/ch32v10xfun.ld > $(GENERATED_LD_FILE)
 
-build : $(TARGET).bin
+$(TARGET).elf : $(GENERATED_LD_FILE) $(FILES_TO_COMPILE)
+	echo $(FILES_TO_COMPILE)
+	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
\ No newline at end of file
diff --git a/ch32v003fun/ch32v20xfun.ld b/ch32v003fun/ch32v20xfun.ld
index a811a90..2400a0b 100644
--- a/ch32v003fun/ch32v20xfun.ld
+++ b/ch32v003fun/ch32v20xfun.ld
@@ -6,28 +6,27 @@ PROVIDE( _stack_size = __stack_size );
 
 MEMORY
 {
-/* CH32V20x_D6 - CH32V203F6-CH32V203G6-CH32V203K6-CH32V203C6 */
-/*
-	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K
-	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 10K
-*/
-
-/* CH32V20x_D6 - CH32V203K8-CH32V203C8-CH32V203G8-CH32V203F8 */
-/**/
+#if MCU_PACKAGE == 1
+
 	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K
 	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
 
+#elif MCU_PACKAGE == 2
+
+    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K
+    RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 10K
+
+#elif MCU_PACKAGE == 3
+
+    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K
+    RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
+
+#else
+
+    #error "Unknown MCU package"
 
-/* CH32V20x_D8 - CH32V203RB
-   CH32V20x_D8W - CH32V208x
-   FLASH + RAM supports the following configuration
-   FLASH-128K + RAM-64K
-   FLASH-144K + RAM-48K
-   FLASH-160K + RAM-32K
+#endif
 
-	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 160K
-	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
-*/
 }
 
 
diff --git a/ch32v003fun/ch32v20xfun.mk b/ch32v003fun/ch32v20xfun.mk
index e4cb46d..4775ac1 100644
--- a/ch32v003fun/ch32v20xfun.mk
+++ b/ch32v003fun/ch32v20xfun.mk
@@ -1,8 +1,5 @@
-
-PREFIX?=riscv64-unknown-elf
-
-CH32V003FUN?=../../ch32v003fun
-MINICHLINK?=../../minichlink
+TARGET_MCU_PACKAGE?=CH32V203F8P6
+MCU_PACKAGE?=1
 
 CFLAGS+= \
 	-g -Os -flto -ffunction-sections -fdata-sections \
@@ -16,43 +13,52 @@ CFLAGS+= \
 	-I/usr/include/newlib \
 	-I$(CH32V003FUN) \
 	-nostdlib \
+	-DCH32V20x=1 \
 	-I. -Wall
 
-LDFLAGS+=-T $(CH32V003FUN)/ch32v20xfun.ld -Wl,--gc-sections -L$(CH32V003FUN)/../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c $(ADDITIONAL_C_FILES)
-	$(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
+# MCU Flash/RAM split
+ifeq ($(findstring F8, $(TARGET_MCU_PACKAGE)), F8)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring G8, $(TARGET_MCU_PACKAGE)), G8)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring K8, $(TARGET_MCU_PACKAGE)), K8)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring C8, $(TARGET_MCU_PACKAGE)), C8)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring F6, $(TARGET_MCU_PACKAGE)), F6)
+	MCU_PACKAGE:=2
+else ifeq ($(findstring G6, $(TARGET_MCU_PACKAGE)), G6)
+	MCU_PACKAGE:=2
+else ifeq ($(findstring K6, $(TARGET_MCU_PACKAGE)), K6)
+	MCU_PACKAGE:=2
+else ifeq ($(findstring C6, $(TARGET_MCU_PACKAGE)), C6)
+	MCU_PACKAGE:=2
+else ifeq ($(findstring RB, $(TARGET_MCU_PACKAGE)), RB)
+	MCU_PACKAGE:=3
+else ifeq ($(findstring GB, $(TARGET_MCU_PACKAGE)), GB)
+    MCU_PACKAGE:=3
+else ifeq ($(findstring CB, $(TARGET_MCU_PACKAGE)), CB)
+    MCU_PACKAGE:=3
+else ifeq ($(findstring WB, $(TARGET_MCU_PACKAGE)), WB)
+    MCU_PACKAGE:=3
+endif
 
-ifeq ($(OS),Windows_NT)
-closechlink :
-	-taskkill /F /IM minichlink.exe /T
+# Package
+ifeq ($(findstring 203RB, $(TARGET_MCU_PACKAGE)), 203RB)
+	CFLAGS+=-DCH32V20x_D8
+else ifeq ($(findstring 208, $(TARGET_MCU_PACKAGE)), 208)
+	CFLAGS+=-DCH32V20x_D8W
 else
-closechlink :
-	-killall minichlink
+	CFLAGS+=-DCH32V20x_D6
 endif
 
-terminal : monitor
-
-monitor :
-	$(MINICHLINK)/minichlink -T
-
-gdbserver : 
-	-$(MINICHLINK)/minichlink -baG
-
-cv_flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
+GENERATED_LD_FILE:=$(CH32V003FUN)/generated_$(TARGET_MCU_PACKAGE).ld
+LINKER_SCRIPT:=$(GENERATED_LD_FILE)
+FILES_TO_COMPILE:=$(SYSTEM_C) $(TARGET).$(TARGET_EXT) $(ADDITIONAL_C_FILES)
 
-cv_clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex || true
+$(GENERATED_LD_FILE) :
+	$(PREFIX)-gcc -E -P -x c -DMCU_PACKAGE=$(MCU_PACKAGE) $(CH32V003FUN)/ch32v20xfun.ld > $(GENERATED_LD_FILE)
 
-build : $(TARGET).bin
+$(TARGET).elf : $(GENERATED_LD_FILE) $(FILES_TO_COMPILE)
+	echo $(FILES_TO_COMPILE)
+	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
\ No newline at end of file
diff --git a/ch32v003fun/ch32v30xfun.ld b/ch32v003fun/ch32v30xfun.ld
index 2db0919..3fca444 100644
--- a/ch32v003fun/ch32v30xfun.ld
+++ b/ch32v003fun/ch32v30xfun.ld
@@ -7,26 +7,21 @@ PROVIDE( _stack_size = __stack_size );
 
 MEMORY
 {
-/* CH32V30x_D8C - CH32V305RB-CH32V305FB
-   CH32V30x_D8 - CH32V303CB-CH32V303RB
-*/
-
-	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K
-	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
-
-
-/* CH32V30x_D8C - CH32V307VC-CH32V307WC-CH32V307RC
-   CH32V30x_D8 - CH32V303VC-CH32V303RC
-   FLASH + RAM supports the following configuration
-   FLASH-192K + RAM-128K
-   FLASH-224K + RAM-96K
-   FLASH-256K + RAM-64K
-   FLASH-288K + RAM-32K
-*/
-/*
-	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 288K
-	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
-*/
+#if MCU_PACKAGE == 1
+
+    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K
+    RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
+
+#elif MCU_PACKAGE == 2
+
+    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K
+    RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
+
+#else
+
+    #error "Unknown MCU package"
+
+#endif
 }
 
 
diff --git a/ch32v003fun/ch32v30xfun.mk b/ch32v003fun/ch32v30xfun.mk
index 5c1edfc..90dea83 100644
--- a/ch32v003fun/ch32v30xfun.mk
+++ b/ch32v003fun/ch32v30xfun.mk
@@ -1,8 +1,5 @@
-
-PREFIX?=riscv64-unknown-elf
-
-CH32V003FUN?=../../ch32v003fun
-MINICHLINK?=../../minichlink
+TARGET_MCU_PACKAGE?=CH32V307VCT6
+MCU_PACKAGE?=1
 
 CFLAGS+= \
 	-g -Os -flto -ffunction-sections -fdata-sections \
@@ -16,43 +13,39 @@ CFLAGS+= \
 	-I/usr/include/newlib \
 	-I$(CH32V003FUN) \
 	-nostdlib \
+	-DCH32V30x=1 \
 	-I. -Wall
 
-LDFLAGS+=-T $(CH32V003FUN)/ch32v30xfun.ld -Wl,--gc-sections -L$(CH32V003FUN)/../misc -lgcc
-
-SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
-
-$(TARGET).elf : $(SYSTEM_C) $(TARGET).c $(ADDITIONAL_C_FILES)
-	$(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
+# MCU Flash/RAM split
+ifeq ($(findstring RC, $(TARGET_MCU_PACKAGE)), RC)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring VC, $(TARGET_MCU_PACKAGE)), VC)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring WC, $(TARGET_MCU_PACKAGE)), WC)
+	MCU_PACKAGE:=1
+else ifeq ($(findstring CB, $(TARGET_MCU_PACKAGE)), CB)
+	MCU_PACKAGE:=2
+else ifeq ($(findstring FB, $(TARGET_MCU_PACKAGE)), FB)
+	MCU_PACKAGE:=2
+else ifeq ($(findstring RB, $(TARGET_MCU_PACKAGE)), RB)
+	MCU_PACKAGE:=2
+endif
 
-ifeq ($(OS),Windows_NT)
-closechlink :
-	-taskkill /F /IM minichlink.exe /T
+# Package
+ifeq ($(findstring 303, $(TARGET_MCU_PACKAGE)), 303)
+	CFLAGS+=-DCH32V30x_D8
 else
-closechlink :
-	-killall minichlink
+	CFLAGS+=-DCH32V20x_D8C
 endif
 
-terminal : monitor
-
-monitor :
-	$(MINICHLINK)/minichlink -T
-
-gdbserver : 
-	-$(MINICHLINK)/minichlink -baG
+GENERATED_LD_FILE:=$(CH32V003FUN)/generated_$(TARGET_MCU_PACKAGE).ld
+LINKER_SCRIPT:=$(GENERATED_LD_FILE)
+FILES_TO_COMPILE:=$(SYSTEM_C) $(TARGET).$(TARGET_EXT) $(ADDITIONAL_C_FILES)
 
-cv_flash : $(TARGET).bin
-	make -C $(MINICHLINK) all
-	$(MINICHLINK)/minichlink -w $< flash -b
+$(GENERATED_LD_FILE) :
+	$(PREFIX)-gcc -E -P -x c -DMCU_PACKAGE=$(MCU_PACKAGE) $(CH32V003FUN)/ch32v30xfun.ld > $(GENERATED_LD_FILE)
 
-cv_clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex || true
 
-build : $(TARGET).bin
+$(TARGET).elf : $(GENERATED_LD_FILE) $(FILES_TO_COMPILE)
+	echo $(FILES_TO_COMPILE)
+	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
\ No newline at end of file
diff --git a/examples_v10x/blink/Makefile b/examples_v10x/blink/Makefile
index 9200f86..1eb420e 100644
--- a/examples_v10x/blink/Makefile
+++ b/examples_v10x/blink/Makefile
@@ -1,8 +1,9 @@
 all : flash
 
 TARGET:=blink
+TARGET_MCU:=CH32V103
 
-include ../../ch32v003fun/ch32v10xfun.mk
+include ../../ch32v003fun/ch32v003fun.mk
 
 flash : cv_flash
 clean : cv_clean
diff --git a/examples_v10x/blink/funconfig.h b/examples_v10x/blink/funconfig.h
index 89212b5..fb00ab9 100644
--- a/examples_v10x/blink/funconfig.h
+++ b/examples_v10x/blink/funconfig.h
@@ -1,7 +1,7 @@
 #ifndef _FUNCONFIG_H
 #define _FUNCONFIG_H
 
-#define CH32V10x           1
+//#define CH32V10x           1
 
 #endif
 
diff --git a/examples_v20x/blink/Makefile b/examples_v20x/blink/Makefile
index d902349..90acba4 100644
--- a/examples_v20x/blink/Makefile
+++ b/examples_v20x/blink/Makefile
@@ -1,8 +1,9 @@
 all : flash
 
 TARGET:=blink
+TARGET_MCU:=CH32V203
 
-include ../../ch32v003fun/ch32v20xfun.mk
+include ../../ch32v003fun/ch32v003fun.mk
 
 flash : cv_flash
 clean : cv_clean
diff --git a/examples_v20x/blink/funconfig.h b/examples_v20x/blink/funconfig.h
index 882bc02..83cb00a 100644
--- a/examples_v20x/blink/funconfig.h
+++ b/examples_v20x/blink/funconfig.h
@@ -1,7 +1,7 @@
 #ifndef _FUNCONFIG_H
 #define _FUNCONFIG_H
 
-#define CH32V20x           1
+// #define CH32V20x           1
 
 #endif
 
diff --git a/examples_v30x/blink/Makefile b/examples_v30x/blink/Makefile
index 696a084..4f45456 100644
--- a/examples_v30x/blink/Makefile
+++ b/examples_v30x/blink/Makefile
@@ -1,8 +1,10 @@
 all : flash
 
 TARGET:=blink
+TARGET_MCU:=CH32V305
+TARGET_MCU_PACKAGE:=CH32V305RBT6
 
-include ../../ch32v003fun/ch32v30xfun.mk
+include ../../ch32v003fun/ch32v003fun.mk
 
 flash : cv_flash
 clean : cv_clean
diff --git a/examples_v30x/blink/funconfig.h b/examples_v30x/blink/funconfig.h
index c3d634a..3672945 100644
--- a/examples_v30x/blink/funconfig.h
+++ b/examples_v30x/blink/funconfig.h
@@ -1,7 +1,7 @@
 #ifndef _FUNCONFIG_H
 #define _FUNCONFIG_H
 
-#define CH32V30x           1
+// #define CH32V30x           1
 
 #endif
 
-- 
GitLab