From 0d2689415474c86a5e326791c089ab503dcaa183 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 9 Sep 2020 08:52:14 -0400 Subject: [PATCH 1/5] Hellen says merge #1772 tle header --- firmware/hw_layer/drivers/gpio/tle6240.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/firmware/hw_layer/drivers/gpio/tle6240.h b/firmware/hw_layer/drivers/gpio/tle6240.h index bc6e971787..a29e0efa92 100644 --- a/firmware/hw_layer/drivers/gpio/tle6240.h +++ b/firmware/hw_layer/drivers/gpio/tle6240.h @@ -7,8 +7,7 @@ * @author Andrey Belomutskiy, (c) 2012-2020 */ -#ifndef HW_LAYER_TLE6240_H_ -#define HW_LAYER_TLE6240_H_ +#pragma once #include "efifeatures.h" #include @@ -43,4 +42,3 @@ int tle6240_add(unsigned int index, const struct tle6240_config *cfg); } #endif /* __cplusplus */ -#endif /* HW_LAYER_TLE6240_H_ */ From 729bf748eb708298ec52d9c73eedfc9d6dd9a480 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 9 Sep 2020 08:53:11 -0400 Subject: [PATCH 2/5] Hellen says merge #1772 more ports --- firmware/hw_layer/{ => ports/stm32}/backup_ram.cpp | 4 ++++ .../{ => ports/stm32}/serial_over_usb/usbcfg.c | 0 .../{ => ports/stm32}/serial_over_usb/usbcfg.h | 0 .../{ => ports/stm32}/serial_over_usb/usbconsole.c | 0 .../{ => ports/stm32}/serial_over_usb/usbconsole.h | 0 firmware/hw_layer/ports/stm32/stm32f0/hw_ports.mk | 6 ++++-- firmware/hw_layer/ports/stm32/stm32f1/hw_ports.mk | 6 +++++- firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk | 10 +++++++--- firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk | 10 +++++++--- 9 files changed, 27 insertions(+), 9 deletions(-) rename firmware/hw_layer/{ => ports/stm32}/backup_ram.cpp (93%) rename firmware/hw_layer/{ => ports/stm32}/serial_over_usb/usbcfg.c (100%) rename firmware/hw_layer/{ => ports/stm32}/serial_over_usb/usbcfg.h (100%) rename firmware/hw_layer/{ => ports/stm32}/serial_over_usb/usbconsole.c (100%) rename firmware/hw_layer/{ => ports/stm32}/serial_over_usb/usbconsole.h (100%) diff --git a/firmware/hw_layer/backup_ram.cpp b/firmware/hw_layer/ports/stm32/backup_ram.cpp similarity index 93% rename from firmware/hw_layer/backup_ram.cpp rename to firmware/hw_layer/ports/stm32/backup_ram.cpp index 717dca1bb0..ac333fd3e9 100644 --- a/firmware/hw_layer/backup_ram.cpp +++ b/firmware/hw_layer/ports/stm32/backup_ram.cpp @@ -54,3 +54,7 @@ void backupRamSave(backup_ram_e idx, uint32_t value) { } #endif /* HAL_USE_RTC */ } + +void backupRamFlush(void) { + // nothing to do here, in STM32 all data is saved instantaneously +} diff --git a/firmware/hw_layer/serial_over_usb/usbcfg.c b/firmware/hw_layer/ports/stm32/serial_over_usb/usbcfg.c similarity index 100% rename from firmware/hw_layer/serial_over_usb/usbcfg.c rename to firmware/hw_layer/ports/stm32/serial_over_usb/usbcfg.c diff --git a/firmware/hw_layer/serial_over_usb/usbcfg.h b/firmware/hw_layer/ports/stm32/serial_over_usb/usbcfg.h similarity index 100% rename from firmware/hw_layer/serial_over_usb/usbcfg.h rename to firmware/hw_layer/ports/stm32/serial_over_usb/usbcfg.h diff --git a/firmware/hw_layer/serial_over_usb/usbconsole.c b/firmware/hw_layer/ports/stm32/serial_over_usb/usbconsole.c similarity index 100% rename from firmware/hw_layer/serial_over_usb/usbconsole.c rename to firmware/hw_layer/ports/stm32/serial_over_usb/usbconsole.c diff --git a/firmware/hw_layer/serial_over_usb/usbconsole.h b/firmware/hw_layer/ports/stm32/serial_over_usb/usbconsole.h similarity index 100% rename from firmware/hw_layer/serial_over_usb/usbconsole.h rename to firmware/hw_layer/ports/stm32/serial_over_usb/usbconsole.h diff --git a/firmware/hw_layer/ports/stm32/stm32f0/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32f0/hw_ports.mk index bd24e2a080..e0505f9903 100644 --- a/firmware/hw_layer/ports/stm32/stm32f0/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32f0/hw_ports.mk @@ -1,4 +1,6 @@ +HW_LAYER_EGT = $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbcfg.c \ + $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbconsole.c - -HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f0/mpu_util.cpp +HW_STM32_SRC_CPP = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f0/mpu_util.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/backup_ram.cpp \ No newline at end of file diff --git a/firmware/hw_layer/ports/stm32/stm32f1/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32f1/hw_ports.mk index fb4278b501..f701b1bb74 100644 --- a/firmware/hw_layer/ports/stm32/stm32f1/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32f1/hw_ports.mk @@ -1,5 +1,9 @@ +HW_LAYER_EGT = $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbcfg.c \ + $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbconsole.c + HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/ports/stm32/flash.c HW_LAYER_EMS_CPP += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f1/mpu_util.cpp \ $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_pins.cpp \ - $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/backup_ram.cpp diff --git a/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk index 554bf86c1c..05a8cbd8b3 100644 --- a/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk @@ -1,11 +1,15 @@ +HW_LAYER_EGT = $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbcfg.c \ + $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbconsole.c + HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/ports/stm32/flash.c \ $(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_pins.cpp \ - $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp - + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/backup_ram.cpp + RUSEFIASM = $(PROJECT_DIR)/hw_layer/ports/stm32/rusEfiStartup.S -HW_INC += $(PROJECT_DIR)/hw_layer/ports/stm32 +HW_INC += $(PROJECT_DIR)/hw_layer/ports/stm32 $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb diff --git a/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk index 05c5bb2ab5..a3f466a7d1 100644 --- a/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk @@ -1,12 +1,16 @@ +HW_LAYER_EGT = $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbcfg.c \ + $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb/usbconsole.c + HW_LAYER_EMS += $(PROJECT_DIR)/hw_layer/ports/stm32/flash.c \ $(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_pins.cpp \ - $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp - + $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_common.cpp \ + $(PROJECT_DIR)/hw_layer/ports/stm32/backup_ram.cpp + RUSEFIASM = $(PROJECT_DIR)/hw_layer/ports/stm32/rusEfiStartup.S -HW_INC += $(PROJECT_DIR)/hw_layer/ports/stm32 +HW_INC += $(PROJECT_DIR)/hw_layer/ports/stm32 $(PROJECT_DIR)/hw_layer/ports/stm32/serial_over_usb \ No newline at end of file From ed38250fd5247b398a09d71d56509cca0a2b3696 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 9 Sep 2020 10:18:58 -0400 Subject: [PATCH 3/5] Hellen says merge #1772 more about ports --- firmware/hw_layer/hw_layer.mk | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/firmware/hw_layer/hw_layer.mk b/firmware/hw_layer/hw_layer.mk index 8a6493e963..5f01f72121 100644 --- a/firmware/hw_layer/hw_layer.mk +++ b/firmware/hw_layer/hw_layer.mk @@ -1,6 +1,3 @@ -HW_LAYER_EGT = $(PROJECT_DIR)/hw_layer/serial_over_usb/usbcfg.c \ - $(PROJECT_DIR)/hw_layer/serial_over_usb/usbconsole.c - HW_INC = hw_layer/$(CPU_HWLAYER) HW_LAYER_EGT_CPP = $(PROJECT_DIR)/hw_layer/can_hw.cpp \ @@ -35,8 +32,7 @@ HW_LAYER_EMS_CPP = $(HW_LAYER_EGT_CPP) \ $(PROJECT_DIR)/hw_layer/servo.cpp \ $(PROJECT_DIR)/hw_layer/io_pins.cpp \ $(PROJECT_DIR)/hw_layer/rtc_helper.cpp \ - $(PROJECT_DIR)/hw_layer/cdm_ion_sense.cpp \ - $(PROJECT_DIR)/hw_layer/backup_ram.cpp \ + $(PROJECT_DIR)/hw_layer/cdm_ion_sense.cpp # # '-include' is a magic kind of 'include' which would survive if file to be included is not found From 6fdb54d0dc2e79a01c17fda63081a71dbb57d594 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 9 Sep 2020 10:20:21 -0400 Subject: [PATCH 4/5] Hellen says merge #1772 backup ram.h --- firmware/hw_layer/backup_ram.h | 5 +++++ firmware/hw_layer/pin_repository.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/firmware/hw_layer/backup_ram.h b/firmware/hw_layer/backup_ram.h index 7392cc55b4..55919ca1f4 100644 --- a/firmware/hw_layer/backup_ram.h +++ b/firmware/hw_layer/backup_ram.h @@ -35,6 +35,9 @@ typedef enum { BACKUP_CJ125_CALIBRATION_HEATER, DFU_JUMP_REQUESTED, + + /* The number of stored backup variables */ + BACKUP_RAM_NUM, } backup_ram_e; @@ -42,5 +45,7 @@ typedef enum { uint32_t backupRamLoad(backup_ram_e idx); // use backup-power RTC registers (non-volatile memory) to store the data void backupRamSave(backup_ram_e idx, uint32_t value); +// make sure that all changes are saved before we shutdown the MCU +void backupRamFlush(void); #endif /* BACKUP_RAM_H_ */ diff --git a/firmware/hw_layer/pin_repository.cpp b/firmware/hw_layer/pin_repository.cpp index eedaf745f9..fa3c0b5bd1 100644 --- a/firmware/hw_layer/pin_repository.cpp +++ b/firmware/hw_layer/pin_repository.cpp @@ -114,6 +114,7 @@ static void reportPins(void) { static MemoryStream portNameStream; static char portNameBuffer[20]; + const char *hwPortname(brain_pin_e brainPin) { if (brainPin == GPIO_INVALID) { return "INVALID"; @@ -133,6 +134,7 @@ const char *hwPortname(brain_pin_e brainPin) { } #if (BOARD_EXT_GPIOCHIPS > 0) else { + const char *pin_name = gpiochips_getPinName(brainPin); if (pin_name) { From 995795eeb6d45421203240551b5f8df0e28e6424 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 9 Sep 2020 10:21:14 -0400 Subject: [PATCH 5/5] Hellen says merge #1772 trigger h --- firmware/hw_layer/trigger_input.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/firmware/hw_layer/trigger_input.h b/firmware/hw_layer/trigger_input.h index 3a83f46f6b..58f19ac129 100644 --- a/firmware/hw_layer/trigger_input.h +++ b/firmware/hw_layer/trigger_input.h @@ -21,4 +21,17 @@ void applyNewTriggerInputPins(void); void startTriggerInputPins(void); void stopTriggerInputPins(void); +#if HAL_TRIGGER_USE_ADC && HAL_USE_ADC +// This detector has 2 modes for low-RPM (ADC) and fast-RPM (EXTI) +enum triggerAdcMode_t { + TRIGGER_NONE = 0, + TRIGGER_ADC, + TRIGGER_EXTI, +}; + +adc_channel_e getAdcChannelForTrigger(void); +void addAdcChannelForTrigger(void); +void triggerAdcCallback(adcsample_t value); +#endif /* HAL_USE_ADC */ + #endif /* CRANK_INPUT_H_ */