From 934baae9b8dd58dd17881ef8ad8bd3428b208b1f Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 19 Mar 2023 17:58:20 +0700 Subject: [PATCH] bsp lpc51 --- .github/workflows/build_arm.yml | 2 +- hw/bsp/lpc51/boards/lpcxpresso51u68/board.mk | 37 +++++++++++++++++++ .../boards}/lpcxpresso51u68/lpcxpresso51u68.c | 0 .../board.mk => lpc51/family.mk} | 19 +++------- 4 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 hw/bsp/lpc51/boards/lpcxpresso51u68/board.mk rename hw/bsp/{ => lpc51/boards}/lpcxpresso51u68/lpcxpresso51u68.c (100%) rename hw/bsp/{lpcxpresso51u68/board.mk => lpc51/family.mk} (74%) diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml index 01b390ac8..2b64e5410 100644 --- a/.github/workflows/build_arm.yml +++ b/.github/workflows/build_arm.yml @@ -36,7 +36,7 @@ jobs: - 'imxrt' - 'kinetis_k32 kinetis_kl' - 'lpc11 lpc13 lpc15 lpc18' - - 'lpc54 lpc55' + - 'lpc51 lpc54 lpc55' - 'mm32 msp432e4' - 'nrf' - 'ra' diff --git a/hw/bsp/lpc51/boards/lpcxpresso51u68/board.mk b/hw/bsp/lpc51/boards/lpcxpresso51u68/board.mk new file mode 100644 index 000000000..27b9b371f --- /dev/null +++ b/hw/bsp/lpc51/boards/lpcxpresso51u68/board.mk @@ -0,0 +1,37 @@ +MCU = LPC51U68 + +CFLAGS += \ + -DCPU_LPC51U68JBD64 \ + -DCFG_TUSB_MEM_SECTION='__attribute__((section(".data")))' + +SRC_C += \ + src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c \ + $(MCU_DIR)/system_LPC51U68.c \ + $(MCU_DIR)/drivers/fsl_clock.c \ + $(MCU_DIR)/drivers/fsl_power.c \ + $(MCU_DIR)/drivers/fsl_reset.c \ + $(SDK_DIR)/drivers/lpc_gpio/fsl_gpio.c \ + $(SDK_DIR)/drivers/flexcomm/fsl_flexcomm.c \ + $(SDK_DIR)/drivers/flexcomm/fsl_usart.c + +INC += \ + $(TOP)/$(MCU_DIR)/../../CMSIS/Include \ + $(TOP)/$(MCU_DIR) \ + $(TOP)/$(MCU_DIR)/drivers \ + $(TOP)/$(SDK_DIR)/drivers/common \ + $(TOP)/$(SDK_DIR)/drivers/flexcomm \ + $(TOP)/$(SDK_DIR)/drivers/lpc_iocon \ + $(TOP)/$(SDK_DIR)/drivers/lpc_gpio + +SRC_S += $(MCU_DIR)/gcc/startup_LPC51U68.S + +LIBS += $(TOP)/$(MCU_DIR)/gcc/libpower.a + +# For freeRTOS port source +FREERTOS_PORTABLE_SRC = $(FREERTOS_PORTABLE_PATH)/ARM_CM0 + +JLINK_DEVICE = LPC51U68 +PYOCD_TARGET = LPC51U68 + +# flash using pyocd (51u68 is not supported yet) +flash: flash-pyocd diff --git a/hw/bsp/lpcxpresso51u68/lpcxpresso51u68.c b/hw/bsp/lpc51/boards/lpcxpresso51u68/lpcxpresso51u68.c similarity index 100% rename from hw/bsp/lpcxpresso51u68/lpcxpresso51u68.c rename to hw/bsp/lpc51/boards/lpcxpresso51u68/lpcxpresso51u68.c diff --git a/hw/bsp/lpcxpresso51u68/board.mk b/hw/bsp/lpc51/family.mk similarity index 74% rename from hw/bsp/lpcxpresso51u68/board.mk rename to hw/bsp/lpc51/family.mk index b1a126c51..8a64f0945 100644 --- a/hw/bsp/lpcxpresso51u68/board.mk +++ b/hw/bsp/lpc51/family.mk @@ -1,27 +1,26 @@ SDK_DIR = hw/mcu/nxp/mcux-sdk DEPS_SUBMODULES += $(SDK_DIR) +MCU_DIR = $(SDK_DIR)/devices/$(MCU) +include $(TOP)/$(BOARD_PATH)/board.mk + CFLAGS += \ -flto \ -mthumb \ -mabi=aapcs \ -mcpu=cortex-m0plus \ - -DCPU_LPC51U68JBD64 \ -DCFG_TUSB_MCU=OPT_MCU_LPC51UXX \ - -DCFG_TUSB_MEM_SECTION='__attribute__((section(".data")))' \ -DCFG_TUSB_MEM_ALIGN='__attribute__((aligned(64)))' # mcu driver cause following warnings CFLAGS += -Wno-error=unused-parameter -MCU_DIR = $(SDK_DIR)/devices/LPC51U68 - # All source paths should be relative to the top level. -LD_FILE = $(MCU_DIR)/gcc/LPC51U68_flash.ld +LD_FILE = $(MCU_DIR)/gcc/$(MCU)_flash.ld SRC_C += \ src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c \ - $(MCU_DIR)/system_LPC51U68.c \ + $(MCU_DIR)/system_$(MCU).c \ $(MCU_DIR)/drivers/fsl_clock.c \ $(MCU_DIR)/drivers/fsl_power.c \ $(MCU_DIR)/drivers/fsl_reset.c \ @@ -38,15 +37,9 @@ INC += \ $(TOP)/$(SDK_DIR)/drivers/lpc_iocon \ $(TOP)/$(SDK_DIR)/drivers/lpc_gpio -SRC_S += $(MCU_DIR)/gcc/startup_LPC51U68.S +SRC_S += $(MCU_DIR)/gcc/startup_$(MCU).S LIBS += $(TOP)/$(MCU_DIR)/gcc/libpower.a # For freeRTOS port source FREERTOS_PORTABLE_SRC = $(FREERTOS_PORTABLE_PATH)/ARM_CM0 - -JLINK_DEVICE = LPC51U68 -PYOCD_TARGET = LPC51U68 - -# flash using pyocd (51u68 is not supported yet) -flash: flash-pyocd