diff --git a/.github/workflows/build-firmware.yaml b/.github/workflows/build-firmware.yaml index 344bd7e614..58f131260a 100644 --- a/.github/workflows/build-firmware.yaml +++ b/.github/workflows/build-firmware.yaml @@ -73,216 +73,214 @@ jobs: include: # Board configurations - build-target: hellen72 - folder: hellen/hellen72 + folder: config/boards/hellen/hellen72 ini-file: rusefi_hellen72.ini skip-rate: 90 - build-target: hellen81 - folder: hellen/hellen81 + folder: config/boards/hellen/hellen81 ini-file: rusefi_hellen81.ini skip-rate: 90 - build-target: alphax-2chan - folder: hellen/alphax-2chan + folder: config/boards/hellen/alphax-2chan ini-file: rusefi_alphax-2chan.ini skip-rate: 0 - build-target: alphax-4chan - folder: hellen/alphax-4chan + folder: config/boards/hellen/alphax-4chan ini-file: rusefi_alphax-4chan.ini - build-target: alphax-8chan - folder: hellen/alphax-8chan + folder: config/boards/hellen/alphax-8chan ini-file: rusefi_alphax-8chan.ini - build-target: s105 - folder: s105 + folder: config/boards/s105 ini-file: rusefi_s105.ini skip-rate: 0 - build-target: m74_9 - folder: m74_9 + folder: config/boards/m74_9 ini-file: rusefi_m74_9.ini skip-rate: 0 - build-target: harley81 - folder: hellen/harley81 + folder: config/boards/hellen/harley81 ini-file: rusefi_harley81.ini skip-rate: 90 - build-target: hellen88bmw - folder: hellen/hellen88bmw + folder: config/boards/hellen/hellen88bmw ini-file: rusefi_hellen88bmw.ini skip-rate: 90 - build-target: hellen88bmw_avr - folder: hellen/hellen88bmw + folder: config/boards/hellen/hellen88bmw ini-file: rusefi_hellen88bmw.ini skip-rate: 90 - build-target: hellen-nb1 - folder: hellen/hellen-nb1 + folder: config/boards/hellen/hellen-nb1 ini-file: rusefi_hellen-nb1.ini skip-rate: 90 - build-target: hellen-gm-e67 - folder: hellen/hellen-gm-e67 + folder: config/boards/hellen/hellen-gm-e67 ini-file: rusefi_hellen-gm-e67.ini skip-rate: 90 - build-target: hellenNA8_96 - folder: hellen/hellenNA8_96 + folder: config/boards/hellen/hellenNA8_96 ini-file: rusefi_hellenNA8_96.ini skip-rate: 90 - build-target: hellenNA6 - folder: hellen/hellen64_miataNA6_94 + folder: config/boards/hellen/hellen64_miataNA6_94 ini-file: rusefi_hellenNA6.ini skip-rate: 90 - build-target: hellen128 - folder: hellen/hellen128 + folder: config/boards/hellen/hellen128 ini-file: rusefi_hellen128mercedes.ini skip-rate: 50 - build-target: hellen121vag - folder: hellen/hellen121vag + folder: config/boards/hellen/hellen121vag ini-file: rusefi_hellen121vag.ini skip-rate: 90 - build-target: hellen121nissan - folder: hellen/hellen121nissan + folder: config/boards/hellen/hellen121nissan ini-file: rusefi_hellen121nissan.ini - build-target: hellen-honda-k - folder: hellen/hellen-honda-k + folder: config/boards/hellen/hellen-honda-k ini-file: rusefi_hellen-honda-k.ini - build-target: hellen154hyundai - folder: hellen/hellen154hyundai + folder: config/boards/hellen/hellen154hyundai ini-file: rusefi_hellen154hyundai.ini skip-rate: 90 - build-target: cypress - folder: cypress + folder: config/boards/cypress ini-file: rusefi_cypress.ini - build-target: frankenso_na6 - folder: frankenso + folder: config/boards/frankenso ini-file: rusefi_frankenso_na6.ini skip-rate: 90 - build-target: kinetis - folder: kinetis + folder: config/boards/kinetis ini-file: rusefi_kin.ini skip-rate: 0 - build-target: mre_f4 - folder: microrusefi + folder: config/boards/microrusefi ini-file: rusefi_mre_f4.ini - build-target: mre_f4_debug - folder: microrusefi + folder: config/boards/microrusefi ini-file: rusefi_mre_f4.ini skip-rate: 95 - build-target: mre_f4_recovery - folder: microrusefi + folder: config/boards/microrusefi ini-file: rusefi_mre_f4.ini skip-rate: 95 - build-target: mre_f4_hardware_QC_special_build - folder: microrusefi + folder: config/boards/microrusefi ini-file: rusefi_mre_f4.ini skip-rate: 90 - build-target: mre_f7 - folder: microrusefi + folder: config/boards/microrusefi ini-file: rusefi_mre_f7.ini - console-settings: firmware/config/boards/nucleo_f767/rusefi_console_properties.xml skip-rate: 90 - build-target: prometheus_405 - folder: prometheus + folder: config/boards/prometheus ini-file: rusefi_prometheus_405.ini skip-rate: 90 - build-target: prometheus_469 - folder: prometheus + folder: config/boards/prometheus ini-file: rusefi_prometheus_469.ini skip-rate: 90 - build-target: proteus_f4 - folder: proteus + folder: config/boards/proteus ini-file: rusefi_proteus_f4.ini - build-target: proteus_f4_hardware_QC_special_build - folder: proteus + folder: config/boards/proteus ini-file: rusefi_proteus_f4.ini - build-target: proteus_f7 - folder: proteus + folder: config/boards/proteus ini-file: rusefi_proteus_f7.ini - build-target: proteus_f7_hardware_QC_special_build - folder: proteus + folder: config/boards/proteus ini-file: rusefi_proteus_f7.ini skip-rate: 90 - build-target: proteus_h7 - folder: proteus + folder: config/boards/proteus ini-file: rusefi_proteus_h7.ini skip-rate: 90 - build-target: proteus_legacy - folder: proteus + folder: config/boards/proteus ini-file: rusefi_proteus_f7.ini skip-rate: 90 - build-target: stm32f429_nucleo - folder: nucleo_f429 + folder: config/boards/nucleo_f429 ini-file: rusefi_stm32f429_nucleo.ini - build-target: stm32f767_nucleo - folder: nucleo_f767 + folder: config/boards/nucleo_f767 ini-file: rusefi_stm32f767_nucleo.ini - console-settings: firmware/config/boards/nucleo_f767/rusefi_console_properties.xml skip-rate: 95 - build-target: stm32h743_nucleo - folder: nucleo_h743 + folder: config/boards/nucleo_h743 ini-file: rusefi_stm32h743_nucleo.ini skip-rate: 95 - build-target: subaru_eg33_f7 - folder: subaru_eg33 + folder: config/boards/subaru_eg33 ini-file: rusefi_subaru_eg33_f7.ini skip-rate: 50 - build-target: f407-discovery - folder: f407-discovery + folder: config/boards/f407-discovery - build-target: f429-discovery - folder: f429-discovery + folder: config/boards/f429-discovery skip-rate: 95 - build-target: core8 - folder: core8 + folder: config/boards/core8 ini-file: rusefi_core8.ini skip-rate: 95 - build-target: 48way - folder: 48way + folder: config/boards/48way ini-file: rusefi_48way.ini skip-rate: 95 - build-target: atlas - folder: atlas + folder: config/boards/atlas ini-file: rusefi_atlas.ini skip-rate: 95 - build-target: tdg-pdm8 - folder: tdg-pdm8 + folder: config/boards/tdg-pdm8 ini-file: rusefi_tdg-pdm8.ini skip-rate: 95 @@ -393,7 +391,7 @@ jobs: # Build the firmware! - name: Build Firmware if: ${{ env.skip != 'true' }} - run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}} ${{matrix.ini-file}} ${{matrix.console-settings}} + run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}} - name: Package Bundle if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }} diff --git a/.github/workflows/hardware-ci.yaml b/.github/workflows/hardware-ci.yaml index 55f6758a5c..b7ee47d7d8 100644 --- a/.github/workflows/hardware-ci.yaml +++ b/.github/workflows/hardware-ci.yaml @@ -15,9 +15,8 @@ jobs: script: hardware_ci_f4_discovery runs-on: hw-ci-f4-discovery test-suite: com.rusefi.HwCiF4Discovery - folder: f407-discovery + folder: config/boards/f407-discovery config-name: all - ini-file: rusefi_f4-disco.ini openocd-script: ../.github/workflows/openocd_ci_f4_discovery.cfg serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_2B003B000A51343033393930-if01 @@ -25,9 +24,8 @@ jobs: script: hardware_ci_proteus runs-on: hw-ci-proteus test-suite: com.rusefi.HwCiF4Proteus - folder: proteus + folder: config/boards/proteus config-name: proteus_f4 - ini-file: rusefi_proteus_f4.ini openocd-script: ../.github/workflows/openocd_ci_proteus.cfg serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_41003D000451383037343335-if01 @@ -84,7 +82,7 @@ jobs: echo "HARDWARE_CI_SERIAL_DEVICE=${{matrix.serial-device}}" >> $GITHUB_ENV - name: Build Firmware - run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}} ${{matrix.ini-file}} + run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}} - name: Check for STLINK run: lsusb | grep 'ST-LINK\|STLINK' diff --git a/firmware/config/boards/nucleo_f767/rusefi_console_properties.xml b/firmware/config/boards/nucleo_f767/rusefi_console_properties.xml deleted file mode 100644 index 38b0e5957e..0000000000 --- a/firmware/config/boards/nucleo_f767/rusefi_console_properties.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - root - - - - hardware - F7 - - - - - - diff --git a/firmware/gen_config.sh b/firmware/gen_config.sh index 7d90c751e2..c44455b71b 100755 --- a/firmware/gen_config.sh +++ b/firmware/gen_config.sh @@ -25,38 +25,38 @@ config/boards/subaru_eg33/config/gen_subaru_config.sh # # for BOARD in \ - "hellen/alphax-2chan alphax-2chan" \ - "hellen/alphax-4chan alphax-4chan" \ - "hellen/alphax-8chan alphax-8chan" \ - "hellen/harley81 harley81" \ - "hellen/hellen128 hellen128 rusefi_hellen128mercedes.ini" \ - "hellen/hellen121vag hellen121vag" \ - "hellen/hellen121nissan hellen121nissan" \ - "hellen/hellen-honda-k hellen-honda-k" \ - "hellen/hellen154hyundai hellen154hyundai" \ - "hellen/hellen88bmw hellen88bmw" \ - "hellen/hellen72 hellen72" \ - "hellen/hellen81 hellen81" \ - "hellen/hellen-nb1 hellen-nb1" \ - "hellen/hellen-gm-e67 hellen-gm-e67" \ - "hellen/hellen64_miataNA6_94 hellenNA6" \ - "hellen/hellenNA8_96 hellenNA8_96" \ - "microrusefi mre_f7" \ - "microrusefi mre_f4" \ - "core8 core8" \ - "48way 48way" \ - "m74_9 m74_9" \ - "s105 s105" \ - "frankenso frankenso_na6" \ - "prometheus prometheus_469" \ - "prometheus prometheus_405" \ - "proteus proteus_f7" \ - "proteus proteus_f4" \ - "proteus proteus_h7" \ - "f407-discovery f407-discovery" \ - "f429-discovery f429-discovery" \ - "atlas atlas"\ - "tdg-pdm8 tdg-pdm8"\ + "config/boards/hellen/alphax-2chan alphax-2chan" \ + "config/boards/hellen/alphax-4chan alphax-4chan" \ + "config/boards/hellen/alphax-8chan alphax-8chan" \ + "config/boards/hellen/harley81 harley81" \ + "config/boards/hellen/hellen128 hellen128 rusefi_hellen128mercedes.ini" \ + "config/boards/hellen/hellen121vag hellen121vag" \ + "config/boards/hellen/hellen121nissan hellen121nissan" \ + "config/boards/hellen/hellen-honda-k hellen-honda-k" \ + "config/boards/hellen/hellen154hyundai hellen154hyundai" \ + "config/boards/hellen/hellen88bmw hellen88bmw" \ + "config/boards/hellen/hellen72 hellen72" \ + "config/boards/hellen/hellen81 hellen81" \ + "config/boards/hellen/hellen-nb1 hellen-nb1" \ + "config/boards/hellen/hellen-gm-e67 hellen-gm-e67" \ + "config/boards/hellen/hellen64_miataNA6_94 hellenNA6" \ + "config/boards/hellen/hellenNA8_96 hellenNA8_96" \ + "config/boards/microrusefi mre_f7" \ + "config/boards/microrusefi mre_f4" \ + "config/boards/core8 core8" \ + "config/boards/48way 48way" \ + "config/boards/m74_9 m74_9" \ + "config/boards/s105 s105" \ + "config/boards/frankenso frankenso_na6" \ + "config/boards/prometheus prometheus_469" \ + "config/boards/prometheus prometheus_405" \ + "config/boards/proteus proteus_f7" \ + "config/boards/proteus proteus_f4" \ + "config/boards/proteus proteus_h7" \ + "config/boards/f407-discovery f407-discovery" \ + "config/boards/f429-discovery f429-discovery" \ + "config/boards/atlas atlas"\ + "config/boards/tdg-pdm8 tdg-pdm8"\ ; do BOARD_NAME=$(echo "$BOARD" | cut -d " " -f 1) BOARD_SHORT_NAME=$(echo "$BOARD" | cut -d " " -f 2) diff --git a/firmware/gen_config_board.sh b/firmware/gen_config_board.sh index da5f7116a3..35f93d19a0 100755 --- a/firmware/gen_config_board.sh +++ b/firmware/gen_config_board.sh @@ -15,7 +15,7 @@ if [ -z "$1" ]; then exit 1 fi -BOARDNAME=$1 +BOARD_DIR=$1 SHORT_BOARDNAME=$2 if [ -n "$3" ]; then INI="$3" @@ -23,16 +23,15 @@ else INI="rusefi_${SHORT_BOARDNAME}.ini" fi -echo "BOARDNAME=${BOARDNAME} SHORT_BOARDNAME=${SHORT_BOARDNAME}" +echo "BOARD_DIR=${BOARD_DIR} SHORT_BOARDNAME=${SHORT_BOARDNAME}" bash gen_signature.sh ${SHORT_BOARDNAME} -BOARD_DIR=config/boards/${BOARDNAME} PREPEND_FILE=${BOARD_DIR}/prepend.txt BOARD_SPECIFIC_URL=$(cat $PREPEND_FILE | grep MAIN_HELP_URL | cut -d " " -f 3 | sed -e 's/^"//' -e 's/"$//') -echo "BOARD_SPECIFIC_URL=[$BOARD_SPECIFIC_URL] for [$BOARDNAME] as [$SHORT_BOARDNAME]" +echo "BOARD_SPECIFIC_URL=[$BOARD_SPECIFIC_URL] for [$SHORT_BOARDNAME] from [$BOARD_DIR]" if [ "" = "$BOARD_SPECIFIC_URL" ]; then BOARD_SPECIFIC_URL=https://rusefi.com/s/wiki fi @@ -51,7 +50,7 @@ java \ -c_defines controllers/generated/rusefi_generated.h \ -c_destination controllers/generated/engine_configuration_generated_structures.h -[ $? -eq 0 ] || { echo "ERROR generating TunerStudio config for ${BOARDNAME}"; exit 1; } +[ $? -eq 0 ] || { echo "ERROR generating TunerStudio config for ${BOARD_DIR}"; exit 1; } # we generate both versions of the header but only one would be actually included due to conditional compilation see EFI_USE_COMPRESSED_INI_MSD # todo: make things consistent by @@ -62,5 +61,5 @@ java \ hw_layer/mass_storage/create_ini_image.sh ./tunerstudio/generated/${INI} ./hw_layer/mass_storage/ramdisk_image.h 128 ${SHORT_BOARDNAME} ${BOARD_SPECIFIC_URL} hw_layer/mass_storage/create_ini_image_compressed.sh ./tunerstudio/generated/${INI} ./hw_layer/mass_storage/ramdisk_image_compressed.h 1088 ${SHORT_BOARDNAME} ${BOARD_SPECIFIC_URL} -echo "Happy ${SHORT_BOARDNAME}" +echo "Happy ${SHORT_BOARDNAME}!" exit 0 diff --git a/firmware/gen_config_common.sh b/firmware/gen_config_common.sh index 007fc20213..5d4dec5532 100755 --- a/firmware/gen_config_common.sh +++ b/firmware/gen_config_common.sh @@ -22,5 +22,5 @@ COMMON_GEN_CONFIG=" -signature_destination controllers/generated/signature_${SHORT_BOARDNAME}.h \ -ts_output_name generated/${INI} \ -prepend ${BOARD_DIR}/prepend.txt \ - -board ${BOARDNAME} \ + -board ${BOARD_DIR} \ -definition integration/rusefi_config.txt" diff --git a/firmware/gen_config_default.sh b/firmware/gen_config_default.sh index c9b9dd2fe1..0d54dd76c2 100755 --- a/firmware/gen_config_default.sh +++ b/firmware/gen_config_default.sh @@ -1,5 +1,5 @@ #!/bin/bash # file gen_config_default.sh -bash gen_config_board.sh f407-discovery f407-discovery rusefi.ini +bash gen_config_board.sh config/boards/f407-discovery f407-discovery rusefi.ini exit $? diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index cf876e5e10..b865761d3f 100644 Binary files a/java_tools/ConfigDefinition.jar and b/java_tools/ConfigDefinition.jar differ diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java index c6ddba82a4..f07e093739 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java @@ -143,7 +143,7 @@ public class ConfigDefinition { break; case KEY_BOARD_NAME: String boardName = args[i + 1]; - pinoutLogic = PinoutLogic.create(boardName, PinoutLogic.CONFIG_BOARDS); + pinoutLogic = PinoutLogic.create(boardName); if (pinoutLogic != null) { for (String inputFile : pinoutLogic.getInputFiles()) state.addInputFile(inputFile); diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/PinoutLogic.java b/java_tools/configuration_definition/src/main/java/com/rusefi/PinoutLogic.java index a5b7e74ed1..add263c95d 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/PinoutLogic.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/PinoutLogic.java @@ -19,7 +19,6 @@ import static com.rusefi.output.JavaSensorsConsumer.quote; public class PinoutLogic { private static final Logging log = getLogging(PinoutLogic.class); - public static final String CONFIG_BOARDS = "config/boards/"; private static final String CONNECTORS = "/connectors"; private static final String NONE = "NONE"; private static final String QUOTED_NONE = quote(NONE); @@ -196,19 +195,9 @@ public class PinoutLogic { PinState thisPin = new PinState(id, pinTsName, pinClass); globalList.add(thisPin); } -/* - public static void main(String[] args) throws IOException { - String boardName = "hellen-gm-e67"; - PinoutLogic logic = create(boardName,"../../firmware/config/boards/hellen/"); - logic.readFiles(); - log.info(logic.toString()); - registerPins(boardName, logic.globalList, new VariableRegistry(), new ReaderState()); - } -*/ - - public static PinoutLogic create(String boardName, String rootFolder) { - String dirPath = rootFolder + boardName + PinoutLogic.CONNECTORS; + public static PinoutLogic create(String boardName) { + String dirPath = boardName + PinoutLogic.CONNECTORS; File dirName = new File(dirPath); FilenameFilter filter = (f, name) -> name.endsWith(".yaml"); File[] boardYamlFiles = dirName.listFiles(filter); @@ -224,7 +213,7 @@ public class PinoutLogic { readFiles(); registerPins(boardName, globalList, registry, state, parseState); - try (FileWriter getTsNameByIdFile = new FileWriter(PinoutLogic.CONFIG_BOARDS + boardName + PinoutLogic.CONNECTORS + File.separator + "generated_ts_name_by_pin.cpp")) { + try (FileWriter getTsNameByIdFile = new FileWriter(boardName + PinoutLogic.CONNECTORS + File.separator + "generated_ts_name_by_pin.cpp")) { getTsNameByIdFile.append(header); getTsNameByIdFile.append("#include \"pch.h\"\n\n"); @@ -256,8 +245,7 @@ public class PinoutLogic { public List getInputFiles() { List result = new ArrayList<>(); for (File yamlFile : boardYamlFiles) { - result.add(PinoutLogic.CONFIG_BOARDS + boardName + PinoutLogic.CONNECTORS + - File.separator + yamlFile.getName()); + result.add(boardName + PinoutLogic.CONNECTORS + File.separator + yamlFile.getName()); } return result; } diff --git a/misc/jenkins/compile_other_versions/compile.sh b/misc/jenkins/compile_other_versions/compile.sh index 880b9c4aaf..50edfdd896 100755 --- a/misc/jenkins/compile_other_versions/compile.sh +++ b/misc/jenkins/compile_other_versions/compile.sh @@ -1,18 +1,18 @@ #!/bin/bash -# for example 'proteus' -BOARD_NAME="$1" +# fail on error! +set -e -# for example 'mre-f4' +# for example 'config/boards/proteus' +BOARD_DIR="$1" + +# for example 'proteus_f4' export BUNDLE_NAME="$2" -export INI_FILE_OVERRIDE="$3" -export RUSEFI_CONSOLE_SETTINGS="$4" - SCRIPT_NAME=compile_and_upload.sh -echo "Entering $SCRIPT_NAME with 1=$1 2=$2 3=$3 4=$4" +echo "Entering $SCRIPT_NAME with folder $BOARD_DIR and bundle name $BUNDLE_NAME" -[ -n $BOARD_NAME ] || { echo "BOARD_NAME parameter expected"; exit 1; } +[ -n $BOARD_DIR ] || { echo "BOARD_DIR parameter expected"; exit 1; } [ -n $BUNDLE_NAME ] || { echo "BUNDLE_NAME parameter expected"; exit 1; } @@ -24,24 +24,10 @@ cd .. root_dir=$(pwd) -cd firmware/config/boards -pwd -cd $BOARD_NAME +cd firmware/$BOARD_DIR pwd echo "Invoking $COMPILE_SCRIPT" bash $COMPILE_SCRIPT -[ $? -eq 0 ] || { echo "ERROR invoking $COMPILE_SCRIPT"; exit 1; } -echo "We are in" -pwd -cd ${root_dir} -echo "We are now in" -pwd - -[ -e firmware/build/rusefi.hex ] || { echo "Just to confirm - FAILED to compile with $COMPILE_SCRIPT"; exit 1; } - -# We are back at root rusEFI folder -pwd - -echo "exiting $SCRIPT_NAME" +echo "Success for $SCRIPT_NAME!"