diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index f1b96569f6a2b1845ebbf6f6090ae191474e7f86..7173808fa15db04603bceda83aadc44609f1f9d2 100644
--- a/ch32v003fun/ch32v003fun.mk
+++ b/ch32v003fun/ch32v003fun.mk
@@ -59,10 +59,7 @@ LDFLAGS+=-T $(LINKER_SCRIPT) -Wl,--gc-sections -L$(CH32V003FUN)/../misc -lgcc
 
 ifeq ($(TARGET_MCU), CH32V003)
 
-COMPILED_FILES:=$(SYSTEM_C) $(TARGET).$(TARGET_EXT) $(ADDITIONAL_C_FILES) 
-
-$(TARGET).elf : $(COMPILED_FILES) $(LINKER_SCRIPT)
-	$(PREFIX)-gcc -o $@ $(COMPILED_FILES) $(CFLAGS) $(LDFLAGS)
+FILES_TO_COMPILE:=$(SYSTEM_C) $(TARGET).$(TARGET_EXT) $(ADDITIONAL_C_FILES) 
 
 endif
 
@@ -102,7 +99,11 @@ clangd_clean :
 FLASH_COMMAND?=$(MINICHLINK)/minichlink -w $< $(WRITE_SECTION) -b
 
 $(GENERATED_LD_FILE) :
-	$(PREFIX)-gcc -E -P -x c -DTARGET_MCU=CH32V003 $(CH32V003FUN)/ch32v003fun.ld > $(GENERATED_LD_FILE)
+	$(PREFIX)-gcc -E -P -x c -DTARGET_MCU=$(TARGET_MCU) $(CH32V003FUN)/ch32v003fun.ld > $(GENERATED_LD_FILE)
+
+
+$(TARGET).elf : $(FILES_TO_COMPILE) $(LINKER_SCRIPT)
+	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
 
 cv_flash : $(TARGET).bin
 	make -C $(MINICHLINK) all
diff --git a/ch32v003fun/ch32v10xfun.mk b/ch32v003fun/ch32v10xfun.mk
index 2fde0405a593d0da087df238e77316dc26eab7d4..aaa1e4dd11e315b0ec5f30ac0997bd5ea55108d0 100644
--- a/ch32v003fun/ch32v10xfun.mk
+++ b/ch32v003fun/ch32v10xfun.mk
@@ -29,9 +29,3 @@ 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)
 
-$(GENERATED_LD_FILE) :
-	$(PREFIX)-gcc -E -P -x c -DMCU_PACKAGE=$(MCU_PACKAGE) -DMCU_TYPE=CH32V10x $(CH32V003FUN)/ch32v003fun.ld > $(GENERATED_LD_FILE)
-
-$(TARGET).elf : $(GENERATED_LD_FILE) $(FILES_TO_COMPILE)
-	echo $(FILES_TO_COMPILE)
-	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
diff --git a/ch32v003fun/ch32v20xfun.mk b/ch32v003fun/ch32v20xfun.mk
index 9fb171a27efc2e7f9edf87699bb3d399126b3188..f88a9c36d6cc2a6c30862b0035fb1b2d37d42d8d 100644
--- a/ch32v003fun/ch32v20xfun.mk
+++ b/ch32v003fun/ch32v20xfun.mk
@@ -56,9 +56,4 @@ 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)
 
-$(GENERATED_LD_FILE) :
-	$(PREFIX)-gcc -E -P -x c -DMCU_PACKAGE=$(MCU_PACKAGE) -DMCU_TYPE=CH32V20x $(CH32V003FUN)/ch32v003fun.ld > $(GENERATED_LD_FILE)
 
-$(TARGET).elf : $(GENERATED_LD_FILE) $(FILES_TO_COMPILE)
-	echo $(FILES_TO_COMPILE)
-	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
diff --git a/ch32v003fun/ch32v30xfun.mk b/ch32v003fun/ch32v30xfun.mk
index ecf61f4b738903c1874b94cf098bd64de46a6f97..a937bc0418fb2570ab4b8cd805febd6d58377f75 100644
--- a/ch32v003fun/ch32v30xfun.mk
+++ b/ch32v003fun/ch32v30xfun.mk
@@ -42,9 +42,3 @@ 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)
 
-$(GENERATED_LD_FILE) :
-	$(PREFIX)-gcc -E -P -x c -DMCU_PACKAGE=$(MCU_PACKAGE)  -DMCU_TYPE=CH32V20x $(CH32V003FUN)/ch32v003fun.ld > $(GENERATED_LD_FILE)
-
-
-$(TARGET).elf : $(GENERATED_LD_FILE) $(FILES_TO_COMPILE)
-	$(PREFIX)-gcc -o $@ $(FILES_TO_COMPILE) $(CFLAGS) $(LDFLAGS)
diff --git a/examples_v20x/mcotest/Makefile b/examples_v20x/mcotest/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..5e13d346c7275fd293debdd5df740542a64404a9
--- /dev/null
+++ b/examples_v20x/mcotest/Makefile
@@ -0,0 +1,11 @@
+all : flash
+
+TARGET:=mcotest
+TARGET_MCU:=CH32V203
+
+include ../../ch32v003fun/ch32v003fun.mk
+
+flash : cv_flash
+clean : cv_clean
+
+
diff --git a/examples_v20x/mcotest/funconfig.h b/examples_v20x/mcotest/funconfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..83cb00acf8b11a356fd9a0436ce3952fe3c85bcc
--- /dev/null
+++ b/examples_v20x/mcotest/funconfig.h
@@ -0,0 +1,7 @@
+#ifndef _FUNCONFIG_H
+#define _FUNCONFIG_H
+
+// #define CH32V20x           1
+
+#endif
+
diff --git a/examples_v20x/mcotest/mcotest.c b/examples_v20x/mcotest/mcotest.c
new file mode 100644
index 0000000000000000000000000000000000000000..0a129fa311df80903d6fbf995ce491b5ea26ae5b
--- /dev/null
+++ b/examples_v20x/mcotest/mcotest.c
@@ -0,0 +1,18 @@
+#include "ch32v003fun.h"
+#include <stdio.h>
+
+int main()
+{
+	SystemInit();
+
+	funGpioInitAll();
+
+	funPinMode( PA8, GPIO_CFGLR_OUT_50Mhz_AF_PP );
+
+	RCC->CFGR0 = RCC_CFGR0_MCO_PLL;
+
+	while(1)
+	{
+	}
+}
+