From b81c60cf3e5ef6e0128113746beb1d1d6548b85b Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 3 Jul 2019 21:48:04 -0400 Subject: [PATCH] Refactoring: OS access should be explicit #867 --- firmware/console/binary/tunerstudio_io.cpp | 1 + firmware/console/eficonsole.cpp | 2 +- firmware/controllers/algo/event_registry.h | 1 + firmware/controllers/core/error_handling.cpp | 1 - firmware/controllers/engine_controller.cpp | 1 + firmware/controllers/math/speed_density.cpp | 6 +++--- firmware/controllers/scheduling/event_queue.cpp | 1 + .../controllers/scheduling/pwm_generator_logic.cpp | 1 + firmware/controllers/sensors/oil_pressure.cpp | 1 + firmware/controllers/trigger/rpm_calculator.cpp | 1 + firmware/controllers/trigger/spark_logic.cpp | 2 ++ firmware/controllers/trigger/trigger_decoder.cpp | 2 ++ firmware/development/hw_layer/poten.cpp | 1 + firmware/development/sensor_chart.cpp | 1 + firmware/development/test/test.c | 1 + firmware/development/wave_analyzer.cpp | 1 + firmware/global.h | 14 +++----------- firmware/hw_layer/microsecond_timer.cpp | 1 + firmware/hw_layer/pin_repository.cpp | 1 - firmware/hw_layer/rtc_helper.cpp | 1 + firmware/hw_layer/serial_over_usb/usbconsole.c | 2 -- firmware/main.cpp | 1 + firmware/os_access.h | 8 ++++++++ firmware/rusefi.cpp | 1 + firmware/util/datalogging.cpp | 2 +- firmware/util/math/pid.cpp | 1 + firmware/util/math/pid.h | 1 + firmware/util/rfiutil.c | 2 +- unit_tests/os_access.h | 13 +++++++++++++ 29 files changed, 51 insertions(+), 21 deletions(-) create mode 100644 unit_tests/os_access.h diff --git a/firmware/console/binary/tunerstudio_io.cpp b/firmware/console/binary/tunerstudio_io.cpp index 8941fc240e..f56a5318d4 100644 --- a/firmware/console/binary/tunerstudio_io.cpp +++ b/firmware/console/binary/tunerstudio_io.cpp @@ -6,6 +6,7 @@ */ #include "global.h" +#include "os_access.h" #include "tunerstudio_io.h" #include "console_io.h" #include "engine.h" diff --git a/firmware/console/eficonsole.cpp b/firmware/console/eficonsole.cpp index c88fe17ebe..6e477a1b53 100644 --- a/firmware/console/eficonsole.cpp +++ b/firmware/console/eficonsole.cpp @@ -23,7 +23,7 @@ #include #include "global.h" -#include +#include "os_access.h" #include "eficonsole.h" #include "console_io.h" #include "svnversion.h" diff --git a/firmware/controllers/algo/event_registry.h b/firmware/controllers/algo/event_registry.h index 36a3e09ad0..9a5dd2ce64 100644 --- a/firmware/controllers/algo/event_registry.h +++ b/firmware/controllers/algo/event_registry.h @@ -9,6 +9,7 @@ #define EVENT_REGISTRY_H_ #include "global.h" +#include "os_access.h" #include "signal_executor.h" #include "fl_stack.h" #include "trigger_structure.h" diff --git a/firmware/controllers/core/error_handling.cpp b/firmware/controllers/core/error_handling.cpp index f08713161d..630e241843 100644 --- a/firmware/controllers/core/error_handling.cpp +++ b/firmware/controllers/core/error_handling.cpp @@ -12,7 +12,6 @@ #if EFI_SIMULATOR || EFI_PROD_CODE //todo: move into simulator global #include "memstreams.h" -#include static MemoryStream warningStream; static MemoryStream firmwareErrorMessageStream; #endif /* EFI_SIMULATOR || EFI_PROD_CODE */ diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index c54738fb16..a6f1c27861 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -22,6 +22,7 @@ */ #include "global.h" +#include "os_access.h" #if EFI_SENSOR_CHART #include "sensor_chart.h" #endif diff --git a/firmware/controllers/math/speed_density.cpp b/firmware/controllers/math/speed_density.cpp index ce6d2796f7..3a667f7488 100644 --- a/firmware/controllers/math/speed_density.cpp +++ b/firmware/controllers/math/speed_density.cpp @@ -16,9 +16,9 @@ #include "maf2map.h" #include "config_engine_specs.h" -#if defined(HAS_OS_ACCESS) -#error "Unexpected OS ACCESS HERE" -#endif +//todo#if defined(HAS_OS_ACCESS) +//todo#error "Unexpected OS ACCESS HERE" +//todo#endif #define rpmMin 500 #define rpmMax 8000 diff --git a/firmware/controllers/scheduling/event_queue.cpp b/firmware/controllers/scheduling/event_queue.cpp index 5a5173e507..74d54e4e8e 100644 --- a/firmware/controllers/scheduling/event_queue.cpp +++ b/firmware/controllers/scheduling/event_queue.cpp @@ -12,6 +12,7 @@ */ #include "global.h" +#include "os_access.h" #include "event_queue.h" #include "efitime.h" #include "rfiutil.h" diff --git a/firmware/controllers/scheduling/pwm_generator_logic.cpp b/firmware/controllers/scheduling/pwm_generator_logic.cpp index ec613c1081..48ef00eda8 100644 --- a/firmware/controllers/scheduling/pwm_generator_logic.cpp +++ b/firmware/controllers/scheduling/pwm_generator_logic.cpp @@ -9,6 +9,7 @@ */ #include "global.h" +#include "os_access.h" #include "pwm_generator_logic.h" #include "pwm_generator.h" #include "error_handling.h" diff --git a/firmware/controllers/sensors/oil_pressure.cpp b/firmware/controllers/sensors/oil_pressure.cpp index 72a301b0a5..f45301e5f7 100644 --- a/firmware/controllers/sensors/oil_pressure.cpp +++ b/firmware/controllers/sensors/oil_pressure.cpp @@ -2,6 +2,7 @@ * @author Matthew Kennedy, (c) 2017 */ #include "global.h" +#include "os_access.h" #include "oil_pressure.h" #include "interpolation.h" #include "analog_input.h" diff --git a/firmware/controllers/trigger/rpm_calculator.cpp b/firmware/controllers/trigger/rpm_calculator.cpp index bf9ed04abd..e866b19e7e 100644 --- a/firmware/controllers/trigger/rpm_calculator.cpp +++ b/firmware/controllers/trigger/rpm_calculator.cpp @@ -12,6 +12,7 @@ #include "engine.h" #include "rpm_calculator.h" +#include "os_access.h" #include "trigger_central.h" #include "engine_configuration.h" diff --git a/firmware/controllers/trigger/spark_logic.cpp b/firmware/controllers/trigger/spark_logic.cpp index 4b001acab7..f03c566812 100644 --- a/firmware/controllers/trigger/spark_logic.cpp +++ b/firmware/controllers/trigger/spark_logic.cpp @@ -6,6 +6,8 @@ */ #include "engine_math.h" +#include "os_access.h" + #include "utlist.h" #include "event_queue.h" #include "rfiutil.h" diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index 6c4bc469d5..6e8e8838ab 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -19,6 +19,8 @@ */ #include "global.h" +#include "os_access.h" + #include "obd_error_codes.h" #include "trigger_decoder.h" diff --git a/firmware/development/hw_layer/poten.cpp b/firmware/development/hw_layer/poten.cpp index 91e1084a82..ab9d241938 100644 --- a/firmware/development/hw_layer/poten.cpp +++ b/firmware/development/hw_layer/poten.cpp @@ -7,6 +7,7 @@ */ #include "global.h" +#include "os_access.h" #include "poten.h" #include "eficonsole.h" #include "pin_repository.h" diff --git a/firmware/development/sensor_chart.cpp b/firmware/development/sensor_chart.cpp index 0d4ab3c217..f67449c513 100644 --- a/firmware/development/sensor_chart.cpp +++ b/firmware/development/sensor_chart.cpp @@ -7,6 +7,7 @@ #include "sensor_chart.h" #include "global.h" +#include "os_access.h" #include "engine.h" #include "rpm_calculator.h" diff --git a/firmware/development/test/test.c b/firmware/development/test/test.c index 6e4c23856a..df493c829b 100644 --- a/firmware/development/test/test.c +++ b/firmware/development/test/test.c @@ -23,6 +23,7 @@ */ #include "global.h" +#include "os_access.h" #if EFI_PERF_METRICS diff --git a/firmware/development/wave_analyzer.cpp b/firmware/development/wave_analyzer.cpp index d34127805c..45288f8026 100644 --- a/firmware/development/wave_analyzer.cpp +++ b/firmware/development/wave_analyzer.cpp @@ -12,6 +12,7 @@ */ #include "global.h" +#include "os_access.h" #include "wave_analyzer.h" #include "eficonsole.h" #include "data_buffer.h" diff --git a/firmware/global.h b/firmware/global.h index 73679d6b9d..dd6c026b4d 100644 --- a/firmware/global.h +++ b/firmware/global.h @@ -23,6 +23,9 @@ extern "C" // todo: remove these two from here and rely on os_access.h #include #include +#include "chprintf.h" +#include "common_headers.h" +#include "io_pins.h" // this is about MISRA not liking 'time.h'. todo: figure out something #if defined __GNUC__ @@ -36,17 +39,12 @@ typedef unsigned int time_t; #define ALWAYS_INLINE INLINE #endif -#include "common_headers.h" - -#include "io_pins.h" - #ifdef __cplusplus #include "cli_registry.h" #include "eficonsole.h" #endif /* __cplusplus */ -#include "chprintf.h" /* definition to expand macro then apply to pragma message */ #define VALUE_TO_STRING(x) #x @@ -112,12 +110,6 @@ typedef unsigned int time_t; #define getCurrentRemainingStack() getRemainingStack(chThdGetSelfX()) -/* - * Stack debugging - * See also getMaxUsedStack() - */ -int getRemainingStack(thread_t *otp); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/firmware/hw_layer/microsecond_timer.cpp b/firmware/hw_layer/microsecond_timer.cpp index 254e5718cf..648e44564e 100644 --- a/firmware/hw_layer/microsecond_timer.cpp +++ b/firmware/hw_layer/microsecond_timer.cpp @@ -12,6 +12,7 @@ */ #include "global.h" +#include "os_access.h" #include "microsecond_timer.h" #include "scheduler.h" #include "rfiutil.h" diff --git a/firmware/hw_layer/pin_repository.cpp b/firmware/hw_layer/pin_repository.cpp index 79277c0d11..6c53381f3d 100644 --- a/firmware/hw_layer/pin_repository.cpp +++ b/firmware/hw_layer/pin_repository.cpp @@ -14,7 +14,6 @@ #include "pin_repository.h" #include "eficonsole.h" #include "memstreams.h" -#include "chprintf.h" #include "drivers/gpio/gpio_ext.h" #ifndef BOARD_EXT_PINREPOPINS diff --git a/firmware/hw_layer/rtc_helper.cpp b/firmware/hw_layer/rtc_helper.cpp index 946de7eb10..08690b7763 100644 --- a/firmware/hw_layer/rtc_helper.cpp +++ b/firmware/hw_layer/rtc_helper.cpp @@ -9,6 +9,7 @@ #include #include #include "global.h" +#include "os_access.h" #include "rfiutil.h" #include "rtc_helper.h" diff --git a/firmware/hw_layer/serial_over_usb/usbconsole.c b/firmware/hw_layer/serial_over_usb/usbconsole.c index 66edcf6d4b..4577dfa178 100644 --- a/firmware/hw_layer/serial_over_usb/usbconsole.c +++ b/firmware/hw_layer/serial_over_usb/usbconsole.c @@ -13,8 +13,6 @@ #include "usbconsole.h" #include "usbcfg.h" -#include "efifeatures.h" - static bool isUsbSerialInitialized = false; diff --git a/firmware/main.cpp b/firmware/main.cpp index ab8d39064d..ba68d333c9 100644 --- a/firmware/main.cpp +++ b/firmware/main.cpp @@ -8,6 +8,7 @@ */ #include "global.h" +#include "os_access.h" #include "rusefi.h" #include "mpu_util.h" diff --git a/firmware/os_access.h b/firmware/os_access.h index 05a3ee5aa9..23b58bb0a0 100644 --- a/firmware/os_access.h +++ b/firmware/os_access.h @@ -17,6 +17,14 @@ extern "C" #include #include +#include "chprintf.h" +#include "io_pins.h" + +/* + * Stack debugging + * See also getMaxUsedStack() + */ +int getRemainingStack(thread_t *otp); #ifdef __cplusplus } diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 7e5fd9e087..38eaa66934 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -105,6 +105,7 @@ */ #include "global.h" +#include "os_access.h" #include "trigger_structure.h" #include "hardware.h" #include "engine_controller.h" diff --git a/firmware/util/datalogging.cpp b/firmware/util/datalogging.cpp index 901e0b7086..86ebd191a7 100644 --- a/firmware/util/datalogging.cpp +++ b/firmware/util/datalogging.cpp @@ -33,7 +33,7 @@ #include "global.h" #if ! EFI_UNIT_TEST -#include "chprintf.h" +#include "os_access.h" #include "chmtx.h" #include "memstreams.h" #include "console_io.h" diff --git a/firmware/util/math/pid.cpp b/firmware/util/math/pid.cpp index 572ecb35f6..762e17c15e 100644 --- a/firmware/util/math/pid.cpp +++ b/firmware/util/math/pid.cpp @@ -9,6 +9,7 @@ */ #include "pid.h" +#include "os_access.h" #include "math.h" Pid::Pid() { diff --git a/firmware/util/math/pid.h b/firmware/util/math/pid.h index 9cdae8a4a1..c2098ab1b7 100644 --- a/firmware/util/math/pid.h +++ b/firmware/util/math/pid.h @@ -9,6 +9,7 @@ #define PID_H_ #include "global.h" +#include "os_access.h" #include "engine_configuration_generated_structures.h" #if EFI_PROD_CODE || EFI_SIMULATOR diff --git a/firmware/util/rfiutil.c b/firmware/util/rfiutil.c index 0c2c80a32f..52340f1dc6 100644 --- a/firmware/util/rfiutil.c +++ b/firmware/util/rfiutil.c @@ -21,7 +21,6 @@ #include #include "global.h" -#include "rfiutil.h" /* not used, not sure if we still need it. I guess we will remove it in 2015 @@ -57,6 +56,7 @@ #if !EFI_UNIT_TEST #include "os_access.h" +#include "rfiutil.h" void chVTSetAny(virtual_timer_t *vtp, systime_t time, vtfunc_t vtfunc, void *par) { bool wasLocked = lockAnyContext(); diff --git a/unit_tests/os_access.h b/unit_tests/os_access.h new file mode 100644 index 0000000000..9d339687e6 --- /dev/null +++ b/unit_tests/os_access.h @@ -0,0 +1,13 @@ +/* + * os_access.h + * + * It's probably a sign of a problem that this file is needed. + * + * Created on: Jul 3, 2019 + * @author Andrey Belomutskiy, (c) 2012-2019 + */ + +#ifndef OS_ACCESS_H_ +#define OS_ACCESS_H_ + +#endif /* OS_ACCESS_H_ */