cmake: add jlink_flash_uavcan_bin helper

This commit is contained in:
Daniel Agar 2021-03-18 16:16:24 -04:00
parent a86e854a3b
commit 8f242ec444
3 changed files with 36 additions and 6 deletions

View File

@ -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

View File

@ -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()

View File

@ -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()