Skip to content

stm32: spi: enable pull-up on MISO and pull-down on CLK #1356

stm32: spi: enable pull-up on MISO and pull-down on CLK

stm32: spi: enable pull-up on MISO and pull-down on CLK #1356

Workflow file for this run

#
# https://wiki.rusefi.com/Dev-Quality-Control#hardware-continuous-integration
#
name: HW CI
on:
push:
pull_request:
workflow_dispatch:
env:
AUTOMATION_REF: ${{github.ref_name}}
jobs:
hardware-ci:
strategy:
# Let all builds finish even if one fails early
fail-fast: false
matrix:
build-target: [
f407-discovery,
nucleo_f767
#proteus F7 HW CI is not 100% reliable #6002 proteus_f7,
# proteus_f4
]
include:
- build-target: f407-discovery
runs-on: hw-ci-f4-discovery
# see HwCiF4Discovery.java or https://wiki.rusefi.com/Dev-Quality-Control#stm32f407g-disc1 for wiring documentation
test-suite: com.rusefi.HwCiF4Discovery
test-suite-ini: firmware/tunerstudio/generated/rusefi_f407-discovery.ini
folder: config/boards/f407-discovery
vbatt_supply: 12
- build-target: nucleo_f767
runs-on: hw-ci-nucleo-f7
test-suite: com.rusefi.HwCiNucleoF7
test-suite-ini: firmware/tunerstudio/generated/rusefi_stm32f767_nucleo.ini
folder: config/boards/nucleo_f767
# - build-target: proteus_f4
# runs-on: hw-ci-proteus
# # see HwCiProteus which would point you at ProteusAnalogTest.java for wiring documentation
# test-suite: com.rusefi.HwCiProteus
# folder: config/boards/proteus
# vbatt_supply: 12
# - build-target: proteus_f7
# runs-on: hw-ci-proteus-f7
# test-suite: com.rusefi.HwCiProteus
# folder: config/boards/proteus
# # let's power Proteus from same DC adapter as Nuc PC
# vbatt_supply: 12
runs-on: ${{matrix.runs-on}}
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/setup-java
- name: Checkout Submodules
run: |
misc/git_scripts/common_submodule_init.sh
- name: Identify Agent
run: |
uname -a
hostname
# TODO: address `Acquire GCC` version copy paste, maybe a tiny action to acquire specific version?
- name: Acquire Arm GNU Toolchain (arm-none-eabi-gcc)
uses: carlosperate/arm-none-eabi-gcc-action@v1.12.3
with:
release: '14.2.Rel1'
# we do not invoke ubuntu-install-tools.sh here, we assume manual install of tools on our HW CI machines
# Make sure the compiler works
- name: Test/Identify Compiler
run: arm-none-eabi-gcc -v
- name: Configuration Definition and Enum to String CI, without pushing new .jar
working-directory: .
run: |
./gradlew :config_definition:shadowJar :enum_to_string:shadowJar
- name: Generate All Configs
working-directory: ./firmware/
run: bash gen_config.sh
- name: Build Firmware
# run: .github/workflows/hw-ci/build_for_hw_ci.sh config/boards/f407-discovery f407-discovery
run: .github/workflows/hw-ci/build_for_hw_ci.sh ${{matrix.folder}} ${{matrix.build-target}}
- name: Show USB status
run: |
lsusb -vvv
- name: Check for STLINK
run: st-info --probe
# - name: Install tools
# run: |
# sudo apt-get install openocd libusb-1.0
#
# - name: Build gethla
# working-directory: .github/workflows/hw-ci/gethla
# run: bash build.sh
#
# - name: List STLINK serials
# working-directory: .github/workflows/hw-ci/gethla
# run: ./gethla
# ls -l /dev/serial/by-id/
# we specify power supply voltage to share power supply between NUC and ECU under test
# java automated test suite picks ECU based on specified serial
# echo "HARDWARE_CI_VBATT=${{matrix.vbatt_supply}}" >> $GITHUB_ENV
- name: Set EXTRA env
run: |
if [ -f "/opt/actions-runner/rusefi-env" ]; then
cat /opt/actions-runner/rusefi-env >> $GITHUB_ENV
fi
# (cat .github/workflows/openocd_ci_f4_discovery.cfg ) | .github/workflows/hw-ci/openocd_wipe_and_flash.sh
# (cat .github/workflows/openocd_ci_proteus_f7.cfg ) | .github/workflows/hw-ci/openocd_wipe_and_flash.sh
- name: st-flash wipe & flash STM32
run: |
st-flash $([ -n "$HARDWARE_CI_STLINK_SERIAL" ] && echo "--serial") $HARDWARE_CI_STLINK_SERIAL --area=main erase
st-flash $([ -n "$HARDWARE_CI_STLINK_SERIAL" ] && echo "--serial") $HARDWARE_CI_STLINK_SERIAL --format=binary --reset --connect-under-reset write firmware/deliver/rusefi.bin 0x08000000
- name: Upload build bin artifact
uses: actions/upload-artifact@v7
with:
name: rusefi_hw-ci-${{matrix.build-target}}.bin
path: ./firmware/build/rusefi*.bin
- name: Upload .ini artifact
uses: actions/upload-artifact@v7
with:
name: rusefi_hw-ci-${{matrix.build-target}}.ini
path: ${{matrix.test-suite-ini}}
- name: Show USB status after flashing
run: |
lsusb -vvv
# This both compiles and runs HW CI tests
# .github/workflows/hw-ci/run_hw_ci.sh com.rusefi.HwCiF4Discovery
- name: Run Hardware CI
run: .github/workflows/hw-ci/run_hw_ci.sh ${{matrix.test-suite}} ${{matrix.test-suite-ini}}