diff --git a/platforms/nuttx/Debug/flash_bin.jlink.in b/platforms/nuttx/Debug/flash_bin.jlink.in new file mode 100644 index 0000000000..e84cb0dbea --- /dev/null +++ b/platforms/nuttx/Debug/flash_bin.jlink.in @@ -0,0 +1,9 @@ +Device @DEBUG_DEVICE@ +eoe 1 +si SWD +speed auto +r +h +loadbin @BOARD_FIRMWARE_BIN@,@BOARD_FIRMWARE_APP_OFFSET@ +go +qc diff --git a/platforms/nuttx/cmake/jlink.cmake b/platforms/nuttx/cmake/jlink.cmake index 8d3cd76e1a..324f651232 100644 --- a/platforms/nuttx/cmake/jlink.cmake +++ b/platforms/nuttx/cmake/jlink.cmake @@ -104,3 +104,22 @@ if(bootloader_bin OR (EXISTS "${PX4_BOARD_DIR}/bootloader/${PX4_BOARD_VENDOR}_${ ) endif() endif() + +if(uavcan_bl_image_name) + # jlink_flash_bootloader + find_program(JLinkExe_PATH JLinkExe) + if(JLinkExe_PATH) + set(BOARD_FIRMWARE_BIN ${PX4_BINARY_DIR}/${uavcan_bl_image_name}) + set(BOARD_FIRMWARE_APP_OFFSET "0x08010000") + + configure_file(${PX4_SOURCE_DIR}/platforms/nuttx/Debug/flash_bin.jlink.in ${PX4_BINARY_DIR}/flash_bin.jlink @ONLY) + add_custom_target(jlink_flash_uavcan_bin + COMMAND ${JLinkExe_PATH} -CommandFile ${PX4_BINARY_DIR}/flash_bin.jlink + DEPENDS + ${PX4_SOURCE_DIR}/platforms/nuttx/Debug/flash_bin.jlink.in + ${uavcan_bl_image_name} + WORKING_DIRECTORY ${PX4_BINARY_DIR} + USES_TERMINAL + ) + endif() +endif() diff --git a/src/drivers/bootloaders/CMakeLists.txt b/src/drivers/bootloaders/CMakeLists.txt index 47e0df1942..71255071a1 100644 --- a/src/drivers/bootloaders/CMakeLists.txt +++ b/src/drivers/bootloaders/CMakeLists.txt @@ -60,21 +60,23 @@ if(NOT "${PX4_BOARD_LABEL}" MATCHES "canbootloader") if ("${uavcanbl_git_desc}" STREQUAL "") set(uavcanbl_git_desc ffffffff) endif() - set(uavcan_bl_imange_name ${HWBOARD_ID}-${SW_MAJOR}.${SW_MINOR}.${uavcanbl_git_desc}.uavcan.bin) - message(STATUS "Generating UAVCAN Bootable as ${uavcan_bl_imange_name}") - add_custom_command(OUTPUT ${uavcan_bl_imange_name} deploy/${HWBOARD_ID}.bin + set(uavcan_bl_image_name ${HWBOARD_ID}-${SW_MAJOR}.${SW_MINOR}.${uavcanbl_git_desc}.uavcan.bin) + set(uavcan_bl_image_name "${uavcan_bl_image_name}" CACHE STRING "UAVCAN BL Image name" FORCE) + message(STATUS "Generating UAVCAN Bootable as ${uavcan_bl_image_name}") + add_custom_command(OUTPUT ${uavcan_bl_image_name} deploy/${HWBOARD_ID}.bin COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/make_can_boot_descriptor.py - -v --use-git-hash ${PX4_BOARD}.bin ${uavcan_bl_imange_name} + -v --use-git-hash ${PX4_BOARD}.bin ${uavcan_bl_image_name} COMMAND COMMAND ${CMAKE_COMMAND} -E make_directory deploy COMMAND - ${CMAKE_COMMAND} -E copy ${uavcan_bl_imange_name} deploy/${HWBOARD_ID}.bin + ${CMAKE_COMMAND} -E copy ${uavcan_bl_image_name} deploy/${HWBOARD_ID}.bin DEPENDS ${PX4_BINARY_DIR}/${PX4_BOARD}.bin ${CMAKE_CURRENT_SOURCE_DIR}/make_can_boot_descriptor.py WORKING_DIRECTORY ${PX4_BINARY_DIR} ) - add_custom_target(build_uavcan_bl ALL DEPENDS ${uavcan_bl_imange_name}) + add_custom_target(build_uavcan_bl ALL DEPENDS ${uavcan_bl_image_name}) + endif()