From a3f33f3f0dfd0c75378ab414b3945f3183c7b48f Mon Sep 17 00:00:00 2001 From: andreika-git Date: Fri, 29 Mar 2019 04:46:10 +0200 Subject: [PATCH] More compatibility for ADC_inputs, etc. (#716) * Move STM32-specific ADC pinouts to ports/stm32/stm32_common.cpp * Move STM32-specific files to ports/* * setAdcChannelOverrides() * Add #ifdefs for adc_inputs (PWM_FREQ_*, PWM_PERIOD_*, ADC_*_DEVICE) * addChannel(), removeChannel() * fix tle6240 compilation * Add stm32_common.cpp to Makefile * More ports/stm32/* paths * More ports/stm32/* paths * More flexible GPIO ports * Add #ifdef for GPTDEVICE * EFI_BOARD_TEST and EFI_JOYSTICK * EFI_TLE8888 * Fix HIP9011_logic compilation * ADC_CHANNEL_SENSOR * Move ioportid_t PORTS[] to ports/* * Fix simulator --- firmware/config/boards/NUCLEO_F746/board.h | 1 + firmware/config/boards/NUCLEO_F767/board.h | 1 + .../NUCLEO_F767/board_configuration.cpp | 2 + firmware/config/boards/Prometheus/board.c | 7 + firmware/config/boards/Prometheus/board.h | 1 + firmware/config/boards/ST_STM32F4/board.c | 7 + firmware/config/boards/ST_STM32F4/board.h | 1 + firmware/config/stm32f4ems/efifeatures.h | 3 + firmware/hw_layer/HIP9011_logic.cpp | 1 + firmware/hw_layer/adc_inputs.cpp | 205 ++---------------- firmware/hw_layer/adc_inputs.h | 3 + firmware/hw_layer/board_test.cpp | 4 +- firmware/hw_layer/drivers/gpio/tle6240.c | 2 +- firmware/hw_layer/drivers/gpio/tle8888.cpp | 4 + firmware/hw_layer/hw_layer.mk | 17 +- firmware/hw_layer/io_pins.cpp | 7 +- firmware/hw_layer/joystick.cpp | 4 +- firmware/hw_layer/microsecond_timer.cpp | 2 + firmware/hw_layer/pin_repository.cpp | 30 ++- .../hw_layer/ports/stm32/stm32_common.cpp | 204 +++++++++++++++++ .../hw_layer/ports/stm32/stm32f0/hw_stm32.mk | 4 + .../{ => ports/stm32}/stm32f0/mpu_util.cpp | 0 .../{ => ports/stm32}/stm32f0/mpu_util.h | 0 .../{ => ports/stm32}/stm32f1/mpu_util.cpp | 0 .../{ => ports/stm32}/stm32f1/mpu_util.h | 0 .../hw_layer/ports/stm32/stm32f4/hw_stm32.mk | 4 + .../{ => ports/stm32}/stm32f4/mpu_util.cpp | 0 .../{ => ports/stm32}/stm32f4/mpu_util.h | 0 .../stm32}/stm32f4/stm32f4xx_hal_def.h | 0 .../stm32}/stm32f4/stm32f4xx_hal_flash.c | 0 .../stm32}/stm32f4/stm32f4xx_hal_flash.h | 0 .../stm32}/stm32f4/stm32f4xx_hal_flash_ex.c | 0 .../stm32}/stm32f4/stm32f4xx_hal_flash_ex.h | 0 .../stm32f4/stm32f4xx_hal_flash_ramfunc.h | 0 .../hw_layer/ports/stm32/stm32f7/hw_stm32.mk | 4 + .../{ => ports/stm32}/stm32f7/mpu_util.cpp | 0 .../{ => ports/stm32}/stm32f7/mpu_util.h | 0 .../stm32}/stm32f7/stm32f7xx_hal_def.h | 0 .../stm32}/stm32f7/stm32f7xx_hal_flash.c | 0 .../stm32}/stm32f7/stm32f7xx_hal_flash.h | 0 .../stm32}/stm32f7/stm32f7xx_hal_flash_ex.c | 0 .../stm32}/stm32f7/stm32f7xx_hal_flash_ex.h | 0 firmware/hw_layer/stm32f0/hw_stm32.mk | 4 - firmware/hw_layer/stm32f4/hw_stm32.mk | 4 - firmware/hw_layer/stm32f7/hw_stm32.mk | 4 - firmware/rusefi.mk | 6 +- simulator/simulator/efifeatures.h | 6 +- unit_tests/efifeatures.h | 4 + 48 files changed, 323 insertions(+), 223 deletions(-) create mode 100644 firmware/hw_layer/ports/stm32/stm32_common.cpp create mode 100644 firmware/hw_layer/ports/stm32/stm32f0/hw_stm32.mk rename firmware/hw_layer/{ => ports/stm32}/stm32f0/mpu_util.cpp (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f0/mpu_util.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f1/mpu_util.cpp (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f1/mpu_util.h (100%) create mode 100644 firmware/hw_layer/ports/stm32/stm32f4/hw_stm32.mk rename firmware/hw_layer/{ => ports/stm32}/stm32f4/mpu_util.cpp (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/mpu_util.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/stm32f4xx_hal_def.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/stm32f4xx_hal_flash.c (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/stm32f4xx_hal_flash.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/stm32f4xx_hal_flash_ex.c (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/stm32f4xx_hal_flash_ex.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f4/stm32f4xx_hal_flash_ramfunc.h (100%) create mode 100644 firmware/hw_layer/ports/stm32/stm32f7/hw_stm32.mk rename firmware/hw_layer/{ => ports/stm32}/stm32f7/mpu_util.cpp (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f7/mpu_util.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f7/stm32f7xx_hal_def.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f7/stm32f7xx_hal_flash.c (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f7/stm32f7xx_hal_flash.h (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f7/stm32f7xx_hal_flash_ex.c (100%) rename firmware/hw_layer/{ => ports/stm32}/stm32f7/stm32f7xx_hal_flash_ex.h (100%) delete mode 100644 firmware/hw_layer/stm32f0/hw_stm32.mk delete mode 100644 firmware/hw_layer/stm32f4/hw_stm32.mk delete mode 100644 firmware/hw_layer/stm32f7/hw_stm32.mk diff --git a/firmware/config/boards/NUCLEO_F746/board.h b/firmware/config/boards/NUCLEO_F746/board.h index 5ab9661de6..30c8061e0c 100644 --- a/firmware/config/boards/NUCLEO_F746/board.h +++ b/firmware/config/boards/NUCLEO_F746/board.h @@ -1860,6 +1860,7 @@ extern "C" { void setPinConfigurationOverrides(void); void setSerialConfigurationOverrides(void); void setSdCardConfigurationOverrides(void); + void setAdcChannelOverrides(void); #ifdef __cplusplus } #endif diff --git a/firmware/config/boards/NUCLEO_F767/board.h b/firmware/config/boards/NUCLEO_F767/board.h index 0717132d87..117d5ef964 100644 --- a/firmware/config/boards/NUCLEO_F767/board.h +++ b/firmware/config/boards/NUCLEO_F767/board.h @@ -1865,6 +1865,7 @@ extern "C" { void setPinConfigurationOverrides(void); void setSerialConfigurationOverrides(void); void setSdCardConfigurationOverrides(void); + void setAdcChannelOverrides(void); #ifdef __cplusplus } #endif diff --git a/firmware/config/boards/NUCLEO_F767/board_configuration.cpp b/firmware/config/boards/NUCLEO_F767/board_configuration.cpp index 352240a079..0a9458851d 100644 --- a/firmware/config/boards/NUCLEO_F767/board_configuration.cpp +++ b/firmware/config/boards/NUCLEO_F767/board_configuration.cpp @@ -82,3 +82,5 @@ void setBoardConfigurationOverrides(void) { boardConfiguration->is_enabled_spi_3 = false; } +void setAdcChannelOverrides(void) { +} diff --git a/firmware/config/boards/Prometheus/board.c b/firmware/config/boards/Prometheus/board.c index 14a557a1b0..36f4d0cdd7 100644 --- a/firmware/config/boards/Prometheus/board.c +++ b/firmware/config/boards/Prometheus/board.c @@ -264,6 +264,13 @@ bool mmc_lld_is_write_protected(MMCDriver *mmcp) { void boardInit(void) { } +/** + * @brief Board-specific ADC channel configuration code overrides. + * @todo Add your board-specific code, if any. + */ +void setAdcChannelOverrides(void) { +} + #define PROMETHEUS_LED 13 diff --git a/firmware/config/boards/Prometheus/board.h b/firmware/config/boards/Prometheus/board.h index b2c58f5e53..bcc0a568ba 100644 --- a/firmware/config/boards/Prometheus/board.h +++ b/firmware/config/boards/Prometheus/board.h @@ -1630,6 +1630,7 @@ extern "C" { void setPinConfigurationOverrides(void); void setSerialConfigurationOverrides(void); void setSdCardConfigurationOverrides(void); + void setAdcChannelOverrides(void); #ifdef __cplusplus } #endif diff --git a/firmware/config/boards/ST_STM32F4/board.c b/firmware/config/boards/ST_STM32F4/board.c index f802b76bf8..72c5b7c5c1 100644 --- a/firmware/config/boards/ST_STM32F4/board.c +++ b/firmware/config/boards/ST_STM32F4/board.c @@ -271,3 +271,10 @@ void setSerialConfigurationOverrides(void) { */ void setSdCardConfigurationOverrides(void) { } + +/** + * @brief Board-specific ADC channel configuration code overrides. + * @todo Add your board-specific code, if any. + */ +void setAdcChannelOverrides(void) { +} diff --git a/firmware/config/boards/ST_STM32F4/board.h b/firmware/config/boards/ST_STM32F4/board.h index 183856e2b8..a806c506e2 100644 --- a/firmware/config/boards/ST_STM32F4/board.h +++ b/firmware/config/boards/ST_STM32F4/board.h @@ -1348,6 +1348,7 @@ extern "C" { void setPinConfigurationOverrides(void); void setSerialConfigurationOverrides(void); void setSdCardConfigurationOverrides(void); + void setAdcChannelOverrides(void); #ifdef __cplusplus } #endif diff --git a/firmware/config/stm32f4ems/efifeatures.h b/firmware/config/stm32f4ems/efifeatures.h index 1e7c49b1d3..be13acc428 100644 --- a/firmware/config/stm32f4ems/efifeatures.h +++ b/firmware/config/stm32f4ems/efifeatures.h @@ -371,4 +371,7 @@ */ #define INTERMEDIATE_LOGGING_BUFFER_SIZE 2000 +#define EFI_BOARD_TEST TRUE +#define EFI_JOYSTICK TRUE + #endif /* EFIFEATURES_H_ */ diff --git a/firmware/hw_layer/HIP9011_logic.cpp b/firmware/hw_layer/HIP9011_logic.cpp index 8035cca14f..6bb210e28b 100644 --- a/firmware/hw_layer/HIP9011_logic.cpp +++ b/firmware/hw_layer/HIP9011_logic.cpp @@ -5,6 +5,7 @@ * @author Andrey Belomutskiy, (c) 2012-2019 */ +#include "global.h" #include "HIP9011_logic.h" EXTERN_ENGINE; diff --git a/firmware/hw_layer/adc_inputs.cpp b/firmware/hw_layer/adc_inputs.cpp index cdf9a04f2a..f1cdbbfdf7 100644 --- a/firmware/hw_layer/adc_inputs.cpp +++ b/firmware/hw_layer/adc_inputs.cpp @@ -53,12 +53,15 @@ AdcDevice::AdcDevice(ADCConversionGroup* hwConfig) { memset(internalAdcIndexByHardwareIndex, 0xFFFFFFFF, sizeof(internalAdcIndexByHardwareIndex)); } +#if !defined(PWM_FREQ_SLOW) || !defined(PWM_PERIOD_SLOW) // todo: migrate from hardware timer to software ADC conversion triggering // todo: I guess we would have to use ChibiOS timer and not our own timer because // todo: adcStartConversionI requires OS lock. currently slow ADC is 20Hz #define PWM_FREQ_SLOW 5000 /* PWM clock frequency. I wonder what does this setting mean? */ #define PWM_PERIOD_SLOW 250 /* PWM period (in PWM ticks). */ +#endif /* PWM_FREQ_SLOW PWM_PERIOD_SLOW */ +#if !defined(PWM_FREQ_FAST) || !defined(PWM_PERIOD_FAST) /** * 8000 RPM is 133Hz * If we want to sample MAP once per 5 degrees we need 133Hz * (360 / 5) = 9576Hz of fast ADC @@ -67,12 +70,17 @@ AdcDevice::AdcDevice(ADCConversionGroup* hwConfig) { // todo: continues mode. todo: look into our options #define PWM_FREQ_FAST 100000 /* PWM clock frequency. I wonder what does this setting mean? */ #define PWM_PERIOD_FAST 10 /* PWM period (in PWM ticks). */ +#endif /* PWM_FREQ_FAST PWM_PERIOD_FAST */ // is there a reason to have this configurable? +#ifndef ADC_SLOW_DEVICE #define ADC_SLOW_DEVICE ADCD1 +#endif /* ADC_SLOW_DEVICE */ // is there a reason to have this configurable? +#ifndef ADC_FAST_DEVICE #define ADC_FAST_DEVICE ADCD2 +#endif /* ADC_FAST_DEVICE */ static volatile int slowAdcCounter = 0; static LoggingWithStorage logger("ADC"); @@ -235,12 +243,16 @@ static void pwmpcb_fast(PWMDriver *pwmp) { #endif /* HAL_USE_PWM */ float getMCUInternalTemperature(void) { +#ifdef ADC_CHANNEL_SENSOR float TemperatureValue = adcToVolts(slowAdc.getAdcValueByHwChannel(ADC_CHANNEL_SENSOR)); TemperatureValue -= 0.760; // Subtract the reference voltage at 25°C TemperatureValue /= .0025; // Divide by slope 2.5mV TemperatureValue += 25.0; // Add the 25°C return TemperatureValue; +#else + return 0; +#endif /* ADC_CHANNEL_SENSOR */ } int getInternalAdcValue(const char *msg, adc_channel_e hwChannel) { @@ -290,128 +302,6 @@ static void initAdcPin(brain_pin_e pin, const char *msg) { efiSetPadMode("adc input", pin, PAL_MODE_INPUT_ANALOG); } -brain_pin_e getAdcChannelBrainPin(const char *msg, adc_channel_e hwChannel) { - // todo: replace this with an array :) - switch (hwChannel) { - case EFI_ADC_0: - return GPIOA_0; - case EFI_ADC_1: - return GPIOA_1; - case EFI_ADC_2: - return GPIOA_2; - case EFI_ADC_3: - return GPIOA_3; - case EFI_ADC_4: - return GPIOA_4; - case EFI_ADC_5: - return GPIOA_5; - case EFI_ADC_6: - return GPIOA_6; - case EFI_ADC_7: - return GPIOA_7; - case EFI_ADC_8: - return GPIOB_0; - case EFI_ADC_9: - return GPIOB_1; - case EFI_ADC_10: - return GPIOC_0; - case EFI_ADC_11: - return GPIOC_1; - case EFI_ADC_12: - return GPIOC_2; - case EFI_ADC_13: - return GPIOC_3; - case EFI_ADC_14: - return GPIOC_4; - case EFI_ADC_15: - return GPIOC_5; - default: - firmwareError(CUSTOM_ERR_ADC_UNKNOWN_CHANNEL, "Unknown hw channel %d [%s]", hwChannel, msg); - return GPIO_INVALID; - } -} - -adc_channel_e getAdcChannel(brain_pin_e pin) { - switch (pin) { - case GPIOA_0: - return EFI_ADC_0; - case GPIOA_1: - return EFI_ADC_1; - case GPIOA_2: - return EFI_ADC_2; - case GPIOA_3: - return EFI_ADC_3; - case GPIOA_4: - return EFI_ADC_4; - case GPIOA_5: - return EFI_ADC_5; - case GPIOA_6: - return EFI_ADC_6; - case GPIOA_7: - return EFI_ADC_7; - case GPIOB_0: - return EFI_ADC_8; - case GPIOB_1: - return EFI_ADC_9; - case GPIOC_0: - return EFI_ADC_10; - case GPIOC_1: - return EFI_ADC_11; - case GPIOC_2: - return EFI_ADC_12; - case GPIOC_3: - return EFI_ADC_13; - case GPIOC_4: - return EFI_ADC_14; - case GPIOC_5: - return EFI_ADC_15; - default: - return EFI_ADC_ERROR; - } -} - -// deprecated - migrate to 'getAdcChannelBrainPin' -ioportid_t getAdcChannelPort(const char *msg, adc_channel_e hwChannel) { - // todo: replace this with an array :) - switch (hwChannel) { - case ADC_CHANNEL_IN0: - return GPIOA; - case ADC_CHANNEL_IN1: - return GPIOA; - case ADC_CHANNEL_IN2: - return GPIOA; - case ADC_CHANNEL_IN3: - return GPIOA; - case ADC_CHANNEL_IN4: - return GPIOA; - case ADC_CHANNEL_IN5: - return GPIOA; - case ADC_CHANNEL_IN6: - return GPIOA; - case ADC_CHANNEL_IN7: - return GPIOA; - case ADC_CHANNEL_IN8: - return GPIOB; - case ADC_CHANNEL_IN9: - return GPIOB; - case ADC_CHANNEL_IN10: - return GPIOC; - case ADC_CHANNEL_IN11: - return GPIOC; - case ADC_CHANNEL_IN12: - return GPIOC; - case ADC_CHANNEL_IN13: - return GPIOC; - case ADC_CHANNEL_IN14: - return GPIOC; - case ADC_CHANNEL_IN15: - return GPIOC; - default: - firmwareError(CUSTOM_ERR_ADC_UNKNOWN_CHANNEL, "Unknown hw channel %d [%s]", hwChannel, msg); - return NULL; - } -} - const char * getAdcMode(adc_channel_e hwChannel) { if (slowAdc.isHwUsed(hwChannel)) { return "slow"; @@ -422,49 +312,6 @@ const char * getAdcMode(adc_channel_e hwChannel) { return "INACTIVE - need restart"; } -// deprecated - migrate to 'getAdcChannelBrainPin' -int getAdcChannelPin(adc_channel_e hwChannel) { - // todo: replace this with an array :) - switch (hwChannel) { - case ADC_CHANNEL_IN0: - return 0; - case ADC_CHANNEL_IN1: - return 1; - case ADC_CHANNEL_IN2: - return 2; - case ADC_CHANNEL_IN3: - return 3; - case ADC_CHANNEL_IN4: - return 4; - case ADC_CHANNEL_IN5: - return 5; - case ADC_CHANNEL_IN6: - return 6; - case ADC_CHANNEL_IN7: - return 7; - case ADC_CHANNEL_IN8: - return 0; - case ADC_CHANNEL_IN9: - return 1; - case ADC_CHANNEL_IN10: - return 0; - case ADC_CHANNEL_IN11: - return 1; - case ADC_CHANNEL_IN12: - return 2; - case ADC_CHANNEL_IN13: - return 3; - case ADC_CHANNEL_IN14: - return 4; - case ADC_CHANNEL_IN15: - return 5; - default: - // todo: better error handling, that's input parameter validation - firmwareError(CUSTOM_ERR_ADC_CHANNEL, "Unknown hw channel %d", hwChannel); - return -1; - } -} - static void initAdcHwChannel(adc_channel_e hwChannel) { brain_pin_e pin = getAdcChannelBrainPin("adc", hwChannel); @@ -597,7 +444,7 @@ static void adc_callback_slow(ADCDriver *adcp, adcsample_t *buffer, size_t n) { static char errorMsgBuff[10]; -static void addChannel(const char *name, adc_channel_e setting, adc_channel_mode_e mode) { +void addChannel(const char *name, adc_channel_e setting, adc_channel_mode_e mode) { if (setting == EFI_ADC_NONE) { return; } @@ -610,6 +457,13 @@ static void addChannel(const char *name, adc_channel_e setting, adc_channel_mode adcHwChannelEnabled[setting] = mode; } +void removeChannel(const char *name, adc_channel_e setting) { + if (setting == EFI_ADC_NONE) { + return; + } + adcHwChannelEnabled[setting] = ADC_OFF; +} + static void configureInputs(void) { memset(adcHwChannelEnabled, 0, sizeof(adcHwChannelEnabled)); memset(adcHwChannelUsage, 0, sizeof(adcHwChannelUsage)); @@ -639,6 +493,8 @@ static void configureInputs(void) { for (int i = 0; i < FSIO_ANALOG_INPUT_COUNT ; i++) { addChannel("FSIOadc", engineConfiguration->fsioAdc[i], ADC_SLOW); } + + setAdcChannelOverrides(); } void initAdcInputs(bool boardTestMode) { @@ -694,23 +550,6 @@ void initAdcInputs(bool boardTestMode) { #endif /* HAL_USE_PWM */ } - // ADC_CHANNEL_IN0 // PA0 - // ADC_CHANNEL_IN1 // PA1 - // ADC_CHANNEL_IN2 // PA2 - // ADC_CHANNEL_IN3 // PA3 - // ADC_CHANNEL_IN4 // PA4 - // ADC_CHANNEL_IN5 // PA5 - this is also TIM2_CH1 - // ADC_CHANNEL_IN6 // PA6 - // ADC_CHANNEL_IN7 // PA7 - // ADC_CHANNEL_IN8 // PB0 - // ADC_CHANNEL_IN9 // PB1 - // ADC_CHANNEL_IN10 // PC0 - // ADC_CHANNEL_IN11 // PC1 - // ADC_CHANNEL_IN12 // PC2 - // ADC_CHANNEL_IN13 // PC3 - // ADC_CHANNEL_IN14 // PC4 - // ADC_CHANNEL_IN15 // PC5 - //if(slowAdcChannelCount > ADC_MAX_SLOW_CHANNELS_COUNT) // todo: do we need this logic? do we need this check addConsoleActionI("adc", (VoidInt) printAdcValue); diff --git a/firmware/hw_layer/adc_inputs.h b/firmware/hw_layer/adc_inputs.h index ce81beb37b..b63ec230f3 100644 --- a/firmware/hw_layer/adc_inputs.h +++ b/firmware/hw_layer/adc_inputs.h @@ -38,6 +38,9 @@ void printFullAdcReportIfNeeded(Logging *log); int getInternalAdcValue(const char *msg, adc_channel_e index); float getMCUInternalTemperature(void); +void addChannel(const char *name, adc_channel_e setting, adc_channel_mode_e mode); +void removeChannel(const char *name, adc_channel_e setting); + // max(ADC_BUF_DEPTH_SLOW, ADC_BUF_DEPTH_FAST) #define MAX_ADC_GRP_BUF_DEPTH 8 diff --git a/firmware/hw_layer/board_test.cpp b/firmware/hw_layer/board_test.cpp index cb85bf28b1..24db2d5301 100644 --- a/firmware/hw_layer/board_test.cpp +++ b/firmware/hw_layer/board_test.cpp @@ -23,7 +23,7 @@ #include "global.h" -#if EFI_PROD_CODE +#if EFI_BOARD_TEST #include "engine.h" #include "board_test.h" #include "pin_repository.h" @@ -231,4 +231,4 @@ void initBoardTest(void) { chThdSleepSeconds(1); } } -#endif /* EFI_PROD_CODE */ +#endif /* EFI_BOARD_TEST */ diff --git a/firmware/hw_layer/drivers/gpio/tle6240.c b/firmware/hw_layer/drivers/gpio/tle6240.c index 485ac22861..02b03a32ba 100644 --- a/firmware/hw_layer/drivers/gpio/tle6240.c +++ b/firmware/hw_layer/drivers/gpio/tle6240.c @@ -20,7 +20,7 @@ * @author Andrey Gusakov, (c) 2019 */ -#include +#include "global.h" #include "gpio/gpio_ext.h" #include "gpio/tle6240.h" #include "pin_repository.h" diff --git a/firmware/hw_layer/drivers/gpio/tle8888.cpp b/firmware/hw_layer/drivers/gpio/tle8888.cpp index 7bdf6dcae5..d3cc2aa631 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.cpp +++ b/firmware/hw_layer/drivers/gpio/tle8888.cpp @@ -12,6 +12,8 @@ #include "tle8888.h" #include "hardware.h" +#if EFI_TLE8888 || defined(__DOXYGEN__) + /** * 15.2 SPI Frame Definition * @@ -80,3 +82,5 @@ void initTle8888(DECLARE_ENGINE_PARAMETER_SIGNATURE) { spiUnselect(driver); } + +#endif /* EFI_TLE8888 */ diff --git a/firmware/hw_layer/hw_layer.mk b/firmware/hw_layer/hw_layer.mk index 867018825b..0190ef860c 100644 --- a/firmware/hw_layer/hw_layer.mk +++ b/firmware/hw_layer/hw_layer.mk @@ -34,18 +34,21 @@ HW_LAYER_EMS_CPP = $(HW_LAYER_EGT_CPP) \ $(PROJECT_DIR)/hw_layer/backup_ram.cpp ifeq ($(PROJECT_CPU),ST_STM32F7) -HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/stm32f7/stm32f7xx_hal_flash.c \ - $(PROJECT_DIR)/hw_layer/stm32f7/stm32f7xx_hal_flash_ex.c -HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/stm32f7/mpu_util.cpp +HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash.c \ + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash_ex.c +HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f7/mpu_util.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp endif ifeq ($(PROJECT_CPU),ST_STM32F4) -HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/stm32f4/stm32f4xx_hal_flash.c \ - $(PROJECT_DIR)/hw_layer/stm32f4/stm32f4xx_hal_flash_ex.c -HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/stm32f4/mpu_util.cpp +HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash.c \ + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ex.c +HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f4/mpu_util.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp endif ifeq ($(PROJECT_CPU),ST_STM32F1) -HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/stm32f1/mpu_util.cpp +HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f1/mpu_util.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp endif \ No newline at end of file diff --git a/firmware/hw_layer/io_pins.cpp b/firmware/hw_layer/io_pins.cpp index 92da192bb6..24f4e64eb8 100644 --- a/firmware/hw_layer/io_pins.cpp +++ b/firmware/hw_layer/io_pins.cpp @@ -27,12 +27,7 @@ EXTERN_ENGINE; static LoggingWithStorage logger("io_pins"); extern EnginePins enginePins; - -#if defined(STM32F4XX) || defined(STM32F7XX) -static ioportid_t PORTS[] = { GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH }; -#else -static ioportid_t PORTS[] = { GPIOA, GPIOB, GPIOC, GPIOD, GPIOF}; -#endif /* defined(STM32F4XX) || defined(STM32F7XX) */ +extern ioportid_t PORTS[]; ioportid_t getHwPort(const char *msg, brain_pin_e brainPin) { if (brainPin == GPIO_UNASSIGNED || brainPin == GPIO_INVALID) diff --git a/firmware/hw_layer/joystick.cpp b/firmware/hw_layer/joystick.cpp index 32ccba94c7..5d074cc93f 100644 --- a/firmware/hw_layer/joystick.cpp +++ b/firmware/hw_layer/joystick.cpp @@ -18,7 +18,7 @@ #include "engine.h" -#if (HAL_USE_PAL && EFI_PROD_CODE) || defined(__DOXYGEN__) +#if (HAL_USE_PAL && EFI_JOYSTICK) || defined(__DOXYGEN__) #include "joystick.h" #include "pin_repository.h" #include "digital_input_exti.h" @@ -117,4 +117,4 @@ void initJoystick(Logging *shared) { efiSetPadMode("joy D", CONFIGB(joystickDPin), PAL_MODE_INPUT_PULLUP); } -#endif /* HAL_USE_PAL && EFI_PROD_CODE */ +#endif /* HAL_USE_PAL && EFI_JOYSTICK */ diff --git a/firmware/hw_layer/microsecond_timer.cpp b/firmware/hw_layer/microsecond_timer.cpp index eae0a19c8f..75f6faedb3 100644 --- a/firmware/hw_layer/microsecond_timer.cpp +++ b/firmware/hw_layer/microsecond_timer.cpp @@ -29,7 +29,9 @@ uint32_t maxPrecisionCallbackDuration = 0; // must be one of 32 bit times +#ifndef GPTDEVICE #define GPTDEVICE GPTD5 +#endif /* GPTDEVICE */ static volatile efitick_t lastSetTimerTimeNt; static int lastSetTimerValue; diff --git a/firmware/hw_layer/pin_repository.cpp b/firmware/hw_layer/pin_repository.cpp index 43bfe9450c..995bcbb5b0 100644 --- a/firmware/hw_layer/pin_repository.cpp +++ b/firmware/hw_layer/pin_repository.cpp @@ -20,10 +20,26 @@ static ioportid_t ports[] = {GPIOA, GPIOB, GPIOC, GPIOD, +#if STM32_HAS_GPIOE GPIOE, +#else + nullptr, +#endif /* STM32_HAS_GPIOE */ +#if STM32_HAS_GPIOF GPIOF, +#else + nullptr, +#endif /* STM32_HAS_GPIOF */ +#if STM32_HAS_GPIOG GPIOG, +#else + nullptr, +#endif /* STM32_HAS_GPIOG */ +#if STM32_HAS_GPIOH GPIOH, +#else + nullptr, +#endif /* STM32_HAS_GPIOH */ }; #define PIN_REPO_SIZE (sizeof(ports) / sizeof(ports[0])) * PORT_SIZE @@ -49,20 +65,22 @@ static int getPortIndex(ioportid_t port) { return 2; if (port == GPIOD) return 3; -#if defined(STM32F4XX) || defined(STM32F7XX) +#if STM32_HAS_GPIOE if (port == GPIOE) return 4; -#endif /* defined(STM32F4XX) */ +#endif /* STM32_HAS_GPIOE */ +#if STM32_HAS_GPIOF if (port == GPIOF) return 5; -#if defined(STM32F4XX) || defined(STM32F7XX) +#endif /* STM32_HAS_GPIOF */ +#if STM32_HAS_GPIOG if (port == GPIOG) return 6; -#endif /* defined(STM32F4XX) */ -#if defined(STM32F4XX) || defined(STM32F7XX) +#endif /* STM32_HAS_GPIOG */ +#if STM32_HAS_GPIOH if (port == GPIOH) return 7; -#endif /* defined(STM32F4XX) */ +#endif /* STM32_HAS_GPIOH */ firmwareError(CUSTOM_ERR_UNKNOWN_PORT, "unknown port"); return -1; } diff --git a/firmware/hw_layer/ports/stm32/stm32_common.cpp b/firmware/hw_layer/ports/stm32/stm32_common.cpp new file mode 100644 index 0000000000..a0cacfa969 --- /dev/null +++ b/firmware/hw_layer/ports/stm32/stm32_common.cpp @@ -0,0 +1,204 @@ +/** + * @file stm32_common.cpp + * @brief Low level common STM32 code + * + * @date Mar 28, 2019 + * @author Andrey Belomutskiy, (c) 2012-2019 + */ + +#include "global.h" + +#if EFI_PROD_CODE +extern ioportid_t PORTS[]; +#if defined(STM32F4XX) || defined(STM32F7XX) +ioportid_t PORTS[] = { GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH }; +#else +ioportid_t PORTS[] = { GPIOA, GPIOB, GPIOC, GPIOD, GPIOF}; +#endif /* defined(STM32F4XX) || defined(STM32F7XX) */ +#endif /* EFI_PROD_CODE */ + +#if HAL_USE_ADC || defined(__DOXYGEN__) + +// ADC_CHANNEL_IN0 // PA0 +// ADC_CHANNEL_IN1 // PA1 +// ADC_CHANNEL_IN2 // PA2 +// ADC_CHANNEL_IN3 // PA3 +// ADC_CHANNEL_IN4 // PA4 +// ADC_CHANNEL_IN5 // PA5 - this is also TIM2_CH1 +// ADC_CHANNEL_IN6 // PA6 +// ADC_CHANNEL_IN7 // PA7 +// ADC_CHANNEL_IN8 // PB0 +// ADC_CHANNEL_IN9 // PB1 +// ADC_CHANNEL_IN10 // PC0 +// ADC_CHANNEL_IN11 // PC1 +// ADC_CHANNEL_IN12 // PC2 +// ADC_CHANNEL_IN13 // PC3 +// ADC_CHANNEL_IN14 // PC4 +// ADC_CHANNEL_IN15 // PC5 + +brain_pin_e getAdcChannelBrainPin(const char *msg, adc_channel_e hwChannel) { + // todo: replace this with an array :) + switch (hwChannel) { + case EFI_ADC_0: + return GPIOA_0; + case EFI_ADC_1: + return GPIOA_1; + case EFI_ADC_2: + return GPIOA_2; + case EFI_ADC_3: + return GPIOA_3; + case EFI_ADC_4: + return GPIOA_4; + case EFI_ADC_5: + return GPIOA_5; + case EFI_ADC_6: + return GPIOA_6; + case EFI_ADC_7: + return GPIOA_7; + case EFI_ADC_8: + return GPIOB_0; + case EFI_ADC_9: + return GPIOB_1; + case EFI_ADC_10: + return GPIOC_0; + case EFI_ADC_11: + return GPIOC_1; + case EFI_ADC_12: + return GPIOC_2; + case EFI_ADC_13: + return GPIOC_3; + case EFI_ADC_14: + return GPIOC_4; + case EFI_ADC_15: + return GPIOC_5; + default: + firmwareError(CUSTOM_ERR_ADC_UNKNOWN_CHANNEL, "Unknown hw channel %d [%s]", hwChannel, msg); + return GPIO_INVALID; + } +} + +adc_channel_e getAdcChannel(brain_pin_e pin) { + switch (pin) { + case GPIOA_0: + return EFI_ADC_0; + case GPIOA_1: + return EFI_ADC_1; + case GPIOA_2: + return EFI_ADC_2; + case GPIOA_3: + return EFI_ADC_3; + case GPIOA_4: + return EFI_ADC_4; + case GPIOA_5: + return EFI_ADC_5; + case GPIOA_6: + return EFI_ADC_6; + case GPIOA_7: + return EFI_ADC_7; + case GPIOB_0: + return EFI_ADC_8; + case GPIOB_1: + return EFI_ADC_9; + case GPIOC_0: + return EFI_ADC_10; + case GPIOC_1: + return EFI_ADC_11; + case GPIOC_2: + return EFI_ADC_12; + case GPIOC_3: + return EFI_ADC_13; + case GPIOC_4: + return EFI_ADC_14; + case GPIOC_5: + return EFI_ADC_15; + default: + return EFI_ADC_ERROR; + } +} + +// deprecated - migrate to 'getAdcChannelBrainPin' +ioportid_t getAdcChannelPort(const char *msg, adc_channel_e hwChannel) { + // todo: replace this with an array :) + switch (hwChannel) { + case ADC_CHANNEL_IN0: + return GPIOA; + case ADC_CHANNEL_IN1: + return GPIOA; + case ADC_CHANNEL_IN2: + return GPIOA; + case ADC_CHANNEL_IN3: + return GPIOA; + case ADC_CHANNEL_IN4: + return GPIOA; + case ADC_CHANNEL_IN5: + return GPIOA; + case ADC_CHANNEL_IN6: + return GPIOA; + case ADC_CHANNEL_IN7: + return GPIOA; + case ADC_CHANNEL_IN8: + return GPIOB; + case ADC_CHANNEL_IN9: + return GPIOB; + case ADC_CHANNEL_IN10: + return GPIOC; + case ADC_CHANNEL_IN11: + return GPIOC; + case ADC_CHANNEL_IN12: + return GPIOC; + case ADC_CHANNEL_IN13: + return GPIOC; + case ADC_CHANNEL_IN14: + return GPIOC; + case ADC_CHANNEL_IN15: + return GPIOC; + default: + firmwareError(CUSTOM_ERR_ADC_UNKNOWN_CHANNEL, "Unknown hw channel %d [%s]", hwChannel, msg); + return NULL; + } +} + +// deprecated - migrate to 'getAdcChannelBrainPin' +int getAdcChannelPin(adc_channel_e hwChannel) { + // todo: replace this with an array :) + switch (hwChannel) { + case ADC_CHANNEL_IN0: + return 0; + case ADC_CHANNEL_IN1: + return 1; + case ADC_CHANNEL_IN2: + return 2; + case ADC_CHANNEL_IN3: + return 3; + case ADC_CHANNEL_IN4: + return 4; + case ADC_CHANNEL_IN5: + return 5; + case ADC_CHANNEL_IN6: + return 6; + case ADC_CHANNEL_IN7: + return 7; + case ADC_CHANNEL_IN8: + return 0; + case ADC_CHANNEL_IN9: + return 1; + case ADC_CHANNEL_IN10: + return 0; + case ADC_CHANNEL_IN11: + return 1; + case ADC_CHANNEL_IN12: + return 2; + case ADC_CHANNEL_IN13: + return 3; + case ADC_CHANNEL_IN14: + return 4; + case ADC_CHANNEL_IN15: + return 5; + default: + // todo: better error handling, that's input parameter validation + firmwareError(CUSTOM_ERR_ADC_CHANNEL, "Unknown hw channel %d", hwChannel); + return -1; + } +} + +#endif /* HAL_USE_ADC */ diff --git a/firmware/hw_layer/ports/stm32/stm32f0/hw_stm32.mk b/firmware/hw_layer/ports/stm32/stm32f0/hw_stm32.mk new file mode 100644 index 0000000000..bd24e2a080 --- /dev/null +++ b/firmware/hw_layer/ports/stm32/stm32f0/hw_stm32.mk @@ -0,0 +1,4 @@ + + +HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f0/mpu_util.cpp + \ No newline at end of file diff --git a/firmware/hw_layer/stm32f0/mpu_util.cpp b/firmware/hw_layer/ports/stm32/stm32f0/mpu_util.cpp similarity index 100% rename from firmware/hw_layer/stm32f0/mpu_util.cpp rename to firmware/hw_layer/ports/stm32/stm32f0/mpu_util.cpp diff --git a/firmware/hw_layer/stm32f0/mpu_util.h b/firmware/hw_layer/ports/stm32/stm32f0/mpu_util.h similarity index 100% rename from firmware/hw_layer/stm32f0/mpu_util.h rename to firmware/hw_layer/ports/stm32/stm32f0/mpu_util.h diff --git a/firmware/hw_layer/stm32f1/mpu_util.cpp b/firmware/hw_layer/ports/stm32/stm32f1/mpu_util.cpp similarity index 100% rename from firmware/hw_layer/stm32f1/mpu_util.cpp rename to firmware/hw_layer/ports/stm32/stm32f1/mpu_util.cpp diff --git a/firmware/hw_layer/stm32f1/mpu_util.h b/firmware/hw_layer/ports/stm32/stm32f1/mpu_util.h similarity index 100% rename from firmware/hw_layer/stm32f1/mpu_util.h rename to firmware/hw_layer/ports/stm32/stm32f1/mpu_util.h diff --git a/firmware/hw_layer/ports/stm32/stm32f4/hw_stm32.mk b/firmware/hw_layer/ports/stm32/stm32f4/hw_stm32.mk new file mode 100644 index 0000000000..0f1cb436d2 --- /dev/null +++ b/firmware/hw_layer/ports/stm32/stm32f4/hw_stm32.mk @@ -0,0 +1,4 @@ + + +HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f4/mpu_util.cpp + \ No newline at end of file diff --git a/firmware/hw_layer/stm32f4/mpu_util.cpp b/firmware/hw_layer/ports/stm32/stm32f4/mpu_util.cpp similarity index 100% rename from firmware/hw_layer/stm32f4/mpu_util.cpp rename to firmware/hw_layer/ports/stm32/stm32f4/mpu_util.cpp diff --git a/firmware/hw_layer/stm32f4/mpu_util.h b/firmware/hw_layer/ports/stm32/stm32f4/mpu_util.h similarity index 100% rename from firmware/hw_layer/stm32f4/mpu_util.h rename to firmware/hw_layer/ports/stm32/stm32f4/mpu_util.h diff --git a/firmware/hw_layer/stm32f4/stm32f4xx_hal_def.h b/firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_def.h similarity index 100% rename from firmware/hw_layer/stm32f4/stm32f4xx_hal_def.h rename to firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_def.h diff --git a/firmware/hw_layer/stm32f4/stm32f4xx_hal_flash.c b/firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash.c similarity index 100% rename from firmware/hw_layer/stm32f4/stm32f4xx_hal_flash.c rename to firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash.c diff --git a/firmware/hw_layer/stm32f4/stm32f4xx_hal_flash.h b/firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash.h similarity index 100% rename from firmware/hw_layer/stm32f4/stm32f4xx_hal_flash.h rename to firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash.h diff --git a/firmware/hw_layer/stm32f4/stm32f4xx_hal_flash_ex.c b/firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ex.c similarity index 100% rename from firmware/hw_layer/stm32f4/stm32f4xx_hal_flash_ex.c rename to firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ex.c diff --git a/firmware/hw_layer/stm32f4/stm32f4xx_hal_flash_ex.h b/firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ex.h similarity index 100% rename from firmware/hw_layer/stm32f4/stm32f4xx_hal_flash_ex.h rename to firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ex.h diff --git a/firmware/hw_layer/stm32f4/stm32f4xx_hal_flash_ramfunc.h b/firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ramfunc.h similarity index 100% rename from firmware/hw_layer/stm32f4/stm32f4xx_hal_flash_ramfunc.h rename to firmware/hw_layer/ports/stm32/stm32f4/stm32f4xx_hal_flash_ramfunc.h diff --git a/firmware/hw_layer/ports/stm32/stm32f7/hw_stm32.mk b/firmware/hw_layer/ports/stm32/stm32f7/hw_stm32.mk new file mode 100644 index 0000000000..42067807d7 --- /dev/null +++ b/firmware/hw_layer/ports/stm32/stm32f7/hw_stm32.mk @@ -0,0 +1,4 @@ + + +HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f7/mpu_util.cpp + \ No newline at end of file diff --git a/firmware/hw_layer/stm32f7/mpu_util.cpp b/firmware/hw_layer/ports/stm32/stm32f7/mpu_util.cpp similarity index 100% rename from firmware/hw_layer/stm32f7/mpu_util.cpp rename to firmware/hw_layer/ports/stm32/stm32f7/mpu_util.cpp diff --git a/firmware/hw_layer/stm32f7/mpu_util.h b/firmware/hw_layer/ports/stm32/stm32f7/mpu_util.h similarity index 100% rename from firmware/hw_layer/stm32f7/mpu_util.h rename to firmware/hw_layer/ports/stm32/stm32f7/mpu_util.h diff --git a/firmware/hw_layer/stm32f7/stm32f7xx_hal_def.h b/firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_def.h similarity index 100% rename from firmware/hw_layer/stm32f7/stm32f7xx_hal_def.h rename to firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_def.h diff --git a/firmware/hw_layer/stm32f7/stm32f7xx_hal_flash.c b/firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash.c similarity index 100% rename from firmware/hw_layer/stm32f7/stm32f7xx_hal_flash.c rename to firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash.c diff --git a/firmware/hw_layer/stm32f7/stm32f7xx_hal_flash.h b/firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash.h similarity index 100% rename from firmware/hw_layer/stm32f7/stm32f7xx_hal_flash.h rename to firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash.h diff --git a/firmware/hw_layer/stm32f7/stm32f7xx_hal_flash_ex.c b/firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash_ex.c similarity index 100% rename from firmware/hw_layer/stm32f7/stm32f7xx_hal_flash_ex.c rename to firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash_ex.c diff --git a/firmware/hw_layer/stm32f7/stm32f7xx_hal_flash_ex.h b/firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash_ex.h similarity index 100% rename from firmware/hw_layer/stm32f7/stm32f7xx_hal_flash_ex.h rename to firmware/hw_layer/ports/stm32/stm32f7/stm32f7xx_hal_flash_ex.h diff --git a/firmware/hw_layer/stm32f0/hw_stm32.mk b/firmware/hw_layer/stm32f0/hw_stm32.mk deleted file mode 100644 index fbdfe8ed0b..0000000000 --- a/firmware/hw_layer/stm32f0/hw_stm32.mk +++ /dev/null @@ -1,4 +0,0 @@ - - -HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/stm32f0/mpu_util.cpp - \ No newline at end of file diff --git a/firmware/hw_layer/stm32f4/hw_stm32.mk b/firmware/hw_layer/stm32f4/hw_stm32.mk deleted file mode 100644 index a9bcd38d09..0000000000 --- a/firmware/hw_layer/stm32f4/hw_stm32.mk +++ /dev/null @@ -1,4 +0,0 @@ - - -HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/stm32f4/mpu_util.cpp - \ No newline at end of file diff --git a/firmware/hw_layer/stm32f7/hw_stm32.mk b/firmware/hw_layer/stm32f7/hw_stm32.mk deleted file mode 100644 index 0c0439cf4d..0000000000 --- a/firmware/hw_layer/stm32f7/hw_stm32.mk +++ /dev/null @@ -1,4 +0,0 @@ - - -HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/stm32f7/mpu_util.cpp - \ No newline at end of file diff --git a/firmware/rusefi.mk b/firmware/rusefi.mk index d373d21890..5e40d3c485 100644 --- a/firmware/rusefi.mk +++ b/firmware/rusefi.mk @@ -21,18 +21,18 @@ DDEFS += -D$(PROJECT_CPU) ifeq ($(PROJECT_CPU),ST_STM32F7) CPU_STARTUP = startup_stm32f7xx.mk CPU_PLATFORM = STM32F7xx/platform.mk -CPU_HWLAYER = stm32f7 +CPU_HWLAYER = ports/stm32/stm32f7 endif ifeq ($(PROJECT_CPU),ST_STM32F4) CPU_STARTUP = startup_stm32f4xx.mk CPU_PLATFORM = STM32F4xx/platform.mk -CPU_HWLAYER = stm32f4 +CPU_HWLAYER = ports/stm32/stm32f4 endif ifeq ($(PROJECT_CPU),ST_STM32F1) CPU_STARTUP = startup_stm32f1xx.mk CPU_PLATFORM = STM32F1xx/platform.mk -CPU_HWLAYER = stm32f1 +CPU_HWLAYER = ports/stm32/stm32f1 endif diff --git a/simulator/simulator/efifeatures.h b/simulator/simulator/efifeatures.h index 3d122c42ea..40af3f3797 100644 --- a/simulator/simulator/efifeatures.h +++ b/simulator/simulator/efifeatures.h @@ -69,7 +69,7 @@ #define EFI_IDLE_INCREMENTAL_PID_CIC FALSE #define EFI_MAIN_RELAY_CONTROL FALSE #define EFI_HIP_9011 TRUE -#define EFI_CJ125 TRUE +#define EFI_CJ125 FALSE #define EFI_CAN_SUPPORT FALSE #define EFI_MAX_31855 FALSE #define EFI_TLE8888 FALSE @@ -115,4 +115,8 @@ #define EFI_UNIT_TEST FALSE +#define EFI_BOARD_TEST FALSE +#define EFI_JOYSTICK FALSE + + #endif /* EFIFEATURES_H_ */ diff --git a/unit_tests/efifeatures.h b/unit_tests/efifeatures.h index f2c6b7b3b9..84117bbc7a 100644 --- a/unit_tests/efifeatures.h +++ b/unit_tests/efifeatures.h @@ -55,4 +55,8 @@ #define BOARD_EXT_GPIOCHIPS 3 +#define EFI_BOARD_TEST FALSE +#define EFI_JOYSTICK FALSE + + #endif /* EFIFEATURES_H_ */