diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware index 4fb3c46141..5488e6c0ae 100644 --- a/.ci/Jenkinsfile-hardware +++ b/.ci/Jenkinsfile-hardware @@ -21,7 +21,7 @@ pipeline { sh 'make cubepilot_cubeorange_test' sh 'make cubepilot_cubeorange_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'cubepilot_cubeorange_test' } post { always { @@ -70,6 +70,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf || true' resetBoard() } } @@ -91,7 +92,7 @@ pipeline { sh 'make cuav_x7pro_test' sh 'make cuav_x7pro_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'cuav_x7pro_test' } post { always { @@ -138,6 +139,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/cuav_x7pro_test/cuav_x7pro_test.elf || true' resetBoard() } } @@ -159,7 +161,7 @@ pipeline { sh 'make px4_fmu-v3_test' sh 'make px4_fmu-v3_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'px4_fmu-v3_test' } post { always { @@ -206,6 +208,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf || true' resetBoard() } } @@ -227,7 +230,7 @@ pipeline { sh 'make px4_fmu-v4_test' sh 'make px4_fmu-v4_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'px4_fmu-v4_test' } post { always { @@ -273,6 +276,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf || true' resetBoard() } } @@ -294,7 +298,7 @@ pipeline { sh 'make px4_fmu-v4pro_test' sh 'make px4_fmu-v4pro_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'px4_fmu-v4pro_test' } post { always { @@ -341,6 +345,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf || true' resetBoard() } } @@ -362,7 +367,7 @@ pipeline { sh 'make px4_fmu-v5_debug' sh 'make px4_fmu-v5_debug bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_debug' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'px4_fmu-v5_debug' } post { always { @@ -420,6 +425,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf || true' resetBoard() } } @@ -441,7 +447,7 @@ pipeline { sh 'make px4_fmu-v5_stackcheck' sh 'make px4_fmu-v5_stackcheck bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_stackcheck' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'px4_fmu-v5_stackcheck' } post { always { @@ -498,6 +504,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf || true' resetBoard() } } @@ -519,7 +526,7 @@ pipeline { sh 'make px4_fmu-v5_test' sh 'make px4_fmu-v5_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'px4_fmu-v5_test' } post { always { @@ -566,6 +573,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf || true' resetBoard() } } @@ -573,73 +581,6 @@ pipeline { } } - // stage("modalai_fc-v1_test") { - // stages { - // stage("build modalai_fc-v1_test") { - // agent { - // docker { - // image 'px4io/px4-dev-nuttx-focal:2021-09-08' - // args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - // } - // } - // steps { - // checkout scm - // sh 'export' - // sh 'make distclean' - // sh 'ccache -s' - // sh 'git fetch --tags' - // sh 'make modalai_fc-v1_test' - // sh 'make modalai_fc-v1_test bootloader_elf' - // sh 'ccache -s' - // stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_test' - // } - // post { - // always { - // sh 'make distclean' - // } - // } - // } // stage build - // stage("hardware") { - // agent { - // label 'modalai_fc-v1' - // } - // stages { - // stage("flash") { - // steps { - // sh 'export' - // sh 'find /dev/serial' - // unstash 'modalai_fc-v1_test' - // sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_test/modalai_fc-v1_bootloader.elf' - // // flash board and watch bootup - // sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_test/modalai_fc-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600' - // } - // } - // stage("tests") { - // steps { - // runTests() - // } - // } - // stage("status") { - // steps { - // // configure - // resetParameters() - // sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "4001"' // generic quadcopter - // sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader - // checkStatus() - // quickCalibrate() - // } - // } - // stage("print topics") { - // steps { - // printTopics() - // } - // } - - // } - // } // stage test - // } - // } - stage("nxp_fmuk66-v3_test") { stages { stage("build nxp_fmuk66-v3_test") { @@ -654,7 +595,7 @@ pipeline { sh 'make nxp_fmuk66-v3_test' //sh 'make nxp_fmuk66-v3_test bootloader_elf' sh 'ccache -s' - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_test' + stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_test' } post { always { @@ -701,6 +642,7 @@ pipeline { } post { always { + sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf || true' resetBoard() } } diff --git a/platforms/nuttx/Debug/jlink_gdb_backtrace.sh b/platforms/nuttx/Debug/jlink_gdb_backtrace.sh new file mode 100755 index 0000000000..3082f3218a --- /dev/null +++ b/platforms/nuttx/Debug/jlink_gdb_backtrace.sh @@ -0,0 +1,41 @@ +#! /bin/sh + +if command -v gdb-multiarch &> /dev/null +then + GDB_CMD=$(command -v gdb-multiarch) + +elif command -v arm-none-eabi-gdb &> /dev/null +then + GDB_CMD=$(command -v arm-none-eabi-gdb) + +else + echo "gdb arm-none-eabi or multi-arch not found" + exit 1 +fi + +file ${1} + +gdb_cmd_file=$(mktemp) + +cat >"${gdb_cmd_file}" < + DEPENDS + px4 + ${PX4_BINARY_DIR}/jlink_gdb_start.sh + ${CMAKE_CURRENT_SOURCE_DIR}/Debug/jlink_gdb_backtrace.sh + WORKING_DIRECTORY ${PX4_BINARY_DIR} + USES_TERMINAL + ) + # jlink_upload_bootloader # board directory supplied bootloader.bin