diff --git a/Makefile b/Makefile index 96e1ab8a8f..3fdf458da4 100644 --- a/Makefile +++ b/Makefile @@ -196,6 +196,9 @@ ifneq ($(CONFIG),) TARGET_FLAGS := $(TARGET_FLAGS) -DUSE_CONFIG endif +SPEED_OPTIMISED_SRC := "" +SIZE_OPTIMISED_SRC := "" + include $(TARGET_PLATFORM_DIR)/mk/$(TARGET_MCU_FAMILY).mk # openocd specific includes @@ -464,10 +467,10 @@ $(TARGET_OBJ_DIR)/%.o: %.c $(V1) $(if $(findstring $<,$(NOT_OPTIMISED_SRC)), \ $(call compile_file,not optimised,$(CC_NO_OPTIMISATION)) \ , \ - $(if $(findstring $(subst ./src/main/,,$<),$(SPEED_OPTIMISED_SRC)), \ + $(if $(findstring $(subst ./src/platform/,,$(subst ./src/main/,,$<)),$(SPEED_OPTIMISED_SRC)), \ $(call compile_file,speed optimised,$(CC_SPEED_OPTIMISATION)) \ , \ - $(if $(findstring $(subst ./src/main/,,$<),$(SIZE_OPTIMISED_SRC)), \ + $(if $(findstring $(subst ./src/platform/,,$(subst ./src/main/,,$<)),$(SIZE_OPTIMISED_SRC)), \ $(call compile_file,size optimised,$(CC_SIZE_OPTIMISATION)) \ , \ $(call compile_file,optimised,$(CC_DEFAULT_OPTIMISATION)) \ diff --git a/mk/source.mk b/mk/source.mk index 9a74d5ca8a..86b9110502 100644 --- a/mk/source.mk +++ b/mk/source.mk @@ -82,21 +82,16 @@ COMMON_SRC = \ cli/cli.c \ cli/settings.c \ config/config.c \ - drivers/adc.c \ drivers/dshot.c \ drivers/dshot_dpwm.c \ drivers/dshot_command.c \ drivers/buf_writer.c \ drivers/bus.c \ - drivers/bus_i2c_config.c \ drivers/bus_i2c_busdev.c \ drivers/bus_i2c_utils.c \ drivers/bus_i2c_soft.c \ drivers/bus_octospi.c \ drivers/bus_quadspi.c \ - drivers/bus_spi.c \ - drivers/bus_spi_config.c \ - drivers/bus_spi_pinconfig.c \ drivers/buttons.c \ drivers/camera_control.c \ drivers/display.c \ @@ -111,9 +106,6 @@ COMMON_SRC = \ drivers/resource.c \ drivers/serial.c \ drivers/serial_impl.c \ - drivers/serial_pinconfig.c \ - drivers/serial_uart.c \ - drivers/serial_uart_pinconfig.c \ drivers/serial_uart_hw.c \ drivers/sound_beeper.c \ drivers/stack_check.c \ @@ -236,7 +228,6 @@ COMMON_SRC = \ drivers/rangefinder/rangefinder_hcsr04.c \ drivers/rangefinder/rangefinder_lidartf.c \ drivers/rangefinder/rangefinder_lidarmt.c \ - drivers/serial_escserial.c \ drivers/vtx_common.c \ drivers/vtx_table.c \ io/dashboard.c \ @@ -405,10 +396,7 @@ ifeq ($(SIMULATOR_BUILD),yes) TARGET_FLAGS := -DSIMULATOR_BUILD $(TARGET_FLAGS) endif -SPEED_OPTIMISED_SRC := "" -SIZE_OPTIMISED_SRC := "" - -SPEED_OPTIMISED_SRC := $(SPEED_OPTIMISED_SRC) \ +SPEED_OPTIMISED_SRC += \ common/encoding.c \ common/filter.c \ common/maths.c \ @@ -428,7 +416,6 @@ SPEED_OPTIMISED_SRC := $(SPEED_OPTIMISED_SRC) \ drivers/accgyro_legacy/accgyro_l3gd20.c \ drivers/accgyro_legacy/accgyro_lsm303dlhc.c \ drivers/accgyro_legacy/accgyro_mma845x.c \ - drivers/adc.c \ drivers/buf_writer.c \ drivers/bus.c \ drivers/bus_quadspi.c \ diff --git a/src/platform/APM32/mk/APM32F4.mk b/src/platform/APM32/mk/APM32F4.mk index 3f3f02f508..9792482a40 100644 --- a/src/platform/APM32/mk/APM32F4.mk +++ b/src/platform/APM32/mk/APM32F4.mk @@ -175,6 +175,15 @@ MCU_COMMON_SRC = \ adc_apm32f4xx.c \ dma_apm32f4xx.c \ serial_uart_apm32f4xx.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ system_apm32f4xx.c VCP_SRC = \ @@ -197,7 +206,7 @@ MSC_SRC = \ msc/usbd_storage_sdio.c SPEED_OPTIMISED_SRC += \ - stm32/system.c + common/stm32/system.c DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM4 -DUSE_FULL_DDL_DRIVER diff --git a/src/platform/AT32/mk/AT32F4.mk b/src/platform/AT32/mk/AT32F4.mk index 25d59e9104..89305fe552 100644 --- a/src/platform/AT32/mk/AT32F4.mk +++ b/src/platform/AT32/mk/AT32F4.mk @@ -114,12 +114,19 @@ MCU_COMMON_SRC = \ $(MIDDLEWARES_DIR)/i2c_application_library/i2c_application.c \ drivers/bus_i2c_timing.c \ drivers/usb_msc_common.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ msc/usbd_storage.c \ msc/usbd_storage_emfat.c \ msc/emfat.c \ msc/emfat_file.c SPEED_OPTIMISED_SRC += \ - stm32/system.c - -MCU_EXCLUDES = + common/stm32/system.c diff --git a/src/platform/SITL/mk/SITL.mk b/src/platform/SITL/mk/SITL.mk index d6c92fe215..f9d585d1dd 100644 --- a/src/platform/SITL/mk/SITL.mk +++ b/src/platform/SITL/mk/SITL.mk @@ -18,20 +18,6 @@ MCU_FLASH_SIZE := 2048 ARM_SDK_PREFIX = MCU_EXCLUDES = \ - drivers/adc.c \ - drivers/bus_i2c.c \ - drivers/bus_i2c_config.c \ - drivers/bus_spi.c \ - drivers/bus_spi_config.c \ - drivers/bus_spi_pinconfig.c \ - drivers/dma.c \ - drivers/pwm_output.c \ - drivers/rcc.c \ - drivers/serial_escserial.c \ - drivers/serial_pinconfig.c \ - drivers/serial_uart.c \ - drivers/serial_uart_init.c \ - drivers/serial_uart_pinconfig.c \ drivers/rx/rx_xn297.c \ drivers/display_ug2864hsweg01.c \ telemetry/crsf.c \ diff --git a/src/platform/STM32/mk/STM32F4.mk b/src/platform/STM32/mk/STM32F4.mk index 1e56512e83..ed0274e80a 100644 --- a/src/platform/STM32/mk/STM32F4.mk +++ b/src/platform/STM32/mk/STM32F4.mk @@ -202,10 +202,19 @@ MCU_COMMON_SRC = \ transponder_ir_io_stdperiph.c \ usbd_msc_desc.c \ camera_control_stm32.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ startup/system_stm32f4xx.c SPEED_OPTIMISED_SRC += \ - stm32/system.c + common/stm32/system.c ifeq ($(PERIPH_DRIVER), HAL) VCP_SRC = \ diff --git a/src/platform/STM32/mk/STM32F7.mk b/src/platform/STM32/mk/STM32F7.mk index 942e779a6c..2084b5621a 100644 --- a/src/platform/STM32/mk/STM32F7.mk +++ b/src/platform/STM32/mk/STM32F7.mk @@ -171,11 +171,17 @@ MCU_COMMON_SRC = \ timer_stm32f7xx.c \ transponder_ir_io_hal.c \ camera_control_stm32.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ startup/system_stm32f7xx.c -MCU_EXCLUDES = \ - drivers/bus_i2c.c - MSC_SRC = \ drivers/usb_msc_common.c \ usb_msc_hal.c \ @@ -187,7 +193,7 @@ MSC_SRC = \ msc/usbd_storage_sd_spi.c SPEED_OPTIMISED_SRC += \ - stm32/system.c + common/stm32/system.c DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1 -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM7 diff --git a/src/platform/STM32/mk/STM32G4.mk b/src/platform/STM32/mk/STM32G4.mk index a5c335ac54..923aca727a 100644 --- a/src/platform/STM32/mk/STM32G4.mk +++ b/src/platform/STM32/mk/STM32G4.mk @@ -148,11 +148,17 @@ MCU_COMMON_SRC = \ timer_stm32g4xx.c \ transponder_ir_io_hal.c \ camera_control_stm32.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ startup/system_stm32g4xx.c -MCU_EXCLUDES = \ - drivers/bus_i2c.c - # G4's MSC use the same driver layer file with F7 MSC_SRC = \ drivers/usb_msc_common.c \ @@ -165,7 +171,7 @@ MSC_SRC = \ msc/usbd_storage_sd_spi.c SPEED_OPTIMISED_SRC += \ - stm32/system.c + common/stm32/system.c DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1 -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM4 diff --git a/src/platform/STM32/mk/STM32H5.mk b/src/platform/STM32/mk/STM32H5.mk index 7dad4ac4a4..11cdf5d64c 100644 --- a/src/platform/STM32/mk/STM32H5.mk +++ b/src/platform/STM32/mk/STM32H5.mk @@ -174,6 +174,15 @@ MCU_COMMON_SRC = \ transponder_ir_io_hal.c \ camera_control_stm32.c \ system_stm32h5xx.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ startup/system_stm32h5xx.c # memprot_hal.c \ @@ -184,9 +193,6 @@ MCU_COMMON_SRC = \ # adc_stm32h5xx.c \ # dma_stm32h5xx.c \ -MCU_EXCLUDES = \ - drivers/bus_i2c.c - MSC_SRC = #MSC_SRC = \ usb_msc_hal.c \ @@ -199,7 +205,7 @@ MSC_SRC = msc/usbd_storage_sdio.c SPEED_OPTIMISED_SRC += \ - stm32/system.c + common/stm32/system.c DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM7 diff --git a/src/platform/STM32/mk/STM32H7.mk b/src/platform/STM32/mk/STM32H7.mk index 5c62cf43c4..0639cff249 100644 --- a/src/platform/STM32/mk/STM32H7.mk +++ b/src/platform/STM32/mk/STM32H7.mk @@ -298,11 +298,17 @@ MCU_COMMON_SRC = \ timer_stm32h7xx.c \ transponder_ir_io_hal.c \ camera_control_stm32.c \ + drivers/adc.c \ + drivers/bus_i2c_config.c \ + drivers/bus_spi.c \ + drivers/bus_spi_config.c \ + drivers/bus_spi_pinconfig.c \ + drivers/serial_escserial.c \ + drivers/serial_pinconfig.c \ + drivers/serial_uart.c \ + drivers/serial_uart_pinconfig.c \ startup/system_stm32h7xx.c -MCU_EXCLUDES = \ - drivers/bus_i2c.c - MSC_SRC = \ usb_msc_hal.c \ drivers/usb_msc_common.c \ @@ -314,7 +320,7 @@ MSC_SRC = \ msc/usbd_storage_sdio.c SPEED_OPTIMISED_SRC += \ - stm32/system.c + common/stm32/system.c DSP_LIB := $(ROOT)/lib/main/CMSIS/DSP DEVICE_FLAGS += -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1 -DUNALIGNED_SUPPORT_DISABLE -DARM_MATH_CM7 diff --git a/src/test/Makefile b/src/test/Makefile index 7555a7b8e6..dc508f9bbf 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -177,8 +177,7 @@ gps_conversion_unittest_SRC := \ io_serial_unittest_SRC := \ $(USER_DIR)/io/serial.c \ - $(USER_DIR)/io/serial_resource.c \ - $(USER_DIR)/drivers/serial_pinconfig.c + $(USER_DIR)/io/serial_resource.c ledstrip_unittest_SRC := \ diff --git a/src/test/unit/io_serial_unittest.cc b/src/test/unit/io_serial_unittest.cc index b8dd4bc604..4f5a199894 100644 --- a/src/test/unit/io_serial_unittest.cc +++ b/src/test/unit/io_serial_unittest.cc @@ -36,6 +36,7 @@ extern "C" { void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisable); PG_REGISTER(rxConfig_t, rxConfig, PG_RX_CONFIG, 0); + PG_REGISTER(serialPinConfig_t, serialPinConfig, PG_SERIAL_PIN_CONFIG, 0); } #include "unittest_macros.h"