Skip to content

Commit

Permalink
Build PeriphDrivers SPI variants separately
Browse files Browse the repository at this point in the history
- Moves MXC_SPI_VERSION default definition to periphdriver.mk and sets
  default to 'v1'
- Set the PeriphDrivers default build folder and filename based off of
  the SPI version (ex: libPeriphDriver_spi-v1_softfp.a)
- Define MXC_SPI_V2 for v2 builds
  • Loading branch information
Jake-Carter committed Apr 1, 2024
1 parent fb01127 commit 71bf46a
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 31 deletions.
2 changes: 1 addition & 1 deletion Libraries/CMSIS/Device/Maxim/GCC/mxc_version.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#
##############################################################################
# Autogenerated version info for build system.
MSDK_VERSION_STRING := v2024_02-22-g61823d75cf
MSDK_VERSION_STRING := v2024_02-28-gfb01127b4c
MSDK_VERSION_YEAR := 2024
MSDK_VERSION_MONTH := 2

Expand Down
20 changes: 2 additions & 18 deletions Libraries/PeriphDrivers/libPeriphDriver.mk
Original file line number Diff line number Diff line change
Expand Up @@ -34,26 +34,10 @@
#
##############################################################################

# This is the name of the build output file
PROJECT_NAME=libPeriphDriver

# Specify the project variant.
ifeq "$(MFLOAT_ABI)" "hardfp"
PROJECT_VARIANT=hardfp
else
ifeq "$(MFLOAT_ABI)" "hard"
PROJECT_VARIANT=hardfp
else
PROJECT_VARIANT=softfp
endif
endif
PERIPH_DRIVER_LIB_FILENAME ?= libPeriphDriver_$(MFLOAT_ABI)

# Use these to specify the project.
ifeq "$(PROJECT_VARIANT)" ""
override PROJECT=$(PROJECT_NAME)
else
override PROJECT=$(PROJECT_NAME)_$(PROJECT_VARIANT)
endif
override PROJECT = $(PERIPH_DRIVER_LIB_FILENAME)

ifeq "$(TARGET)" ""
$(error TARGET must be specified)
Expand Down
7 changes: 0 additions & 7 deletions Libraries/PeriphDrivers/max32690_files.mk
Original file line number Diff line number Diff line change
Expand Up @@ -125,24 +125,17 @@ PERIPH_DRIVER_INCLUDE_DIR += $(SOURCE_DIR)/SEMA
PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SEMA/sema_me18.c
PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SEMA/sema_reva.c

MXC_SPI_VERSION ?= v1
# Selects the SPI drivers to build with. Acceptable values are:
# - v1
# - v2
PERIPH_DRIVER_INCLUDE_DIR += $(SOURCE_DIR)/SPI
export MXC_SPI_VERSION
ifeq ($(MXC_SPI_VERSION),v1)
# SPI v1 (Legacy) Implementation
PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SPI/spi_me18.c
PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SPI/spi_reva1.c
PROJ_CFLAGS+=-DMXC_SPI_V1
else
ifeq ($(MXC_SPI_VERSION),v2)
# SPI v2 Implementation
PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SPI/spi_me18_v2.c
PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SPI/spi_reva2.c
else
$(error Invalid value for MXC_SPI_VERSION = "$(MXC_SPI_VERSION)" Acceptable values are "v1" or "v2")
endif
endif

Expand Down
27 changes: 23 additions & 4 deletions Libraries/PeriphDrivers/periphdriver.mk
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,24 @@ LIBRARY_VARIANT=softfp
endif
endif

MXC_SPI_VERSION ?= v1
# Selects the SPI drivers to build with. Acceptable values are:
# - v1
# - v2
ifneq "$(MXC_SPI_VERSION)" ""
LIBRARY_VARIANT := spi-$(MXC_SPI_VERSION)_$(LIBRARY_VARIANT)
endif
ifeq "$(MXC_SPI_VERSION)" "v1"
PROJ_CFLAGS+=-DMXC_SPI_V1
else
ifeq "$(MXC_SPI_VERSION)" "v2"
PROJ_CFLAGS+=-DMXC_SPI_V2
else
$(error Invalid value for MXC_SPI_VERSION = "$(MXC_SPI_VERSION)" Acceptable values are "v1" or "v2")
endif
endif


