summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-06-25 09:55:05 +0700
committerhathach <[email protected]>2023-06-25 09:55:05 +0700
commit2ecd7c148db9f370dc151dc2f4fe223a71e9df76 (patch)
tree96f80f95c736db75edbc575fd24a532b3613cde0
parent15376397b10e6fb35ef7ec4b693271adbafecabf (diff)
fix ci with lpc55 and kl, move hw test l4 to cmake iar
-rw-r--r--.github/workflows/build_arm.yml128
-rw-r--r--.github/workflows/build_iar.yml78
-rw-r--r--hw/bsp/lpc55/family.cmake6
-rw-r--r--tools/get_deps.py4
4 files changed, 150 insertions, 66 deletions
diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml
index b7e6890f9..0b770f379 100644
--- a/.github/workflows/build_arm.yml
+++ b/.github/workflows/build_arm.yml
@@ -101,67 +101,67 @@ jobs:
path: |
*.elf
- # ---------------------------------------
- # Hardware in the loop (HIL)
- # Current self-hosted instance is running on an EPYC 7232 server hosted by HiFiPhile user
- # - STM32L412 Nucleo with on-board jlink as ttyACM0
- # ---------------------------------------
- hw-stm32l412nucleo-test:
- needs: build-arm
- runs-on: [self-hosted, Linux, X64, hifiphile]
-
- steps:
- - name: Clean workspace
- run: |
- echo "Cleaning up previous run"
- rm -rf "${{ github.workspace }}"
- mkdir -p "${{ github.workspace }}"
-
- - name: Download stm32l4 Artifacts
- uses: actions/download-artifact@v3
- with:
- name: stm32l4
-
- - name: Create flash.sh
- run: |
- echo > flash.sh 'echo halt > flash.jlink'
- echo >> flash.sh 'echo r >> flash.jlink'
- echo >> flash.sh 'echo loadfile $1 >> flash.jlink'
- echo >> flash.sh 'echo r >> flash.jlink'
- echo >> flash.sh 'echo go >> flash.jlink'
- echo >> flash.sh 'echo exit >> flash.jlink'
- echo >> flash.sh 'cmdout=$(JLinkExe -device stm32l412kb -if swd -JTAGConf -1,-1 -speed auto -NoGui 1 -ExitOnError 1 -CommandFile flash.jlink)'
- echo >> flash.sh 'if (( $? )) ; then echo $cmdout ; fi'
- chmod +x flash.sh
-
- - name: Test cdc_dual_ports
- run: |
- ./flash.sh cdc_dual_ports.elf
- while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 10 ]; do :; done
- test -e /dev/ttyACM1 && echo "ttyACM1 exists"
- test -e /dev/ttyACM2 && echo "ttyACM2 exists"
-
- # Debian does not auto mount usb drive. skip this test for now
- - name: Test cdc_msc
- if: false
- run: |
- ./flash.sh cdc_msc.elf
- readme='/media/pi/TinyUSB MSC/README.TXT'
- while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 10 ]; do :; done
- test -e /dev/ttyACM1 && echo "ttyACM1 exists"
- test -f "$readme" && echo "$readme exists"
- cat "$readme"
-
- - name: Test dfu
- run: |
- ./flash.sh dfu.elf
- while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 10 ]; do :; done
- dfu-util -d cafe -a 0 -U dfu0
- dfu-util -d cafe -a 1 -U dfu1
- grep "TinyUSB DFU! - Partition 0" dfu0
- grep "TinyUSB DFU! - Partition 1" dfu1
-
- - name: Test dfu_runtime
- run: |
- ./flash.sh dfu_runtime.elf
- while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 10 ]; do :; done
+# # ---------------------------------------
+# # Hardware in the loop (HIL)
+# # Current self-hosted instance is running on an EPYC 7232 server hosted by HiFiPhile user
+# # - STM32L412 Nucleo with on-board jlink as ttyACM0
+# # ---------------------------------------
+# hw-stm32l412nucleo-test:
+# needs: build-arm
+# runs-on: [self-hosted, Linux, X64, hifiphile]
+#
+# steps:
+# - name: Clean workspace
+# run: |
+# echo "Cleaning up previous run"
+# rm -rf "${{ github.workspace }}"
+# mkdir -p "${{ github.workspace }}"
+#
+# - name: Download stm32l4 Artifacts
+# uses: actions/download-artifact@v3
+# with:
+# name: stm32l4
+#
+# - name: Create flash.sh
+# run: |
+# echo > flash.sh 'echo halt > flash.jlink'
+# echo >> flash.sh 'echo r >> flash.jlink'
+# echo >> flash.sh 'echo loadfile $1 >> flash.jlink'
+# echo >> flash.sh 'echo r >> flash.jlink'
+# echo >> flash.sh 'echo go >> flash.jlink'
+# echo >> flash.sh 'echo exit >> flash.jlink'
+# echo >> flash.sh 'cmdout=$(JLinkExe -device stm32l412kb -if swd -JTAGConf -1,-1 -speed auto -NoGui 1 -ExitOnError 1 -CommandFile flash.jlink)'
+# echo >> flash.sh 'if (( $? )) ; then echo $cmdout ; fi'
+# chmod +x flash.sh
+#
+# - name: Test cdc_dual_ports
+# run: |
+# ./flash.sh cdc_dual_ports.elf
+# while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 10 ]; do :; done
+# test -e /dev/ttyACM1 && echo "ttyACM1 exists"
+# test -e /dev/ttyACM2 && echo "ttyACM2 exists"
+#
+# # Debian does not auto mount usb drive. skip this test for now
+# - name: Test cdc_msc
+# if: false
+# run: |
+# ./flash.sh cdc_msc.elf
+# readme='/media/pi/TinyUSB MSC/README.TXT'
+# while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 10 ]; do :; done
+# test -e /dev/ttyACM1 && echo "ttyACM1 exists"
+# test -f "$readme" && echo "$readme exists"
+# cat "$readme"
+#
+# - name: Test dfu
+# run: |
+# ./flash.sh dfu.elf
+# while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 10 ]; do :; done
+# dfu-util -d cafe -a 0 -U dfu0
+# dfu-util -d cafe -a 1 -U dfu1
+# grep "TinyUSB DFU! - Partition 0" dfu0
+# grep "TinyUSB DFU! - Partition 1" dfu1
+#
+# - name: Test dfu_runtime
+# run: |
+# ./flash.sh dfu_runtime.elf
+# while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 10 ]; do :; done
diff --git a/.github/workflows/build_iar.yml b/.github/workflows/build_iar.yml
index 4c5fd770c..cafb75cd8 100644
--- a/.github/workflows/build_iar.yml
+++ b/.github/workflows/build_iar.yml
@@ -48,3 +48,81 @@ jobs:
- name: Build
run: python3 tools/build_cmake.py ${{ matrix.family }} -DTOOLCHAIN=iar -DCMAKE_BUILD_TYPE=MinSizeRel
+
+ # Upload binaries for hardware test with self-hosted
+ - name: Prepare stm32l412nucleo Artifacts
+ if: contains(matrix.family, 'stm32l4')
+ run: find examples/ -path "*stm32l412nucleo/*.elf" -exec mv {} . \;
+
+ - name: Upload Artifacts for stm32l412nucleo
+ if: contains(matrix.family, 'stm32l4') && github.repository_owner == 'hathach'
+ uses: actions/upload-artifact@v3
+ with:
+ name: stm32l4
+ path: |
+ *.elf
+
+ # ---------------------------------------
+ # Hardware in the loop (HIL)
+ # Current self-hosted instance is running on an EPYC 7232 server hosted by HiFiPhile user
+ # - STM32L412 Nucleo with on-board jlink as ttyACM0
+ # ---------------------------------------
+ hw-stm32l412nucleo-test:
+ needs: cmake
+ runs-on: [self-hosted, Linux, X64, hifiphile]
+
+ steps:
+ - name: Clean workspace
+ run: |
+ echo "Cleaning up previous run"
+ rm -rf "${{ github.workspace }}"
+ mkdir -p "${{ github.workspace }}"
+
+ - name: Download stm32l4 Artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: stm32l4
+
+ - name: Create flash.sh
+ run: |
+ echo > flash.sh 'echo halt > flash.jlink'
+ echo >> flash.sh 'echo r >> flash.jlink'
+ echo >> flash.sh 'echo loadfile $1 >> flash.jlink'
+ echo >> flash.sh 'echo r >> flash.jlink'
+ echo >> flash.sh 'echo go >> flash.jlink'
+ echo >> flash.sh 'echo exit >> flash.jlink'
+ echo >> flash.sh 'cmdout=$(JLinkExe -device stm32l412kb -if swd -JTAGConf -1,-1 -speed auto -NoGui 1 -ExitOnError 1 -CommandFile flash.jlink)'
+ echo >> flash.sh 'if (( $? )) ; then echo $cmdout ; fi'
+ chmod +x flash.sh
+
+ - name: Test cdc_dual_ports
+ run: |
+ ./flash.sh cdc_dual_ports.elf
+ while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 10 ]; do :; done
+ test -e /dev/ttyACM1 && echo "ttyACM1 exists"
+ test -e /dev/ttyACM2 && echo "ttyACM2 exists"
+
+ # Debian does not auto mount usb drive. skip this test for now
+ - name: Test cdc_msc
+ if: false
+ run: |
+ ./flash.sh cdc_msc.elf
+ readme='/media/pi/TinyUSB MSC/README.TXT'
+ while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 10 ]; do :; done
+ test -e /dev/ttyACM1 && echo "ttyACM1 exists"
+ test -f "$readme" && echo "$readme exists"
+ cat "$readme"
+
+ - name: Test dfu
+ run: |
+ ./flash.sh dfu.elf
+ while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 10 ]; do :; done
+ dfu-util -d cafe -a 0 -U dfu0
+ dfu-util -d cafe -a 1 -U dfu1
+ grep "TinyUSB DFU! - Partition 0" dfu0
+ grep "TinyUSB DFU! - Partition 1" dfu1
+
+ - name: Test dfu_runtime
+ run: |
+ ./flash.sh dfu_runtime.elf
+ while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 10 ]; do :; done
diff --git a/hw/bsp/lpc55/family.cmake b/hw/bsp/lpc55/family.cmake
index 9f6b1f63d..e443f47d3 100644
--- a/hw/bsp/lpc55/family.cmake
+++ b/hw/bsp/lpc55/family.cmake
@@ -103,6 +103,12 @@ function(family_configure_example TARGET)
${TOP}/lib/sct_neopixel/sct_neopixel.c
)
+ # https://github.com/gsteiert/sct_neopixel/pull/1
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ set_source_files_properties(${TOP}/lib/sct_neopixel/sct_neopixel.c PROPERTIES
+ COMPILE_FLAGS "-Wno-unused-parameter")
+ endif ()
+
target_include_directories(${TARGET} PUBLIC
# family, hw, board
${CMAKE_CURRENT_FUNCTION_LIST_DIR}
diff --git a/tools/get_deps.py b/tools/get_deps.py
index b81dabae0..34e2f30a3 100644
--- a/tools/get_deps.py
+++ b/tools/get_deps.py
@@ -52,7 +52,7 @@ deps_optional = {
'lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43'],
'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git',
'950819b7de9b32f92c3edf396bc5ffb8d66e7009',
- 'kinetis_k32l2 lpc51 lpc54 lpc55 mcx imxrt'],
+ 'kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt'],
'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/sekigon-gonnoc/Pico-PIO-USB.git',
'c3715ce94b6f6391856de56081d4d9b3e98fa93d',
'rp2040'],
@@ -166,7 +166,7 @@ deps_optional = {
'ch32v307'],
'lib/CMSIS_5': ['https://github.com/ARM-software/CMSIS_5.git',
'20285262657d1b482d132d20d755c8c330d55c1f',
- 'imxrt kinetis_k32l2 lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf ra saml2x'
+ 'imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf ra saml2x'
'stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 '
'stm32h7 stm32l0 stm32l1 stm32l4 stm32l5 stm32u5 stm32wb'],
'lib/sct_neopixel': ['https://github.com/gsteiert/sct_neopixel.git',