From ac16341b2ba26ab6352641d8c02cc457a210f100 Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 21 Apr 2017 17:38:13 -0400 Subject: [PATCH] refactoring - reducing GPIO complexity --- firmware/console/status_loop.cpp | 2 -- firmware/controllers/system/efiGpio.cpp | 14 ++++++++------ firmware/controllers/system/efiGpio.h | 4 +++- simulator/simulator/rusEfiFunctionalTest.cpp | 3 --- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 9f93f2fec8..dae4ddaad0 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -549,12 +549,10 @@ static OutputPin *leds[] = { &enginePins.warningPin, &enginePins.runningPin, &en extern pin_output_mode_e DEFAULT_OUTPUT; static void initStatusLeds(void) { -#if EFI_PROD_CODE || defined(__DOXYGEN__) outputPinRegisterExt2("led: comm status", &enginePins.communicationPin, engineConfiguration->communicationPin, &DEFAULT_OUTPUT); // we initialize this here so that we can blink it on start-up outputPinRegisterExt2("MalfunctionIndicator", &enginePins.checkEnginePin, boardConfiguration->malfunctionIndicatorPin, &DEFAULT_OUTPUT); -#endif #if EFI_WARNING_LED || defined(__DOXYGEN__) outputPinRegisterExt2("led: warning status", &enginePins.warningPin, LED_WARNING_BRAIN_PIN, &DEFAULT_OUTPUT); diff --git a/firmware/controllers/system/efiGpio.cpp b/firmware/controllers/system/efiGpio.cpp index fe42efabaa..54f38aa9de 100644 --- a/firmware/controllers/system/efiGpio.cpp +++ b/firmware/controllers/system/efiGpio.cpp @@ -229,13 +229,8 @@ void initOutputPins(void) { #endif /* EFI_GPIO_HARDWARE */ } -#if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) - -void initPrimaryPins(void) { - outputPinRegisterExt2("led: ERROR status", &enginePins.errorLedPin, LED_ERROR_BRAIN_PIN, &DEFAULT_OUTPUT); -} - void outputPinRegisterExt2(const char *msg, OutputPin *outputPin, brain_pin_e brainPin, pin_output_mode_e *outputMode) { +#if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) if (brainPin == GPIO_UNASSIGNED) return; ioportid_t port = getHwPort(brainPin); @@ -273,6 +268,13 @@ void outputPinRegisterExt2(const char *msg, OutputPin *outputPin, brain_pin_e br mySetPadMode(msg, port, pin, mode); outputPin->setDefaultPinState(outputMode); +#endif /* EFI_GPIO_HARDWARE */ +} + +#if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) + +void initPrimaryPins(void) { + outputPinRegisterExt2("led: ERROR status", &enginePins.errorLedPin, LED_ERROR_BRAIN_PIN, &DEFAULT_OUTPUT); } /** diff --git a/firmware/controllers/system/efiGpio.h b/firmware/controllers/system/efiGpio.h index b8f48b485c..51a439382e 100644 --- a/firmware/controllers/system/efiGpio.h +++ b/firmware/controllers/system/efiGpio.h @@ -32,6 +32,7 @@ public: void setDefaultPinState(pin_output_mode_e *defaultState); bool getLogicValue(); void unregister(); + bool isPinAssigned(); #if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) ioportid_t port; uint8_t pin; @@ -142,9 +143,10 @@ public: void turnPinHigh(NamedOutputPin *output); void turnPinLow(NamedOutputPin *output); -#if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) void outputPinRegisterExt2(const char *msg, OutputPin *output, brain_pin_e brainPin, pin_output_mode_e *outputMode); +#if EFI_GPIO_HARDWARE || defined(__DOXYGEN__) + ioportmask_t getHwPin(brain_pin_e brainPin); ioportid_t getHwPort(brain_pin_e brainPin); const char *portname(ioportid_t GPIOx); diff --git a/simulator/simulator/rusEfiFunctionalTest.cpp b/simulator/simulator/rusEfiFunctionalTest.cpp index 4d884524d9..d85db5626a 100644 --- a/simulator/simulator/rusEfiFunctionalTest.cpp +++ b/simulator/simulator/rusEfiFunctionalTest.cpp @@ -41,9 +41,6 @@ extern WaveChart waveChart; static LoggingWithStorage sharedLogger("simulator"); -void outputPinRegisterExt2(const char *msg, OutputPin *output, brain_pin_e brainPin, pin_output_mode_e *outputMode) { -} - int getRemainingStack(thread_t *otp) { return 99999; }