From e24fc6f012fce17ccfdf258828b521e213896393 Mon Sep 17 00:00:00 2001
From: Alexander Mandera <alexander@mandera.eu>
Date: Thu, 29 Jun 2023 00:02:07 +0200
Subject: [PATCH] Fix minichlink compilation

---
 minichlink/Makefile        |   6 +++---
 minichlink/minichlink.exe  | Bin 98816 -> 98816 bytes
 minichlink/minichlink.h    |  14 +++++++-------
 minichlink/pgm-wch-linke.c |  34 +++++++++++++++++-----------------
 4 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/minichlink/Makefile b/minichlink/Makefile
index 8f215a1..f4b2d8e 100644
--- a/minichlink/Makefile
+++ b/minichlink/Makefile
@@ -1,6 +1,6 @@
 TOOLS:=minichlink minichlink.so
 
-CFLAGS:=-O0 -g3 -Wall -I.
+CFLAGS:=-O0 -g3 -Wall -DCH32V003 -I.
 C_S:=minichlink.c pgm-wch-linke.c pgm-esp32s2-ch32xx.c nhc-link042.c ardulink.c serial_dev.c pgm-b003fun.c minichgdb.c
 
 # General Note: To use with GDB, gdb-multiarch
@@ -9,7 +9,7 @@ C_S:=minichlink.c pgm-wch-linke.c pgm-esp32s2-ch32xx.c nhc-link042.c ardulink.c
 
 ifeq ($(OS),Windows_NT)
 	LDFLAGS:=-L. -lpthread -lusb-1.0 -lsetupapi -lws2_32
-	CFLAGS:=-Os -s -Wall -D_WIN32_WINNT=0x0600  -I.
+	CFLAGS:=-Os -s -Wall -D_WIN32_WINNT=0x0600 -DCH32V003 -I.
 	TOOLS:=minichlink.exe
 else
 	OS_NAME := $(shell uname -s | tr A-Z a-z)
@@ -18,7 +18,7 @@ else
 	endif
 	ifeq ($(OS_NAME),darwin)
 		LDFLAGS:=-lpthread -lusb-1.0 -framework CoreFoundation -framework IOKit
-		CFLAGS:=-O0 -Wall -Wno-asm-operand-widths -Wno-deprecated-declarations -Wno-deprecated-non-prototype -D__MACOSX__  -I.
+		CFLAGS:=-O0 -Wall -Wno-asm-operand-widths -Wno-deprecated-declarations -Wno-deprecated-non-prototype -D__MACOSX__ -DCH32V003 -I.
 		INCLUDES:=$(shell pkg-config --cflags-only-I libusb-1.0)
 		LIBINCLUDES:=$(shell pkg-config --libs-only-L libusb-1.0)
 		INCS:=$(INCLUDES) $(LIBINCLUDES)
diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe
index df60e922ad7b48584993e0b6c5ce86de66bc14f6..276e83f802abc51a6c9dc345d7e52041d0fecf41 100644
GIT binary patch
delta 15124
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
RTC><wEn8INnav)v{{n*<!QB7=

delta 15031
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
Wb6XVVl~-jtd#+{~d7hc<3HvVsNtY@B

diff --git a/minichlink/minichlink.h b/minichlink/minichlink.h
index a46793c..11cf32c 100644
--- a/minichlink/minichlink.h
+++ b/minichlink/minichlink.h
@@ -105,13 +105,13 @@ struct ProgrammerStructBase
 #define MAX_FLASH_SECTORS 262144
 
 enum RiscVChip {
-	CH32V10x = 0x01,
-	CH57x = 0x02,
-	CH56x = 0x03,
-	CH32V20x = 0x05,
-	CH32V30x = 0x06,
-	CH58x = 0x07,
-	CH32V003 = 0x09
+	CHIP_CH32V10x = 0x01,
+	CHIP_CH57x = 0x02,
+	CHIP_CH56x = 0x03,
+	CHIP_CH32V20x = 0x05,
+	CHIP_CH32V30x = 0x06,
+	CHIP_CH58x = 0x07,
+	CHIP_CH32V003 = 0x09
 };
 
 struct InternalState
diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c
index 7a98ce4..fe42054 100644
--- a/minichlink/pgm-wch-linke.c
+++ b/minichlink/pgm-wch-linke.c
@@ -18,25 +18,25 @@ struct LinkEProgrammerStruct
 
 static void printChipInfo(enum RiscVChip chip) {
 	switch(chip) {
-		case CH32V10x:
+		case CHIP_CH32V10x:
 			fprintf(stderr, "Detected: CH32V10x\n");
 			break;
-		case CH57x:
+		case CHIP_CH57x:
 			fprintf(stderr, "Detected: CH57x\n");
 			break;
-		case CH56x:
+		case CHIP_CH56x:
 			fprintf(stderr, "Detected: CH56x\n");
 			break;
-		case CH32V20x:
+		case CHIP_CH32V20x:
 			fprintf(stderr, "Detected: CH32V20x\n");
 			break;
-		case CH32V30x:
+		case CHIP_CH32V30x:
 			fprintf(stderr, "Detected: CH32V30x\n");
 			break;
-		case CH58x:
+		case CHIP_CH58x:
 			fprintf(stderr, "Detected: CH58x\n");
 			break;
-		case CH32V003:
+		case CHIP_CH32V003:
 			fprintf(stderr, "Detected: CH32V003\n");
 			break;
 	}
@@ -44,15 +44,15 @@ static void printChipInfo(enum RiscVChip chip) {
 
 static int checkChip(enum RiscVChip chip) {
 	switch(chip) {
-		case CH32V003:
+		case CHIP_CH32V003:
 			return 0; // Use direct mode
-		case CH32V10x:
-		case CH32V20x:
-		case CH32V30x:
+		case CHIP_CH32V10x:
+		case CHIP_CH32V20x:
+		case CHIP_CH32V30x:
 			return 1; // Use binary blob mode
-		case CH56x:
-		case CH57x:
-		case CH58x:
+		case CHIP_CH56x:
+		case CHIP_CH57x:
+		case CHIP_CH58x:
 		default:
 			return -1; // Not supported yet
 	}
@@ -530,10 +530,10 @@ int bootloader_len = 512;
 static const uint8_t * GetFlashLoader( enum RiscVChip chip )
 {
 	switch(chip) {
-		case CH32V10x:
+		case CHIP_CH32V10x:
 			return bootloader_v1;
-		case CH32V20x:
-		case CH32V30x:
+		case CHIP_CH32V20x:
+		case CHIP_CH32V30x:
 		default:
 			return bootloader_v2;
 	}
-- 
GitLab