Skip to content

Commit 3e200d3

Browse files
committed
Refine flashcode FMC and bootloader linker script selection
Adds conditional linker script selection for several GD32 MCUs when CONFIG_REMOTECONFIG_MINIMUM is set, using MAKE_FLAGS/DEFINES as the source for flag detection. Refactors GD32 FMC flashcode state handling with clearer state names and bank helper functions (lock/unlock/busy/program/erase), adds read/write address and size guards plus alignment assertions, and switches FMC logging to dedicated debug macros. Also fixes H7xx erase-state typo (kEraseProgram), makes write data pointer const-correct, and updates minor debug/copyright details.
1 parent 243631f commit 3e200d3

1 file changed

Lines changed: 25 additions & 4 deletions

File tree

common/make/gd32/Mcu.mk

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ ifndef MCU
44
$(error MCU is not set)
55
endif
66

7+
FLAGS:=$(MAKE_FLAGS)
8+
ifeq ($(FLAGS),)
9+
FLAGS:=$(DEFINES)
10+
endif
11+
712
$(info $$MCU [${MCU}])
813

914
# Extract upper and lower case versions of MCU name
@@ -24,20 +29,32 @@ ifeq ($(strip $(MCU)),GD32F103RC)
2429
endif
2530

2631
ifeq ($(strip $(MCU)),GD32F107RC)
27-
LINKER=$(FIRMWARE_DIR)gd32f107rc_flash.ld
32+
ifeq ($(findstring CONFIG_REMOTECONFIG_MINIMUM,$(FLAGS)),CONFIG_REMOTECONFIG_MINIMUM)
33+
LINKER=$(FIRMWARE_DIR)gd32f107rc-bootloader_flash.ld
34+
else
35+
LINKER=$(FIRMWARE_DIR)gd32f107rc_flash.ld
36+
endif
2837
FAMILY=gd32f10x
2938
LINE=gd32f10x_cl
3039
TARGET=gd32f107.bin
3140
endif
3241

3342
ifeq ($(strip $(MCU)),GD32F207VC)
34-
LINKER=$(FIRMWARE_DIR)gd32f207vc_flash.ld
43+
ifeq ($(findstring CONFIG_REMOTECONFIG_MINIMUM,$(FLAGS)),CONFIG_REMOTECONFIG_MINIMUM)
44+
LINKER=$(FIRMWARE_DIR)gd32f207vc-bootloader_flash.ld
45+
else
46+
LINKER=$(FIRMWARE_DIR)gd32f207vc_flash.ld
47+
endif
3548
FAMILY=gd32f20x
3649
LINE=gd32f20x_cl
3750
endif
3851

3952
ifeq ($(strip $(MCU)),GD32F207RG)
40-
LINKER=$(FIRMWARE_DIR)gd32f207rg_flash.ld
53+
ifeq ($(findstring CONFIG_REMOTECONFIG_MINIMUM,$(FLAGS)),CONFIG_REMOTECONFIG_MINIMUM)
54+
LINKER=$(FIRMWARE_DIR)gd32f207rg-bootloader_flash.ld
55+
else
56+
LINKER=$(FIRMWARE_DIR)gd32f207rg_flash.ld
57+
endif
4158
FAMILY=gd32f20x
4259
LINE=gd32f20x_cl
4360
endif
@@ -50,7 +67,11 @@ ifeq ($(strip $(MCU)),GD32F303RC)
5067
endif
5168

5269
ifeq ($(strip $(MCU)),GD32F407RE)
53-
LINKER=$(FIRMWARE_DIR)gd32f407re_flash.ld
70+
ifeq ($(findstring CONFIG_REMOTECONFIG_MINIMUM,$(FLAGS)),CONFIG_REMOTECONFIG_MINIMUM)
71+
LINKER=$(FIRMWARE_DIR)gd32f407re-bootloader_flash.ld
72+
else
73+
LINKER=$(FIRMWARE_DIR)gd32f407re_flash.ld
74+
endif
5475
FAMILY=gd32f4xx
5576
LINE=gd32f407
5677
endif

0 commit comments

Comments
 (0)