From 6e287a7c5e190d71cc73ddc2f6fa2745f13f4d6b Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Sat, 7 Aug 2021 09:51:56 +0200 Subject: [PATCH] Cleanup include paths and use linker files from nuclei-sdk --- hw/bsp/gd32vf103_longan_nano/board.mk | 61 +++++++++++++++------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/hw/bsp/gd32vf103_longan_nano/board.mk b/hw/bsp/gd32vf103_longan_nano/board.mk index 0c0c2642..5ab275db 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