From 65ec5beadb2f3080e7ee00971715d2621ce643fb Mon Sep 17 00:00:00 2001
From: zaubentrucker <frederik.menke@rwth-aachen.de>
Date: Sun, 22 Dec 2024 21:39:24 +0100
Subject: [PATCH] Build firmware

---
 red/mod-io2/justfile       |  5 +++++
 red/mod-io2/platformio.ini |  8 ++++++--
 red/mod-io2/scratch        | 19 +++++++++++++++++++
 red/mod-io2/src/main.cpp   | 18 +++++++++++++++---
 4 files changed, 45 insertions(+), 5 deletions(-)
 create mode 100644 red/mod-io2/justfile
 create mode 100644 red/mod-io2/scratch

diff --git a/red/mod-io2/justfile b/red/mod-io2/justfile
new file mode 100644
index 0000000..0afd259
--- /dev/null
+++ b/red/mod-io2/justfile
@@ -0,0 +1,5 @@
+build:
+    pio run -v -e genericCH32V003F4P6
+
+flash:
+    wlink -v flash --enable-sdi-print --watch-serial ./.pio/build/genericCH32V003F4P6/firmware.bin
diff --git a/red/mod-io2/platformio.ini b/red/mod-io2/platformio.ini
index f9ca9f4..7df80b5 100644
--- a/red/mod-io2/platformio.ini
+++ b/red/mod-io2/platformio.ini
@@ -10,7 +10,11 @@
 
 [env:genericCH32V003F4P6]
 platform = ch32v
-board = genericCH32V003F4P6
+board = ch32v003f4p6_evt_r0
 framework = noneos-sdk
-build_flags = -D SYSCLK_FREQ_48MHZ_HSI #-D LOD_DEBUG_ENABLE
+# build_flags = -D SYSCLK_FREQ_48MHZ_HSI -D LOD_DEBUG_ENABLE -DCH32V003F4 -DCH32V00X -DCH32V00x -DCH32V003
 monitor_speed = 115200
+
+[env:ch32v003f4p6_evt_r0]
+board = ch32v003f4p6_evt_r0
+
diff --git a/red/mod-io2/scratch b/red/mod-io2/scratch
new file mode 100644
index 0000000..a55b8d3
--- /dev/null
+++ b/red/mod-io2/scratch
@@ -0,0 +1,19 @@
+# Example:
+
+
+riscv-none-embed-g++ -o .pio/build/ch32v003f4p6_evt_r0/src/main.o -c -std=gnu++17 -fno-threadsafe-statics -fno-rtti -fno-exceptions -fno-use-cxa-atexit -Os -g -Wall -msmall-data-limit=0 -msave-restore -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -Wno-comment -march=rv32ecxw -mabi=ilp32e -DPLATFORMIO=60116 -DCH32V003F4 -DCH32V00X -DCH32V00x -DCH32V003 -D__PIO_CPP_SUPPORT__ -Iinclude -Isrc -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Core/ch32v00x -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Peripheral/ch32v00x/inc -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Peripheral/ch32v00x/src -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Startup -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/System/ch32v00x -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Debug/ch32v00x src/main.cpp
+
+
+
+# My code:
+
+riscv-none-embed-g++ -o .pio/build/genericCH32V003F4P6/src/main.o -c -std=gnu++17 -fno-threadsafe-statics -fno-rtti -fno-exceptions -fno-use-cxa-atexit -Os -g -Wall -msmall-data-limit=0 -msave-restore -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -Wno-comment -march=rv32ecxw -mabi=ilp32e -DPLATFORMIO=60116 -DCH32V003F4 -DCH32V00X -DCH32V00x -DCH32V003 -D__PIO_CPP_SUPPORT__ -Iinclude -Isrc -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Core/ch32v00x -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Peripheral/ch32v00x/inc -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Peripheral/ch32v00x/src -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Startup -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/System/ch32v00x -I/home/zaubentrucker/.platformio/packages/framework-wch-noneos-sdk/Debug/ch32v00x src/main.cpp
+src/main.cpp: In function 'int main()':
+src/main.cpp:18:27: error: 'NVIC_PriorityGroup_2' was not declared in this scope
+  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
+                           ^~~~~~~~~~~~~~~~~~~~
+src/main.cpp:18:27: note: suggested alternative: 'NVIC_PriorityGroup_1'
+  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
+                           ^~~~~~~~~~~~~~~~~~~~
+                           NVIC_PriorityGroup_1
+riscv-none-embed-gcc-ar rc .pio/build/genericCH32V003F4P6/libFrameworkNoneOSVariant.a .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_adc.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_dbgmcu.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_dma.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_exti.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_flash.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_gpio.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_i2c.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_iwdg.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_misc.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_opa.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_pwr.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_rcc.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_spi.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_tim.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_usart.o .pio/build/genericCH32V003F4P6/FrameworkNoneOSVariant/ch32v00x_wwdg.o
diff --git a/red/mod-io2/src/main.cpp b/red/mod-io2/src/main.cpp
index f8d4a48..f79f395 100644
--- a/red/mod-io2/src/main.cpp
+++ b/red/mod-io2/src/main.cpp
@@ -1,4 +1,15 @@
-#include <ch32v00x.h>
+#if defined(CH32V00X)
+#include <ch32v00x.h>
+#elif defined(CH32V10X)
+#include <ch32v10x.h>
+#elif defined(CH32V20X)
+#include <ch32v20x.h>
+#elif defined(CH32V30X) || defined(CH32V31X)
+#include <ch32v30x.h>
+#elif defined(CH32L10X)
+#include <ch32l103.h>
+#endif
+#include <debug.h>
 
 #include "log_debug.h"
 #include "uptime.h"
@@ -15,7 +26,7 @@ extern "C" {
 #endif
 
 int main(void) {
-	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
+	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
 	SystemCoreClockUpdate();
 	
 	// Disable GPIO Alternate Functions and extrnal oscilator
@@ -29,7 +40,8 @@ int main(void) {
 	LOG_DEBUG(EOL "Sys Clock: %ld" EOL, SystemCoreClock);
 
 	MOD_IO2::Setup();
-	while (1) {
+	while (1) {
+
 	}
 }