# Specify the build directory if not defined by the project
ifeq "$(BUILD_DIR)" ""
ifeq "$(RISCV_CORE)" ""
Expand All @@ -68,10 +86,11 @@ export COMPILER
include ${PERIPH_DRIVER_DIR}/$(TARGET_LC)_files.mk
IPATH += ${PERIPH_DRIVER_INCLUDE_DIR}
ifeq "$(LIBRARY_VARIANT)" ""
PERIPH_DRIVER_LIB := libPeriphDriver.a
PERIPH_DRIVER_LIB_FILENAME := libPeriphDriver
else
PERIPH_DRIVER_LIB := libPeriphDriver_$(LIBRARY_VARIANT).a
PERIPH_DRIVER_LIB_FILENAME := libPeriphDriver_$(LIBRARY_VARIANT)
endif
PERIPH_DRIVER_LIB := $(PERIPH_DRIVER_LIB_FILENAME).a
# export PERIPH_DRIVER_DIR
export PERIPH_DRIVER_LIB
export PERIPH_DRIVER_BUILD_DIR
Expand All @@ -80,7 +99,7 @@ export PERIPH_DRIVER_BUILD_DIR
LIBS += ${PERIPH_DRIVER_BUILD_DIR}/${PERIPH_DRIVER_LIB}
# Add rule to build the Driver Library
${PERIPH_DRIVER_BUILD_DIR}/${PERIPH_DRIVER_LIB}: ${PERIPH_DRIVER_C_FILES} ${PERIPH_DRIVER_A_FILES} ${PROJECTMK}
@$(MAKE) -f ${PERIPH_DRIVER_DIR}/libPeriphDriver.mk lib BUILD_DIR=${PERIPH_DRIVER_BUILD_DIR} PROJ_CFLAGS="$(PROJ_CFLAGS)" PROJ_LDFLAGS="$(PROJ_LDFLAGS)" MXC_OPTIMIZE_CFLAGS=$(MXC_OPTIMIZE_CFLAGS) MFLOAT_ABI=$(MFLOAT_ABI) DUAL_CORE=$(DUAL_CORE) RISCV_CORE=$(RISCV_CORE) PROJECTMK=$(PROJECTMK)
@$(MAKE) -f ${PERIPH_DRIVER_DIR}/libPeriphDriver.mk lib BUILD_DIR=${PERIPH_DRIVER_BUILD_DIR} PROJ_CFLAGS="$(PROJ_CFLAGS)" PROJ_LDFLAGS="$(PROJ_LDFLAGS)" MXC_OPTIMIZE_CFLAGS=$(MXC_OPTIMIZE_CFLAGS) MFLOAT_ABI=$(MFLOAT_ABI) DUAL_CORE=$(DUAL_CORE) RISCV_CORE=$(RISCV_CORE) PROJECTMK=$(PROJECTMK) PERIPH_DRIVER_LIB_FILENAME=$(PERIPH_DRIVER_LIB_FILENAME)

clean.periph:
@$(MAKE) -f ${PERIPH_DRIVER_DIR}/libPeriphDriver.mk BUILD_DIR=${PERIPH_DRIVER_BUILD_DIR} clean
@$(MAKE) -f ${PERIPH_DRIVER_DIR}/libPeriphDriver.mk BUILD_DIR=${PERIPH_DRIVER_BUILD_DIR} PERIPH_DRIVER_LIB_FILENAME=$(PERIPH_DRIVER_LIB_FILENAME) clean
2 changes: 1 addition & 1 deletion mxc_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
* Format: `[Release tag]-[commits since release tag]-g[commit SHA]`
* If exactly on a release tag, this string will match the tag
*/
#define MSDK_VERSION_STRING "v2024_02-22-g61823d75cf"
#define MSDK_VERSION_STRING "v2024_02-28-gfb01127b4c"
/**
* @brief The month of the current MSDK version
*/
Expand Down

0 comments on commit 71bf46a

Please sign in to comment.