summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kerkmann <[email protected]>2021-08-07 09:51:56 +0200
committerStefan Kerkmann <[email protected]>2021-08-07 09:51:56 +0200
commit6e287a7c5e190d71cc73ddc2f6fa2745f13f4d6b (patch)
tree7f7fd7e8861df56676674f3fe28aca929a827096
parentb473923f42427bc314519a84e64bb3c3477e8de1 (diff)
Cleanup include paths and use linker files from nuclei-sdk
-rw-r--r--hw/bsp/gd32vf103_longan_nano/board.mk61
1 files changed, 35 insertions, 26 deletions
diff --git a/hw/bsp/gd32vf103_longan_nano/board.mk b/hw/bsp/gd32vf103_longan_nano/board.mk
index 0c0c26427..5ab275dbe 100644
--- a/hw/bsp/gd32vf103_longan_nano/board.mk
+++ b/hw/bsp/gd32vf103_longan_nano/board.mk
@@ -1,51 +1,60 @@
CROSS_COMPILE = riscv32-unknown-elf-
+# Submodules
DEPS_SUBMODULES += hw/mcu/gd/nuclei-sdk
-
NUCLEI_SDK = hw/mcu/gd/nuclei-sdk
-GD32VF103_SDK_SOC_COMMON = $(NUCLEI_SDK)/SoC/gd32vf103/Common
-GD32VF103_SDK_DRIVER = $(GD32VF103_SDK_SOC_COMMON)/Source/Drivers
+
+# Nuclei-SDK paths
+GD32VF103_SDK_SOC = $(NUCLEI_SDK)/SoC/gd32vf103
+GD32VF103_SDK_DRIVER = $(GD32VF103_SDK_SOC)/Common/Source/Drivers
+LONGAN_NANO_SDK_BSP = $(GD32VF103_SDK_SOC)/Board/gd32vf103c_longan_nano
+LINKER_SCRIPTS = $(LONGAN_NANO_SDK_BSP)/Source/GCC
+LIBC_STUBS = $(GD32VF103_SDK_SOC)/Common/Source/Stubs
+STARTUP_ASM = $(GD32VF103_SDK_SOC)/Common/Source/GCC
+
SKIP_NANOLIB = 1
CFLAGS += \
- -march=rv32imac \
- -mabi=ilp32 \
- -mcmodel=medlow \
- -mstrict-align \
- -nostdlib -nostartfiles \
- -DCFG_TUSB_MCU=OPT_MCU_GD32VF103 \
- -DDOWNLOAD_MODE=DOWNLOAD_MODE_FLASHXIP \
- -DGD32VF103
+ -march=rv32imac \
+ -mabi=ilp32 \
+ -mcmodel=medlow \
+ -mstrict-align \
+ -nostdlib -nostartfiles \
+ -DCFG_TUSB_MCU=OPT_MCU_GD32VF103 \
+ -DDOWNLOAD_MODE=DOWNLOAD_MODE_FLASHXIP \
+ -DGD32VF103
# mcu driver cause following warnings
-#CFLAGS += -Wno-error=unused-parameter
+CFLAGS += -Wno-error=unused-parameter
# All source paths should be relative to the top level.
-LD_FILE = hw/bsp/$(BOARD)/gcc_gd32vf103xb_flashxip.ld # Longan Nano 128k ROM 32k RAM
-# LD_FILE = hw/bsp/$(BOARD)/gcc_gd32vf103x8_flashxip.ld # Longan Nano Lite 64k ROM 20k RAM
+LD_FILE = $(LINKER_SCRIPTS)/gcc_gd32vf103xb_flashxip.ld # Longan Nano 128k ROM 32k RAM
+#LD_FILE = $(LINKER_SCRIPTS)/gcc_gd32vf103x8_flashxip.ld # Longan Nano Lite 64k ROM 20k RAM
SRC_C += \
- src/portable/st/synopsys/dcd_synopsys.c \
+ src/portable/st/synopsys/dcd_synopsys.c \
$(GD32VF103_SDK_DRIVER)/gd32vf103_rcu.c \
$(GD32VF103_SDK_DRIVER)/gd32vf103_gpio.c \
$(GD32VF103_SDK_DRIVER)/Usb/gd32vf103_usb_hw.c \
$(GD32VF103_SDK_DRIVER)/gd32vf103_usart.c \
- $(GD32VF103_SDK_SOC_COMMON)/Source/Stubs/sbrk.c \
- $(GD32VF103_SDK_SOC_COMMON)/Source/Stubs/close.c \
- $(GD32VF103_SDK_SOC_COMMON)/Source/Stubs/isatty.c \
- $(GD32VF103_SDK_SOC_COMMON)/Source/Stubs/fstat.c \
- $(GD32VF103_SDK_SOC_COMMON)/Source/Stubs/lseek.c \
- $(GD32VF103_SDK_SOC_COMMON)/Source/Stubs/read.c
+ $(LONGAN_NANO_SDK_BSP)/Source/gd32vf103c_longan_nano.c \
+ $(LIBC_STUBS)/sbrk.c \
+ $(LIBC_STUBS)/close.c \
+ $(LIBC_STUBS)/isatty.c \
+ $(LIBC_STUBS)/fstat.c \
+ $(LIBC_STUBS)/lseek.c \
+ $(LIBC_STUBS)/read.c
SRC_S += \
- $(GD32VF103_SDK_SOC_COMMON)/Source/GCC/startup_gd32vf103.S \
- $(GD32VF103_SDK_SOC_COMMON)/Source/GCC/intexc_gd32vf103.S
+ $(STARTUP_ASM)/startup_gd32vf103.S \
+ $(STARTUP_ASM)/intexc_gd32vf103.S
INC += \
- $(TOP)/hw/bsp/$(BOARD) \
+ $(TOP)/hw/bsp/$(BOARD) \
$(TOP)/$(NUCLEI_SDK)/NMSIS/Core/Include \
- $(TOP)/$(GD32VF103_SDK_SOC_COMMON)/Include \
- $(TOP)/$(GD32VF103_SDK_SOC_COMMON)/Include/Usb \
+ $(TOP)/$(GD32VF103_SDK_SOC)/Common/Include \
+ $(TOP)/$(GD32VF103_SDK_SOC)/Common/Include/Usb \
+ $(TOP)/$(LONGAN_NANO_SDK_BSP)/Include
# For freeRTOS port source
FREERTOS_PORT = RISC-V