Merge pull request #2749 from hathach/hil-change
HIL test hardware changes
This commit is contained in:
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -120,10 +120,8 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
board:
|
board:
|
||||||
# ESP32-S2
|
|
||||||
- 'espressif_kaluga_1'
|
- 'espressif_kaluga_1'
|
||||||
# ESP32-S3 skip since devkitm is also compiled in hil-test workflow
|
- 'espressif_s3_devkitm'
|
||||||
#- 'espressif_s3_devkitm'
|
|
||||||
with:
|
with:
|
||||||
build-system: 'cmake'
|
build-system: 'cmake'
|
||||||
toolchain: 'esp-idf'
|
toolchain: 'esp-idf'
|
||||||
|
2
.github/workflows/cifuzz.yml
vendored
2
.github/workflows/cifuzz.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
oss-fuzz-project-name: 'tinyusb'
|
oss-fuzz-project-name: 'tinyusb'
|
||||||
language: c++
|
language: c++
|
||||||
fuzz-seconds: 600
|
fuzz-seconds: 400
|
||||||
|
|
||||||
- name: Upload Crash
|
- name: Upload Crash
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
22
.github/workflows/hil_test.yml
vendored
22
.github/workflows/hil_test.yml
vendored
@@ -66,9 +66,11 @@ jobs:
|
|||||||
cmake-build/cmake-build-*/*/*/*.bin
|
cmake-build/cmake-build-*/*/*/*.bin
|
||||||
|
|
||||||
# ---------------------------------------
|
# ---------------------------------------
|
||||||
# Build Espressif
|
# Build Espressif (skipped since CP210x cause USB bus issue)
|
||||||
|
# cp210x ttyUSB0: usb_serial_generic_write_bulk_callback - nonzero urb status: -71
|
||||||
# ---------------------------------------
|
# ---------------------------------------
|
||||||
build-esp:
|
build-esp:
|
||||||
|
if: false
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
BOARDS_LIST: ${{ steps.parse_hil_json.outputs.BOARDS_LIST }}
|
BOARDS_LIST: ${{ steps.parse_hil_json.outputs.BOARDS_LIST }}
|
||||||
@@ -121,10 +123,10 @@ jobs:
|
|||||||
if: github.repository_owner == 'hathach'
|
if: github.repository_owner == 'hathach'
|
||||||
needs:
|
needs:
|
||||||
- build
|
- build
|
||||||
- build-esp
|
#- build-esp
|
||||||
runs-on: [self-hosted, ARM64, rpi, hardware-in-the-loop]
|
runs-on: [self-hosted, ARM64, rpi, hardware-in-the-loop]
|
||||||
env:
|
env:
|
||||||
BOARDS_LIST: "${{ needs.build.outputs.BOARDS_LIST }} ${{ needs.build-esp.outputs.BOARDS_LIST }}"
|
BOARDS_LIST: "${{ needs.build-esp.outputs.BOARDS_LIST }} ${{ needs.build.outputs.BOARDS_LIST }}"
|
||||||
steps:
|
steps:
|
||||||
- name: Clean workspace
|
- name: Clean workspace
|
||||||
run: |
|
run: |
|
||||||
@@ -135,9 +137,9 @@ jobs:
|
|||||||
# USB bus on rpi is not stable, reset it before testing
|
# USB bus on rpi is not stable, reset it before testing
|
||||||
# - name: Reset USB bus
|
# - name: Reset USB bus
|
||||||
# run: |
|
# run: |
|
||||||
# # reset VIA Labs 2.0 hub
|
# echo "1-2" | sudo tee /sys/bus/usb/drivers/usb/unbind
|
||||||
# sudo usbreset 001/002
|
# sleep 5
|
||||||
# lsusb -t
|
# echo "1-2" | sudo tee /sys/bus/usb/drivers/usb/bind
|
||||||
|
|
||||||
- name: Checkout TinyUSB
|
- name: Checkout TinyUSB
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -147,14 +149,8 @@ jobs:
|
|||||||
- name: Download Artifacts
|
- name: Download Artifacts
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: hil_rpi
|
|
||||||
path: cmake-build
|
|
||||||
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: hil_rpi_esp
|
|
||||||
path: cmake-build
|
path: cmake-build
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
- name: Test on actual hardware
|
- name: Test on actual hardware
|
||||||
run: |
|
run: |
|
||||||
|
@@ -428,6 +428,19 @@ function(family_flash_stlink TARGET)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
# Add flash st-flash target
|
||||||
|
function(family_flash_stflash TARGET)
|
||||||
|
if (NOT DEFINED ST_FLASH)
|
||||||
|
set(ST_FLASH st-flash)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_custom_target(${TARGET}-stflash
|
||||||
|
DEPENDS ${TARGET}
|
||||||
|
COMMAND ${ST_FLASH} write $<TARGET_FILE_DIR:${TARGET}>/${TARGET}.bin 0x8000000
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Add flash openocd target
|
# Add flash openocd target
|
||||||
function(family_flash_openocd TARGET)
|
function(family_flash_openocd TARGET)
|
||||||
if (NOT DEFINED OPENOCD)
|
if (NOT DEFINED OPENOCD)
|
||||||
@@ -449,6 +462,7 @@ function(family_flash_openocd TARGET)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Add flash openocd-wch target
|
# Add flash openocd-wch target
|
||||||
# compiled from https://github.com/hathach/riscv-openocd-wch or https://github.com/dragonlock2/miscboards/blob/main/wch/SDK/riscv-openocd.tar.xz
|
# compiled from https://github.com/hathach/riscv-openocd-wch or https://github.com/dragonlock2/miscboards/blob/main/wch/SDK/riscv-openocd.tar.xz
|
||||||
function(family_flash_openocd_wch TARGET)
|
function(family_flash_openocd_wch TARGET)
|
||||||
@@ -459,6 +473,7 @@ function(family_flash_openocd_wch TARGET)
|
|||||||
family_flash_openocd(${TARGET})
|
family_flash_openocd(${TARGET})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Add flash with https://github.com/ch32-rs/wlink
|
# Add flash with https://github.com/ch32-rs/wlink
|
||||||
function(family_flash_wlink_rs TARGET)
|
function(family_flash_wlink_rs TARGET)
|
||||||
if (NOT DEFINED WLINK_RS)
|
if (NOT DEFINED WLINK_RS)
|
||||||
@@ -471,6 +486,7 @@ function(family_flash_wlink_rs TARGET)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Add flash pycod target
|
# Add flash pycod target
|
||||||
function(family_flash_pyocd TARGET)
|
function(family_flash_pyocd TARGET)
|
||||||
if (NOT DEFINED PYOC)
|
if (NOT DEFINED PYOC)
|
||||||
@@ -483,6 +499,7 @@ function(family_flash_pyocd TARGET)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Flash with UF2
|
# Flash with UF2
|
||||||
function(family_flash_uf2 TARGET FAMILY_ID)
|
function(family_flash_uf2 TARGET FAMILY_ID)
|
||||||
add_custom_target(${TARGET}-uf2
|
add_custom_target(${TARGET}-uf2
|
||||||
@@ -491,6 +508,7 @@ function(family_flash_uf2 TARGET FAMILY_ID)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Add flash teensy_cli target
|
# Add flash teensy_cli target
|
||||||
function(family_flash_teensy TARGET)
|
function(family_flash_teensy TARGET)
|
||||||
if (NOT DEFINED TEENSY_CLI)
|
if (NOT DEFINED TEENSY_CLI)
|
||||||
@@ -503,6 +521,7 @@ function(family_flash_teensy TARGET)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
# Add flash using NXP's LinkServer (redserver)
|
# Add flash using NXP's LinkServer (redserver)
|
||||||
# https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/linkserver-for-microcontrollers:LINKERSERVER
|
# https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/linkserver-for-microcontrollers:LINKERSERVER
|
||||||
function(family_flash_nxplink TARGET)
|
function(family_flash_nxplink TARGET)
|
||||||
|
@@ -58,7 +58,7 @@
|
|||||||
#define configCPU_CLOCK_HZ SystemCoreClock
|
#define configCPU_CLOCK_HZ SystemCoreClock
|
||||||
#define configTICK_RATE_HZ ( 1000 )
|
#define configTICK_RATE_HZ ( 1000 )
|
||||||
#define configMAX_PRIORITIES ( 5 )
|
#define configMAX_PRIORITIES ( 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( 128 )
|
#define configMINIMAL_STACK_SIZE ( 200 )
|
||||||
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION*4*1024 )
|
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION*4*1024 )
|
||||||
#define configMAX_TASK_NAME_LEN 16
|
#define configMAX_TASK_NAME_LEN 16
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
@@ -58,7 +58,7 @@
|
|||||||
#define configCPU_CLOCK_HZ SystemCoreClock
|
#define configCPU_CLOCK_HZ SystemCoreClock
|
||||||
#define configTICK_RATE_HZ ( 1000 )
|
#define configTICK_RATE_HZ ( 1000 )
|
||||||
#define configMAX_PRIORITIES ( 5 )
|
#define configMAX_PRIORITIES ( 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( 128 )
|
#define configMINIMAL_STACK_SIZE ( 200 )
|
||||||
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION*4*1024 )
|
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION*4*1024 )
|
||||||
#define configMAX_TASK_NAME_LEN 16
|
#define configMAX_TASK_NAME_LEN 16
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
@@ -15,7 +15,7 @@ set(CMAKE_SYSTEM_PROCESSOR cortex-m0plus CACHE INTERNAL "System Processor")
|
|||||||
set(CMAKE_TOOLCHAIN_FILE ${TOP}/examples/build_system/cmake/toolchain/arm_${TOOLCHAIN}.cmake)
|
set(CMAKE_TOOLCHAIN_FILE ${TOP}/examples/build_system/cmake/toolchain/arm_${TOOLCHAIN}.cmake)
|
||||||
|
|
||||||
set(FAMILY_MCUS STM32G0 CACHE INTERNAL "")
|
set(FAMILY_MCUS STM32G0 CACHE INTERNAL "")
|
||||||
|
set(OPENOCD_OPTION "-f interface/stlink.cfg -f target/stm32g0x.cfg")
|
||||||
|
|
||||||
#------------------------------------
|
#------------------------------------
|
||||||
# BOARD_TARGET
|
# BOARD_TARGET
|
||||||
@@ -112,6 +112,7 @@ function(family_configure_example TARGET RTOS)
|
|||||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb)
|
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb)
|
||||||
|
|
||||||
# Flashing
|
# Flashing
|
||||||
family_flash_stlink(${TARGET})
|
|
||||||
family_flash_jlink(${TARGET})
|
family_flash_jlink(${TARGET})
|
||||||
|
family_flash_stlink(${TARGET})
|
||||||
|
#family_flash_openocd(${TARGET})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@@ -58,7 +58,7 @@
|
|||||||
#define configCPU_CLOCK_HZ SystemCoreClock
|
#define configCPU_CLOCK_HZ SystemCoreClock
|
||||||
#define configTICK_RATE_HZ ( 1000 )
|
#define configTICK_RATE_HZ ( 1000 )
|
||||||
#define configMAX_PRIORITIES ( 5 )
|
#define configMAX_PRIORITIES ( 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( 128 )
|
#define configMINIMAL_STACK_SIZE ( 200 )
|
||||||
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION*4*1024 )
|
#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION*4*1024 )
|
||||||
#define configMAX_TASK_NAME_LEN 16
|
#define configMAX_TASK_NAME_LEN 16
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
@@ -1201,7 +1201,7 @@ TU_ATTR_FAST_FUNC void dcd_event_handler(dcd_event_t const* event, bool in_isr)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DCD_EVENT_SETUP_RECEIVED:
|
case DCD_EVENT_SETUP_RECEIVED:
|
||||||
// TU_ASSERT(event->setup_received.bRequest != 0,);
|
// TU_ASSERT(event->setup_received.bRequest != 0,); // for catching issue with ch32v203 and windows with -O0/-Og
|
||||||
_usbd_queued_setup++;
|
_usbd_queued_setup++;
|
||||||
send = true;
|
send = true;
|
||||||
break;
|
break;
|
||||||
|
@@ -43,7 +43,7 @@ if platform.machine() == 'aarch64':
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
ENUM_TIMEOUT = 10
|
ENUM_TIMEOUT = 30
|
||||||
|
|
||||||
|
|
||||||
# get usb serial by id
|
# get usb serial by id
|
||||||
@@ -138,10 +138,15 @@ def flash_jlink(board, firmware):
|
|||||||
|
|
||||||
|
|
||||||
def flash_stlink(board, firmware):
|
def flash_stlink(board, firmware):
|
||||||
#ret = run_cmd(f'st-flash --serial {board["flasher_sn"]} write {firmware}.bin 0x08000000')
|
|
||||||
ret = run_cmd(f'STM32_Programmer_CLI --connect port=swd sn={board["flasher_sn"]} --write {firmware}.elf --go')
|
ret = run_cmd(f'STM32_Programmer_CLI --connect port=swd sn={board["flasher_sn"]} --write {firmware}.elf --go')
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def flash_stflash(board, firmware):
|
||||||
|
ret = run_cmd(f'st-flash --serial {board["flasher_sn"]} write {firmware}.bin 0x8000000')
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
def flash_openocd(board, firmware):
|
def flash_openocd(board, firmware):
|
||||||
ret = run_cmd(f'openocd -c "adapter serial {board["flasher_sn"]}" {board["flasher_args"]} -c "program {firmware}.elf reset exit"')
|
ret = run_cmd(f'openocd -c "adapter serial {board["flasher_sn"]}" {board["flasher_args"]} -c "program {firmware}.elf reset exit"')
|
||||||
return ret
|
return ret
|
||||||
@@ -379,6 +384,7 @@ def main():
|
|||||||
fw_dir = f'examples/cmake-build-{name}/device/{test}'
|
fw_dir = f'examples/cmake-build-{name}/device/{test}'
|
||||||
fw_name = f'{fw_dir}/{test}'
|
fw_name = f'{fw_dir}/{test}'
|
||||||
print(f' {test} ... ', end='')
|
print(f' {test} ... ', end='')
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
if not os.path.exists(fw_dir):
|
if not os.path.exists(fw_dir):
|
||||||
print('Skip')
|
print('Skip')
|
||||||
|
@@ -1,12 +1,5 @@
|
|||||||
{
|
{
|
||||||
"boards": [
|
"boards": [
|
||||||
{
|
|
||||||
"name": "raspberry_pi_pico",
|
|
||||||
"uid": "E6614C311B764A37",
|
|
||||||
"flasher": "openocd",
|
|
||||||
"flasher_sn": "E6614103E72C1D2F",
|
|
||||||
"flasher_args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "feather_nrf52840_express",
|
"name": "feather_nrf52840_express",
|
||||||
"uid": "1F0479CD0F764471",
|
"uid": "1F0479CD0F764471",
|
||||||
@@ -21,16 +14,6 @@
|
|||||||
"flasher_sn": "E6614C311B597D32",
|
"flasher_sn": "E6614C311B597D32",
|
||||||
"flasher_args": "-f interface/cmsis-dap.cfg -f target/atsame5x.cfg -c \"adapter speed 5000\""
|
"flasher_args": "-f interface/cmsis-dap.cfg -f target/atsame5x.cfg -c \"adapter speed 5000\""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "espressif_s3_devkitm",
|
|
||||||
"uid": "84F703C084E4",
|
|
||||||
"tests": [
|
|
||||||
"cdc_msc_freertos", "hid_composite_freertos"
|
|
||||||
],
|
|
||||||
"flasher": "esptool",
|
|
||||||
"flasher_sn": "3ea619acd1cdeb11a0a0b806e93fd3f1",
|
|
||||||
"flasher_args": "-b 921600"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "metro_m7_1011",
|
"name": "metro_m7_1011",
|
||||||
"uid": "9CE8715DD71137363E00005002004200",
|
"uid": "9CE8715DD71137363E00005002004200",
|
||||||
@@ -38,6 +21,13 @@
|
|||||||
"flasher_sn": "000611000000",
|
"flasher_sn": "000611000000",
|
||||||
"flasher_args": "-device MIMXRT1011xxx5A"
|
"flasher_args": "-device MIMXRT1011xxx5A"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "lpcxpresso11u37",
|
||||||
|
"uid": "17121919",
|
||||||
|
"flasher": "jlink",
|
||||||
|
"flasher_sn": "000724441579",
|
||||||
|
"flasher_args": "-device LPC11U37/401"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ra4m1_ek",
|
"name": "ra4m1_ek",
|
||||||
"uid": "152E163038303131393346E46F26574B",
|
"uid": "152E163038303131393346E46F26574B",
|
||||||
@@ -48,11 +38,37 @@
|
|||||||
"flasher_args": "-device R7FA4M1AB"
|
"flasher_args": "-device R7FA4M1AB"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "lpcxpresso11u37",
|
"name": "raspberry_pi_pico",
|
||||||
"uid": "17121919",
|
"uid": "E6614C311B764A37",
|
||||||
|
"flasher": "openocd",
|
||||||
|
"flasher_sn": "E6614103E72C1D2F",
|
||||||
|
"flasher_args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stm32f072disco",
|
||||||
|
"uid": "3A001A001357364230353532",
|
||||||
"flasher": "jlink",
|
"flasher": "jlink",
|
||||||
"flasher_sn": "000724441579",
|
"flasher_sn": "779541626",
|
||||||
"flasher_args": "-device LPC11U37/401"
|
"flasher_args": "-device stm32f072rb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stm32g0b1nucleo",
|
||||||
|
"uid": "4D0038000450434E37343120",
|
||||||
|
"flasher": "openocd",
|
||||||
|
"flasher_sn": "066FFF495087534867063844",
|
||||||
|
"flasher_args": "-f interface/stlink.cfg -f target/stm32g0x.cfg"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"boards-skip": [
|
||||||
|
{
|
||||||
|
"name": "espressif_s3_devkitm",
|
||||||
|
"uid": "84F703C084E4",
|
||||||
|
"tests": [
|
||||||
|
"cdc_msc_freertos", "hid_composite_freertos"
|
||||||
|
],
|
||||||
|
"flasher": "esptool",
|
||||||
|
"flasher_sn": "3ea619acd1cdeb11a0a0b806e93fd3f1",
|
||||||
|
"flasher_args": "-b 921600"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user