From ab1cf401e67b3a4885115aec52c6bc4f7d55d658 Mon Sep 17 00:00:00 2001 From: rusefi Date: Tue, 4 Jun 2019 12:27:34 -0400 Subject: [PATCH] extracting hw-specific enums --- firmware/controllers/algo/rusefi_enums.h | 248 ------------------ firmware/controllers/algo/rusefi_hw_enums.h | 246 +++++++++++++++++ firmware/gen_config_board.bat | 10 +- firmware/gen_enum_to_string.bat | 7 +- java_tools/ConfigDefinition.jar | Bin 86107 -> 86117 bytes .../rusefi/board_generator/BoardReader.java | 5 +- 6 files changed, 265 insertions(+), 251 deletions(-) diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 165e29a2ce..694e6e47fa 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -560,53 +560,6 @@ typedef enum __attribute__ ((__packed__)) { SPI_DEVICE_4 = 4, } spi_device_e; - - -/** - * Frankenso analog #1 PC2 ADC12 - * Frankenso analog #2 PC1 ADC11 - * Frankenso analog #3 PA0 ADC0 - * Frankenso analog #4 PC3 ADC13 - * Frankenso analog #5 PA2 ADC2 - * Frankenso analog #6 PA1 ADC1 - * Frankenso analog #7 PA4 ADC4 - * Frankenso analog #8 PA3 ADC3 - * Frankenso analog #9 PA7 ADC7 - * Frankenso analog #10 PA6 ADC6 - * Frankenso analog #11 PC5 ADC15 - * Frankenso analog #12 PC4 ADC14 - */ - -typedef enum __attribute__ ((__packed__)) { - EFI_ADC_0 = 0, // PA0 - EFI_ADC_1 = 1, // PA1 - EFI_ADC_2 = 2, // PA2 - EFI_ADC_3 = 3, // PA3 - EFI_ADC_4 = 4, // PA4 - EFI_ADC_5 = 5, // PA5 - EFI_ADC_6 = 6, // PA6 - EFI_ADC_7 = 7, // PA7 - EFI_ADC_8 = 8, // PB0 - EFI_ADC_9 = 9, // PB1 - EFI_ADC_10 = 10, // PC0 - EFI_ADC_11 = 11, // PC1 - EFI_ADC_12 = 12, // PC2 - EFI_ADC_13 = 13, // PC3 - EFI_ADC_14 = 14, // PC4 - EFI_ADC_15 = 15, // PC5 - - // todo: bad choice of value since now we have ADC_CHANNEL_SENSOR and could end up with 17 and 18 also - EFI_ADC_NONE = 16, - EFI_ADC_ERROR = 17, -#if EFI_UNIT_TEST - TEST_MAF_CHANNEL = 113, - TEST_CLT_CHANNEL = 114, - TEST_IAT_CHANNEL = 115, -#endif -} adc_channel_e; - -#define INCOMPATIBLE_CONFIG_CHANGE EFI_ADC_0 - typedef enum { MS_AUTO = 0, MS_ALWAYS = 1, @@ -639,209 +592,8 @@ typedef enum { Force_4_bytes_size_ego_sensor = ENUM_32_BITS, } ego_sensor_e; -/** - * Hardware pin. This enum is platform-specific. - */ -typedef enum __attribute__ ((__packed__)) { - GPIO_UNASSIGNED = 0, - GPIO_INVALID = 1, - - GPIOA_0 = 2, - GPIOA_1 = 3, - GPIOA_2 = 4, - GPIOA_3 = 5, - GPIOA_4 = 6, - GPIOA_5 = 7, - GPIOA_6 = 8, - GPIOA_7 = 9, - GPIOA_8 = 10, - GPIOA_9 = 11, - GPIOA_10 = 12, - GPIOA_11 = 13, - GPIOA_12 = 14, - GPIOA_13 = 15, - GPIOA_14 = 16, - GPIOA_15 = 17, - - GPIOB_0 = 18, - GPIOB_1 = 19, - GPIOB_2 = 20, - GPIOB_3 = 21, - GPIOB_4 = 22, - GPIOB_5 = 23, - GPIOB_6 = 24, - GPIOB_7 = 25, - GPIOB_8 = 26, - GPIOB_9 = 27, - GPIOB_10 = 28, - GPIOB_11 = 29, - GPIOB_12 = 30, - GPIOB_13 = 31, - GPIOB_14 = 32, - GPIOB_15 = 33, - - GPIOC_0 = 34, - GPIOC_1 = 35, - GPIOC_2 = 36, - GPIOC_3 = 37, - GPIOC_4 = 38, - GPIOC_5 = 39, - GPIOC_6 = 40, - GPIOC_7 = 41, - GPIOC_8 = 42, - GPIOC_9 = 43, - GPIOC_10 = 44, - GPIOC_11 = 45, - GPIOC_12 = 46, - GPIOC_13 = 47, - GPIOC_14 = 48, - GPIOC_15 = 49, - - GPIOD_0 = 50, - GPIOD_1 = 51, - GPIOD_2 = 52, - GPIOD_3 = 53, - GPIOD_4 = 54, - GPIOD_5 = 55, - GPIOD_6 = 56, - GPIOD_7 = 57, - GPIOD_8 = 58, - GPIOD_9 = 59, - GPIOD_10 = 60, - GPIOD_11 = 61, - GPIOD_12 = 62, - GPIOD_13 = 63, - GPIOD_14 = 64, - GPIOD_15 = 65, - - GPIOE_0 = 66, - GPIOE_1 = 67, - GPIOE_2 = 68, - GPIOE_3 = 69, - GPIOE_4 = 70, - GPIOE_5 = 71, - GPIOE_6 = 72, - GPIOE_7 = 73, - GPIOE_8 = 74, - GPIOE_9 = 75, - GPIOE_10 = 76, - GPIOE_11 = 77, - GPIOE_12 = 78, - GPIOE_13 = 79, - GPIOE_14 = 80, - GPIOE_15 = 81, - - GPIOF_0 = 82, - GPIOF_1 = 83, - GPIOF_2 = 84, - GPIOF_3 = 85, - GPIOF_4 = 86, - GPIOF_5 = 87, - GPIOF_6 = 88, - GPIOF_7 = 89, - GPIOF_8 = 90, - GPIOF_9 = 91, - GPIOF_10 = 92, - GPIOF_11 = 93, - GPIOF_12 = 94, - GPIOF_13 = 95, - GPIOF_14 = 96, - GPIOF_15 = 97, - - GPIOG_0 = 98, - GPIOG_1 = 99, - GPIOG_2 = 100, - GPIOG_3 = 101, - GPIOG_4 = 102, - GPIOG_5 = 103, - GPIOG_6 = 104, - GPIOG_7 = 105, - GPIOG_8 = 106, - GPIOG_9 = 107, - GPIOG_10 = 108, - GPIOG_11 = 109, - GPIOG_12 = 110, - GPIOG_13 = 111, - GPIOG_14 = 112, - GPIOG_15 = 113, - - GPIOH_0 = 114, - GPIOH_1 = 115, - GPIOH_2 = 116, - GPIOH_3 = 117, - GPIOH_4 = 118, - GPIOH_5 = 119, - GPIOH_6 = 120, - GPIOH_7 = 121, - GPIOH_8 = 122, - GPIOH_9 = 123, - GPIOH_10 = 124, - GPIOH_11 = 125, - GPIOH_12 = 126, - GPIOH_13 = 127, - GPIOH_14 = 128, - GPIOH_15 = 129, - - /* TLE6240 pins go right after on chips */ - //#define TLE6240_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + (n))) - TLE6240_PIN_1 = 130, - TLE6240_PIN_2 = 131, - TLE6240_PIN_3 = 132, - TLE6240_PIN_4 = 133, - TLE6240_PIN_5 = 134, - TLE6240_PIN_6 = 135, - TLE6240_PIN_7 = 136, - TLE6240_PIN_8 = 137, - TLE6240_PIN_9 = 138, - TLE6240_PIN_10 = 139, - TLE6240_PIN_11 = 140, - TLE6240_PIN_12 = 141, - TLE6240_PIN_13 = 142, - TLE6240_PIN_14 = 143, - TLE6240_PIN_15 = 144, - TLE6240_PIN_16 = 145, - - /* MC33972 pins go right after TLE6240 */ - //#define MC33972_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + 16 + (n))) - MC33972_PIN_1 = 146, - MC33972_PIN_21 = 166, - MC33972_PIN_22 = 167, - - TLE8888_PIN_1 = 168, - TLE8888_PIN_2 = 169, - TLE8888_PIN_3 = 170, - TLE8888_PIN_4 = 171, - TLE8888_PIN_5 = 172, - TLE8888_PIN_6 = 173, - TLE8888_PIN_7 = 174, - TLE8888_PIN_8 = 175, - TLE8888_PIN_9 = 176, - TLE8888_PIN_10 = 177, - TLE8888_PIN_11 = 178, - TLE8888_PIN_12 = 179, - TLE8888_PIN_13 = 180, - TLE8888_PIN_14 = 181, - TLE8888_PIN_15 = 182, - TLE8888_PIN_16 = 183, - TLE8888_PIN_17 = 184, - TLE8888_PIN_18 = 185, - TLE8888_PIN_19 = 186, - TLE8888_PIN_20 = 187, - TLE8888_PIN_21 = 188, - TLE8888_PIN_22 = 189, - TLE8888_PIN_23 = 190, - TLE8888_PIN_24 = 191, - TLE8888_PIN_25 = 192, - TLE8888_PIN_26 = 193, - TLE8888_PIN_27 = 194, - TLE8888_PIN_28 = 195, -} brain_pin_e; - typedef brain_pin_e output_pin_e; -/* Plase keep updating this define */ -#define BRAIN_PIN_LAST_ONCHIP GPIOH_15 - /** * https://rusefi.com//wiki/index.php?title=Manual:Debug_fields */ diff --git a/firmware/controllers/algo/rusefi_hw_enums.h b/firmware/controllers/algo/rusefi_hw_enums.h index 75c79c3c19..c4b421d9c6 100644 --- a/firmware/controllers/algo/rusefi_hw_enums.h +++ b/firmware/controllers/algo/rusefi_hw_enums.h @@ -18,4 +18,250 @@ typedef enum __attribute__ ((__packed__)) { PO_PULLDOWN = 64 // PAL_STM32_PUPDR_PULLDOWN } pin_mode_e; +/** + * Hardware pin. This enum is platform-specific. + */ +typedef enum __attribute__ ((__packed__)) { + GPIO_UNASSIGNED = 0, + GPIO_INVALID = 1, + + GPIOA_0 = 2, + GPIOA_1 = 3, + GPIOA_2 = 4, + GPIOA_3 = 5, + GPIOA_4 = 6, + GPIOA_5 = 7, + GPIOA_6 = 8, + GPIOA_7 = 9, + GPIOA_8 = 10, + GPIOA_9 = 11, + GPIOA_10 = 12, + GPIOA_11 = 13, + GPIOA_12 = 14, + GPIOA_13 = 15, + GPIOA_14 = 16, + GPIOA_15 = 17, + + GPIOB_0 = 18, + GPIOB_1 = 19, + GPIOB_2 = 20, + GPIOB_3 = 21, + GPIOB_4 = 22, + GPIOB_5 = 23, + GPIOB_6 = 24, + GPIOB_7 = 25, + GPIOB_8 = 26, + GPIOB_9 = 27, + GPIOB_10 = 28, + GPIOB_11 = 29, + GPIOB_12 = 30, + GPIOB_13 = 31, + GPIOB_14 = 32, + GPIOB_15 = 33, + + GPIOC_0 = 34, + GPIOC_1 = 35, + GPIOC_2 = 36, + GPIOC_3 = 37, + GPIOC_4 = 38, + GPIOC_5 = 39, + GPIOC_6 = 40, + GPIOC_7 = 41, + GPIOC_8 = 42, + GPIOC_9 = 43, + GPIOC_10 = 44, + GPIOC_11 = 45, + GPIOC_12 = 46, + GPIOC_13 = 47, + GPIOC_14 = 48, + GPIOC_15 = 49, + + GPIOD_0 = 50, + GPIOD_1 = 51, + GPIOD_2 = 52, + GPIOD_3 = 53, + GPIOD_4 = 54, + GPIOD_5 = 55, + GPIOD_6 = 56, + GPIOD_7 = 57, + GPIOD_8 = 58, + GPIOD_9 = 59, + GPIOD_10 = 60, + GPIOD_11 = 61, + GPIOD_12 = 62, + GPIOD_13 = 63, + GPIOD_14 = 64, + GPIOD_15 = 65, + + GPIOE_0 = 66, + GPIOE_1 = 67, + GPIOE_2 = 68, + GPIOE_3 = 69, + GPIOE_4 = 70, + GPIOE_5 = 71, + GPIOE_6 = 72, + GPIOE_7 = 73, + GPIOE_8 = 74, + GPIOE_9 = 75, + GPIOE_10 = 76, + GPIOE_11 = 77, + GPIOE_12 = 78, + GPIOE_13 = 79, + GPIOE_14 = 80, + GPIOE_15 = 81, + + GPIOF_0 = 82, + GPIOF_1 = 83, + GPIOF_2 = 84, + GPIOF_3 = 85, + GPIOF_4 = 86, + GPIOF_5 = 87, + GPIOF_6 = 88, + GPIOF_7 = 89, + GPIOF_8 = 90, + GPIOF_9 = 91, + GPIOF_10 = 92, + GPIOF_11 = 93, + GPIOF_12 = 94, + GPIOF_13 = 95, + GPIOF_14 = 96, + GPIOF_15 = 97, + + GPIOG_0 = 98, + GPIOG_1 = 99, + GPIOG_2 = 100, + GPIOG_3 = 101, + GPIOG_4 = 102, + GPIOG_5 = 103, + GPIOG_6 = 104, + GPIOG_7 = 105, + GPIOG_8 = 106, + GPIOG_9 = 107, + GPIOG_10 = 108, + GPIOG_11 = 109, + GPIOG_12 = 110, + GPIOG_13 = 111, + GPIOG_14 = 112, + GPIOG_15 = 113, + + GPIOH_0 = 114, + GPIOH_1 = 115, + GPIOH_2 = 116, + GPIOH_3 = 117, + GPIOH_4 = 118, + GPIOH_5 = 119, + GPIOH_6 = 120, + GPIOH_7 = 121, + GPIOH_8 = 122, + GPIOH_9 = 123, + GPIOH_10 = 124, + GPIOH_11 = 125, + GPIOH_12 = 126, + GPIOH_13 = 127, + GPIOH_14 = 128, + GPIOH_15 = 129, + + /* TLE6240 pins go right after on chips */ + //#define TLE6240_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + (n))) + TLE6240_PIN_1 = 130, + TLE6240_PIN_2 = 131, + TLE6240_PIN_3 = 132, + TLE6240_PIN_4 = 133, + TLE6240_PIN_5 = 134, + TLE6240_PIN_6 = 135, + TLE6240_PIN_7 = 136, + TLE6240_PIN_8 = 137, + TLE6240_PIN_9 = 138, + TLE6240_PIN_10 = 139, + TLE6240_PIN_11 = 140, + TLE6240_PIN_12 = 141, + TLE6240_PIN_13 = 142, + TLE6240_PIN_14 = 143, + TLE6240_PIN_15 = 144, + TLE6240_PIN_16 = 145, + + /* MC33972 pins go right after TLE6240 */ + //#define MC33972_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + 16 + (n))) + MC33972_PIN_1 = 146, + MC33972_PIN_21 = 166, + MC33972_PIN_22 = 167, + + TLE8888_PIN_1 = 168, + TLE8888_PIN_2 = 169, + TLE8888_PIN_3 = 170, + TLE8888_PIN_4 = 171, + TLE8888_PIN_5 = 172, + TLE8888_PIN_6 = 173, + TLE8888_PIN_7 = 174, + TLE8888_PIN_8 = 175, + TLE8888_PIN_9 = 176, + TLE8888_PIN_10 = 177, + TLE8888_PIN_11 = 178, + TLE8888_PIN_12 = 179, + TLE8888_PIN_13 = 180, + TLE8888_PIN_14 = 181, + TLE8888_PIN_15 = 182, + TLE8888_PIN_16 = 183, + TLE8888_PIN_17 = 184, + TLE8888_PIN_18 = 185, + TLE8888_PIN_19 = 186, + TLE8888_PIN_20 = 187, + TLE8888_PIN_21 = 188, + TLE8888_PIN_22 = 189, + TLE8888_PIN_23 = 190, + TLE8888_PIN_24 = 191, + TLE8888_PIN_25 = 192, + TLE8888_PIN_26 = 193, + TLE8888_PIN_27 = 194, + TLE8888_PIN_28 = 195, +} brain_pin_e; + +/* Plase keep updating this define */ +#define BRAIN_PIN_LAST_ONCHIP GPIOH_15 + +/** + * Frankenso analog #1 PC2 ADC12 + * Frankenso analog #2 PC1 ADC11 + * Frankenso analog #3 PA0 ADC0 + * Frankenso analog #4 PC3 ADC13 + * Frankenso analog #5 PA2 ADC2 + * Frankenso analog #6 PA1 ADC1 + * Frankenso analog #7 PA4 ADC4 + * Frankenso analog #8 PA3 ADC3 + * Frankenso analog #9 PA7 ADC7 + * Frankenso analog #10 PA6 ADC6 + * Frankenso analog #11 PC5 ADC15 + * Frankenso analog #12 PC4 ADC14 + */ + +typedef enum __attribute__ ((__packed__)) { + EFI_ADC_0 = 0, // PA0 + EFI_ADC_1 = 1, // PA1 + EFI_ADC_2 = 2, // PA2 + EFI_ADC_3 = 3, // PA3 + EFI_ADC_4 = 4, // PA4 + EFI_ADC_5 = 5, // PA5 + EFI_ADC_6 = 6, // PA6 + EFI_ADC_7 = 7, // PA7 + EFI_ADC_8 = 8, // PB0 + EFI_ADC_9 = 9, // PB1 + EFI_ADC_10 = 10, // PC0 + EFI_ADC_11 = 11, // PC1 + EFI_ADC_12 = 12, // PC2 + EFI_ADC_13 = 13, // PC3 + EFI_ADC_14 = 14, // PC4 + EFI_ADC_15 = 15, // PC5 + + // todo: bad choice of value since now we have ADC_CHANNEL_SENSOR and could end up with 17 and 18 also + EFI_ADC_NONE = 16, + EFI_ADC_ERROR = 17, +#if EFI_UNIT_TEST + TEST_MAF_CHANNEL = 113, + TEST_CLT_CHANNEL = 114, + TEST_IAT_CHANNEL = 115, +#endif +} adc_channel_e; + +#define INCOMPATIBLE_CONFIG_CHANGE EFI_ADC_0 + #endif /* RUSEFI_HW_ENUMS_H_ */ diff --git a/firmware/gen_config_board.bat b/firmware/gen_config_board.bat index caa748fd6b..42a5f49551 100644 --- a/firmware/gen_config_board.bat +++ b/firmware/gen_config_board.bat @@ -16,7 +16,15 @@ echo BOARDNAME=%BOARDNAME% rem lazy is broken - TS input is not considered a change rm build/config.gen -java -cp ../java_tools/ConfigDefinition.jar;../java_tools/configuration_definition/lib/snakeyaml.jar com.rusefi.board_generator.BoardReader -board %BOARDNAME% -firmware_path . -out tunerstudio +java -cp ../java_tools/ConfigDefinition.jar;../java_tools/configuration_definition/lib/snakeyaml.jar ^ + com.rusefi.board_generator.BoardReader ^ + -board %BOARDNAME% ^ + -firmware_path . ^ + -out tunerstudio ^ + -enumInputFile controllers/algo/rusefi_enums.h ^ + -enumInputFile controllers/algo/rusefi_hw_enums.h + + java -jar ../java_tools/ConfigDefinition.jar ^ -definition integration\rusefi_config.txt ^ -ts_destination tunerstudio ^ diff --git a/firmware/gen_enum_to_string.bat b/firmware/gen_enum_to_string.bat index 17607d9c8b..d23d53b833 100644 --- a/firmware/gen_enum_to_string.bat +++ b/firmware/gen_enum_to_string.bat @@ -1,3 +1,8 @@ rem This batch files reads rusefi_enums.h and produses auto_generated_enums.* files -java -jar ../java_tools/enum2string.jar -inputPath . -outputPath controllers/algo -enumInputFile controllers/algo/rusefi_enums.h -enumInputFile controllers/algo/rusefi_hw_enums.h +java -jar ../java_tools/enum2string.jar ^ + -inputPath . ^ + -outputPath controllers/algo ^ + -enumInputFile controllers/algo/rusefi_enums.h ^ + -enumInputFile controllers/algo/rusefi_hw_enums.h ^ + diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 339a74f3645833d993294f177e89b58e05e118bb..de392ac045ff77add0a77a94a06a21fac40f665e 100644 GIT binary patch delta 9475 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 data = yaml.load(new FileReader(firmwarePath + "/config/boards/" + boardName + "/mapping.yaml")); System.out.println(data); - EnumsReader.process(new FileReader(firmwarePath + File.separator + EnumToString.COMMON_HEADER_RELATIVE_NAME)); BufferedWriter bw = new BufferedWriter(new FileWriter(outputPath + File.separator + boardName + "_prefix.txt"));