From b298f29f143b5d9ebf4c8dda84e991253e4623ab Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sat, 1 Nov 2014 21:03:09 -0500 Subject: [PATCH] auto-sync --- firmware/config/engines/dodge_neon.cpp | 4 +++- firmware/controllers/settings.cpp | 3 ++- firmware/hw_layer/gpio_helper.c | 11 +++++++---- firmware/hw_layer/io_pins.c | 1 - firmware/hw_layer/pin_repository.c | 7 ++++++- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index b2749d047d..fbc3ad5341 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -163,6 +163,8 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat setFuelLoadBin(engineConfiguration, 0, 100); setTimingLoadBin(engineConfiguration, 0, 100); + boardConfiguration->malfunctionIndicatorPin = GPIO_NONE; + /** * D14/W10 O2 Sensor */ @@ -183,7 +185,7 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat boardConfiguration->ignitionPins[2] = GPIOE_8; boardConfiguration->ignitionPins[3] = GPIO_NONE; - boardConfiguration->idleValvePin = GPIOE_5; + boardConfiguration->idleValvePin = GPIO_NONE; boardConfiguration->fuelPumpPin = GPIOE_3; boardConfiguration->fuelPumpPinMode = OM_DEFAULT; diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 0f53d78885..0820f40be5 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -131,7 +131,8 @@ void printConfiguration(engine_configuration_s *engineConfiguration, engine_conf scheduleMsg(&logger, "idlePin: mode %s @ %s", getPin_output_mode_e(boardConfiguration->idleValvePinMode), hwPortname(boardConfiguration->idleValvePin)); - scheduleMsg(&logger, "malfunctionIndicatorPinMode: %s", + scheduleMsg(&logger, "malfunctionIndicatorn: %s mode=%s", + hwPortname(boardConfiguration->malfunctionIndicatorPin), pinModeToString(boardConfiguration->malfunctionIndicatorPinMode)); scheduleMsg(&logger, "fuelPumpPin: mode %s @ %s", getPin_output_mode_e(boardConfiguration->fuelPumpPinMode), diff --git a/firmware/hw_layer/gpio_helper.c b/firmware/hw_layer/gpio_helper.c index bd685bb59f..a7fa767321 100644 --- a/firmware/hw_layer/gpio_helper.c +++ b/firmware/hw_layer/gpio_helper.c @@ -31,11 +31,14 @@ * @brief Initialize the hardware output pin while also assigning it a logical name */ void initOutputPinExt(const char *msg, OutputPin *outputPin, GPIO_TypeDef *port, uint32_t pinNumber, iomode_t mode) { -// if (outputPin->port != NULL) { + if (outputPin->port != NULL) { + /** + * here we check if another physical pin is already assigned to this logical output + */ // todo: need to clear '&outputs' in io_pins.c -// firmwareError("outputPin already assigned to %x%d", outputPin->port, outputPin->pin); -// return; -// } + firmwareError("outputPin already assigned to %x%d", outputPin->port, outputPin->pin); + return; + } outputPin->currentLogicValue = INITIAL_PIN_STATE; outputPin->port = port; outputPin->pin = pinNumber; diff --git a/firmware/hw_layer/io_pins.c b/firmware/hw_layer/io_pins.c index 2ffbf6fb7b..3bf3f279f3 100644 --- a/firmware/hw_layer/io_pins.c +++ b/firmware/hw_layer/io_pins.c @@ -54,7 +54,6 @@ void setDefaultPinState(io_pin_e pin, pin_output_mode_e *outputMode) { setOutputPinValue(pin, FALSE); // initial state } - static void outputPinRegisterExt(const char *msg, io_pin_e ioPin, GPIO_TypeDef *port, uint32_t pin, pin_output_mode_e *outputMode) { efiAssertVoid((int)ioPin < IO_PIN_COUNT, "io pin out of range"); diff --git a/firmware/hw_layer/pin_repository.c b/firmware/hw_layer/pin_repository.c index cd87c760a6..d84f2df33c 100644 --- a/firmware/hw_layer/pin_repository.c +++ b/firmware/hw_layer/pin_repository.c @@ -158,7 +158,12 @@ void mySetPadMode(const char *msg, ioportid_t port, ioportmask_t pin, iomode_t m int index = portIndex * 16 + pin; if (PIN_USED[index] != NULL) { - warning(OBD_PCM_Processor_Fault, "%s%d req by %s used by %s", portname(port), pin, msg, PIN_USED[index]); + /** + * todo: the problem is that this warning happends before the console is even + * connected, so the warning is never displayed on the console and that's quite a problem! + */ +// warning(OBD_PCM_Processor_Fault, "%s%d req by %s used by %s", portname(port), pin, msg, PIN_USED[index]); + firmwareError("%s%d req by %s used by %s", portname(port), pin, msg, PIN_USED[index]); return; } markUsed(index, msg);