diff --git a/firmware/compile.bat b/firmware/compile.bat index fff5a2835a..208cbfcf43 100644 --- a/firmware/compile.bat +++ b/firmware/compile.bat @@ -36,6 +36,8 @@ rem Generate human-readable version of the .map memory usage report java -jar ../../java_tools/gcc_map_reader.jar > ../rusefi_ram_report.txt cd .. +arm-none-eabi-size --format=berkeley "build\rusefi.elf" + rem file, let's program the board right away flash.bat exit diff --git a/firmware/config/stm32f4ems/efifeatures.h b/firmware/config/stm32f4ems/efifeatures.h index 6f61e3ce53..e0a94daf6d 100644 --- a/firmware/config/stm32f4ems/efifeatures.h +++ b/firmware/config/stm32f4ems/efifeatures.h @@ -10,6 +10,10 @@ #ifndef EFIFEATURES_H_ #define EFIFEATURES_H_ +#define EFI_GPIO TRUE + +#define EFI_FSIO TRUE + #define EFI_USE_CCM TRUE #ifndef EFI_ENABLE_ASSERTS diff --git a/firmware/controllers/algo/io_pins.h b/firmware/controllers/algo/io_pins.h index 6487db5c43..9d43ce7053 100644 --- a/firmware/controllers/algo/io_pins.h +++ b/firmware/controllers/algo/io_pins.h @@ -159,7 +159,11 @@ extern "C" io_pin_e getPinByName(const char *name); void setDefaultPinState(io_pin_e pin, pin_output_mode_e *defaultState); -void turnAllPinsOff(void); +#if EFI_GPIO + void turnAllPinsOff(void); +#else + #define turnAllPinsOff() {} +#endif void outputPinRegisterExt2(const char *msg, io_pin_e ioPin, brain_pin_e brainPin, pin_output_mode_e *outputMode); #ifdef __cplusplus } diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index b94a461e4d..fc3a364666 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -509,9 +509,14 @@ void initEngineContoller(Engine *engine) { chThdCreateStatic(csThreadStack, sizeof(csThreadStack), LOWPRIO, (tfunc_t) csThread, NULL); +#if EFI_ENGINE_CONTROL || defined(__DOXYGEN__) initInjectorCentral(engine); - initPwmTester(); initIgnitionCentral(); +#endif + +#if EFI_PWM_TESTER + initPwmTester(); +#endif /** * This has to go after 'initInjectorCentral' and 'initInjectorCentral' in order to @@ -525,19 +530,19 @@ void initEngineContoller(Engine *engine) { initElectronicThrottle(); #endif /* EFI_ELECTRONIC_THROTTLE_BODY */ -#if EFI_MALFUNCTION_INDICATOR +#if EFI_MALFUNCTION_INDICATOR || defined(__DOXYGEN__) if (engineConfiguration->isMilEnabled) { initMalfunctionIndicator(engine); } #endif /* EFI_MALFUNCTION_INDICATOR */ -#if EFI_MAP_AVERAGING +#if EFI_MAP_AVERAGING || defined(__DOXYGEN__) if (engineConfiguration->isMapAveragingEnabled) { initMapAveraging(engine); } #endif /* EFI_MAP_AVERAGING */ -#if EFI_ENGINE_CONTROL +#if EFI_ENGINE_CONTROL || defined(__DOXYGEN__) if (boardConfiguration->isEngineControlEnabled) { /** * This method initialized the main listener which actually runs injectors & ignition @@ -546,12 +551,10 @@ void initEngineContoller(Engine *engine) { } #endif /* EFI_ENGINE_CONTROL */ -#if EFI_IDLE_CONTROL +#if EFI_IDLE_CONTROL || defined(__DOXYGEN__) if (engineConfiguration->isIdleThreadEnabled) { startIdleThread(engine); } -#else - scheduleMsg(&logger, "no idle control"); #endif #if EFI_FUEL_PUMP diff --git a/firmware/controllers/injector_central.cpp b/firmware/controllers/injector_central.cpp index 8ac3bc4f49..27c6858377 100644 --- a/firmware/controllers/injector_central.cpp +++ b/firmware/controllers/injector_central.cpp @@ -20,8 +20,11 @@ * If not, see . */ -#include "injector_central.h" #include "main.h" + +#if EFI_ENGINE_CONTROL || defined(__DOXYGEN__) + +#include "injector_central.h" #include "io_pins.h" #include "signal_executor.h" #include "main_trigger_callback.h" @@ -231,3 +234,5 @@ void initInjectorCentral(Engine *engine) { addConsoleActionSSSSS("fuelbench2", fuelbench2); addConsoleActionSSSSS("sparkbench2", sparkbench2); } + +#endif diff --git a/firmware/controllers/system/efiGpio.cpp b/firmware/controllers/system/efiGpio.cpp index 0035fa509d..9d8a8ab6fd 100644 --- a/firmware/controllers/system/efiGpio.cpp +++ b/firmware/controllers/system/efiGpio.cpp @@ -6,9 +6,11 @@ */ #include "main.h" +#if EFI_GPIO #include "efiGpio.h" #include "io_pins.h" + // todo: clean this mess, this should become 'static'/private OutputPin outputs[IO_PIN_COUNT]; pin_output_mode_e *pinDefaultState[IO_PIN_COUNT]; @@ -99,3 +101,4 @@ void setOutputPinValue(io_pin_e pin, int logicValue) { doSetOutputPinValue(pin, logicValue); } +#endif /* EFI_GPIO */ diff --git a/firmware/controllers/trigger/trigger_emulator_algo.cpp b/firmware/controllers/trigger/trigger_emulator_algo.cpp index 617c6fcf79..9fe2f1dce2 100644 --- a/firmware/controllers/trigger/trigger_emulator_algo.cpp +++ b/firmware/controllers/trigger/trigger_emulator_algo.cpp @@ -5,6 +5,9 @@ * @author Andrey Belomutskiy, (c) 2012-2014 */ #include "main.h" + +#if EFI_EMULATE_POSITION_SENSORS || defined(__DOXYGEN__) + #include "trigger_emulator_algo.h" #include "engine_configuration.h" #include "LocalVersionHolder.h" @@ -104,8 +107,6 @@ static void updateTriggerShapeIfNeeded(PwmConfig *state) { static TriggerEmulatorHelper helper; -#if EFI_EMULATE_POSITION_SENSORS || defined(__DOXYGEN__) - static void emulatorApplyPinState(PwmConfig *state, int stateIndex) { if (stopEmulationAtIndex == stateIndex) { isEmulating = false; diff --git a/firmware/dump_debug_egt.bat b/firmware/dump_debug_egt.bat new file mode 100644 index 0000000000..28fc269679 --- /dev/null +++ b/firmware/dump_debug_egt.bat @@ -0,0 +1 @@ +arm-none-eabi-objdump -S debug_EGT2CAN/rusefi.elf > debug.dump \ No newline at end of file diff --git a/firmware/hw_layer/io_pins.c b/firmware/hw_layer/io_pins.c index bf7fbf8fb9..e7459e37e2 100644 --- a/firmware/hw_layer/io_pins.c +++ b/firmware/hw_layer/io_pins.c @@ -17,7 +17,7 @@ #include "engine_configuration.h" #include "console_io.h" -#if EFI_ENGINE_CONTROL +#if EFI_ENGINE_CONTROL || defined(__DOXYGEN__) #include "main_trigger_callback.h" #endif /* EFI_ENGINE_CONTROL */ @@ -183,6 +183,8 @@ void initOutputPins(void) { addConsoleActionS("get_pin_value", getPinValue); } +#if EFI_GPIO + static io_pin_e TO_BE_TURNED_OFF_ON_ERROR[] = { SPARKOUT_1_OUTPUT, SPARKOUT_2_OUTPUT, SPARKOUT_3_OUTPUT, SPARKOUT_4_OUTPUT, SPARKOUT_5_OUTPUT, SPARKOUT_6_OUTPUT, SPARKOUT_7_OUTPUT, SPARKOUT_8_OUTPUT, SPARKOUT_9_OUTPUT, SPARKOUT_10_OUTPUT, SPARKOUT_11_OUTPUT, SPARKOUT_12_OUTPUT, @@ -202,4 +204,4 @@ void turnAllPinsOff(void) { turnOutputPinOff(l); } } - +#endif diff --git a/firmware/hw_layer/rtc_helper.c b/firmware/hw_layer/rtc_helper.c index 68efa39b23..35a7dfbfcc 100644 --- a/firmware/hw_layer/rtc_helper.c +++ b/firmware/hw_layer/rtc_helper.c @@ -13,9 +13,9 @@ #include "chrtclib.h" #include "rtc_helper.h" +#if EFI_RTC static Logging logger; -#if EFI_RTC static void date_help(void) { scheduleMsg(&logger, "Usage: date_help"); scheduleMsg(&logger, " date_get"); @@ -130,8 +130,8 @@ static void date_set(char *strDate) { #endif /* EFI_RTC */ void initRtc(void) { - initLogging(&logger, "rtc"); #if EFI_RTC + initLogging(&logger, "rtc"); printMsg(&logger, "initRtc()"); // yes, it's my begin time and we always start from this one 1391894433 - 2014-02-08 21:20:03 diff --git a/unit_tests/efifeatures.h b/unit_tests/efifeatures.h index d3e1f5b818..ee203869fe 100644 --- a/unit_tests/efifeatures.h +++ b/unit_tests/efifeatures.h @@ -10,6 +10,10 @@ #define EFI_ENABLE_ASSERTS TRUE +#define EFI_GPIO TRUE + +#define EFI_FSIO TRUE + #define EFI_HISTOGRAMS TRUE #define EFI_CLI_SUPPORT FALSE diff --git a/win32_functional_tests/simulator/efifeatures.h b/win32_functional_tests/simulator/efifeatures.h index 8da46ba544..aab8aae86e 100644 --- a/win32_functional_tests/simulator/efifeatures.h +++ b/win32_functional_tests/simulator/efifeatures.h @@ -10,6 +10,10 @@ #define EFI_ENABLE_ASSERTS TRUE +#define EFI_GPIO TRUE + +#define EFI_FSIO TRUE + #define EFI_SIMULATOR TRUE #define EFI_SUPPORT_DODGE_NEON TRUE