From ccba9234626869c5af01302b6d30c7ef9ed71935 Mon Sep 17 00:00:00 2001
From: cnlohr <lohr85@gmail.com>
Date: Mon, 12 Feb 2024 07:32:23 -0500
Subject: [PATCH] * Cleanup ld script generation * Add mco example

---
 ch32v003fun/ch32v003fun.mk        | 11 ++++++-----
 ch32v003fun/ch32v10xfun.mk        |  6 ------
 ch32v003fun/ch32v20xfun.mk        |  5 -----
 ch32v003fun/ch32v30xfun.mk        |  6 ------
 examples_v20x/mcotest/Makefile    | 11 +++++++++++
 examples_v20x/mcotest/funconfig.h |  7 +++++++
 examples_v20x/mcotest/mcotest.c   | 18 ++++++++++++++++++
 7 files changed, 42 insertions(+), 22 deletions(-)
 create mode 100644 examples_v20x/mcotest/Makefile
 create mode 100644 examples_v20x/mcotest/funconfig.h
 create mode 100644 examples_v20x/mcotest/mcotest.c

diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index f1b9656..7173808 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 2fde040..aaa1e4d 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 9fb171a..f88a9c3 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 ecf61f4..a937bc0 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 0000000..5e13d34
--- /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 0000000..83cb00a
--- /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 0000000..0a129fa
--- /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)
+	{
+	}
+}
+
-- 
GitLab