diff --git a/firmware/chibios/os/hal/platforms/STM32F4xx/adc_lld.c b/firmware/chibios/os/hal/platforms/STM32F4xx/adc_lld.c index 11bdefb3f0..381cdbd165 100644 --- a/firmware/chibios/os/hal/platforms/STM32F4xx/adc_lld.c +++ b/firmware/chibios/os/hal/platforms/STM32F4xx/adc_lld.c @@ -67,6 +67,8 @@ ADCDriver ADCD3; /* Driver local functions. */ /*===========================================================================*/ +#include "error_handling.h" + /** * @brief ADC DMA ISR service routine. * @@ -75,6 +77,8 @@ ADCDriver ADCD3; */ static void adc_lld_serve_rx_interrupt(ADCDriver *adcp, uint32_t flags) { + efiAssertVoid(getRemainingStack(chThdSelf()) > 32, "sys_adc"); + /* DMA errors handling.*/ if ((flags & (STM32_DMA_ISR_TEIF | STM32_DMA_ISR_DMEIF)) != 0) { /* DMA, this could help only if the DMA tries to access an unmapped diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index d81807a882..d59bf900c5 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -61,7 +61,11 @@ void setDodgeNeon1995EngineConfiguration(engine_configuration_s *engineConfigura // set_cranking_fuel 5 engineConfiguration->crankingSettings.baseCrankingFuel = 5; - // set_whole_fuel_map 3 + /** + * that's 1995 config + */ + + // set_whole_fuel_map 9 setWholeFuelMap(engineConfiguration, 9); setWholeTimingTable(engineConfiguration, 12); @@ -82,8 +86,12 @@ void setDodgeNeon1995EngineConfiguration(engine_configuration_s *engineConfigura // set_injection_offset 510 engineConfiguration->injectionOffset = 510; + /** + * that's 1995 config + */ + // set_cranking_charge_angle 70 - engineConfiguration->crankingChargeAngle = 7; + engineConfiguration->crankingChargeAngle = 70; // set_cranking_timing_angle 0 engineConfiguration->crankingTimingAngle = 0; @@ -142,6 +150,14 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat engineConfiguration->displacement = 1.996; engineConfiguration->cylindersCount = 4; + /** + * that's NGC config + */ + + // set_whole_fuel_map 12 + setWholeFuelMap(engineConfiguration, 12); + setWholeTimingTable(engineConfiguration, 12); + // set_cranking_charge_angle 70 engineConfiguration->crankingChargeAngle = 70; // set_cranking_timing_angle 710 diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 9626b79ee9..e6859658a0 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -431,6 +431,11 @@ static void setWholeTimingMap(float value) { } } +static void setWholeTimingMapCmd(float value) { + scheduleMsg(&logger, "Setting whole timing advance map to %f", value); + setWholeTimingMap(value); +} + static void setWholeFuelMapCmd(float value) { scheduleMsg(&logger, "Setting whole fuel map to %f", value); if (engineConfiguration->algorithm == LM_SPEED_DENSITY) { @@ -713,6 +718,10 @@ static void enableSelfStimulation(void) { scheduleMsg(&logger, "self stimulation enabled"); } +static void stopEngine(void) { + +} + static void disableSelfStimulation(void) { engineConfiguration->directSelfStimulation = false; scheduleMsg(&logger, "self stimulation disabled"); @@ -774,6 +783,7 @@ void initSettings(engine_configuration_s *engineConfiguration) { addConsoleActionI("set_cranking_injection_mode", setCrankingInjectionMode); addConsoleActionI("set_injection_mode", setInjectionMode); + addConsoleActionF("set_whole_timing_map", setWholeTimingMapCmd); addConsoleActionF("set_whole_fuel_map", setWholeFuelMapCmd); addConsoleActionSSS("set_fuel_map", setFuelMap); @@ -783,6 +793,7 @@ void initSettings(engine_configuration_s *engineConfiguration) { addConsoleActionI("set_rpm_hard_limit", setRpmHardLimit); addConsoleActionI("set_firing_order", setFiringOrder); addConsoleActionI("set_algorithm", setAlgorithm); + addConsoleActionI("stopengine", stopEngine); // todo: refactor this - looks like all boolean flags should be controlled with less code duplication addConsoleAction("enable_injection", enableInjection);