mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 10:26:52 +08:00
cmake generate vscode launch.json
This commit is contained in:
@@ -166,6 +166,59 @@ add_custom_target(weak_symbols
|
||||
# debugger helpers
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Debug/gdbinit.in ${PX4_BINARY_DIR}/.gdbinit)
|
||||
|
||||
# vscode launch.json
|
||||
# FIXME: hack to skip if px4_io-v2 because it's a build within a build
|
||||
if(NOT PX4_BUILD MATCHES "px4_io-v2")
|
||||
if(CONFIG_ARCH_CHIP_MK66FN2M0VMD18)
|
||||
set(DEBUG_DEVICE "MK66FN2M0xxx18")
|
||||
set(DEBUG_SVD_FILE "MK66F18.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F100C8)
|
||||
set(DEBUG_DEVICE "STM32F100C8")
|
||||
set(DEBUG_SVD_FILE "STM32F100xx.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F103RB)
|
||||
set(DEBUG_DEVICE "STM32F103C4")
|
||||
set(DEBUG_SVD_FILE "STM32F103xx.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F302K8)
|
||||
set(DEBUG_DEVICE "STM32F302K8")
|
||||
set(DEBUG_SVD_FILE "STM32F302.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F303CC)
|
||||
set(DEBUG_DEVICE "STM32F303CC")
|
||||
set(DEBUG_SVD_FILE "STM32F303.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F405RG)
|
||||
set(DEBUG_DEVICE "STM32F405RG")
|
||||
set(DEBUG_SVD_FILE "STM32F405.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F427V)
|
||||
set(DEBUG_DEVICE "STM32F427VI")
|
||||
set(DEBUG_SVD_FILE "STM32F427.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F429V)
|
||||
set(DEBUG_DEVICE "STM32F429VI")
|
||||
set(DEBUG_SVD_FILE "STM32F429.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F446R)
|
||||
set(DEBUG_DEVICE "STM32F446RC")
|
||||
set(DEBUG_SVD_FILE "STM32F446.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F469I)
|
||||
set(DEBUG_DEVICE "STM32F469IE")
|
||||
set(DEBUG_SVD_FILE "STM32F469.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F745VG)
|
||||
set(DEBUG_DEVICE "STM32F745VG")
|
||||
set(DEBUG_SVD_FILE "STM32F7x5.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F765II)
|
||||
set(DEBUG_DEVICE "STM32F765II")
|
||||
set(DEBUG_SVD_FILE "STM32F7x5.svd")
|
||||
elseif(CONFIG_ARCH_CHIP_STM32F777NI)
|
||||
set(DEBUG_DEVICE "STM32F777NI")
|
||||
set(DEBUG_SVD_FILE "STM32F7x7.svd")
|
||||
endif()
|
||||
|
||||
file(GLOB_RECURSE DEBUG_SVD_FILE_PATH ${CMAKE_SOURCE_DIR}/../cmsis-svd/*/${DEBUG_SVD_FILE})
|
||||
if(DEBUG_SVD_FILE-NOTFOUND)
|
||||
set(DEBUG_SVD_FILE "")
|
||||
else()
|
||||
message(STATUS "Found SVD: ${DEBUG_SVD_FILE_PATH}")
|
||||
endif()
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Debug/launch.json.in ${PX4_SOURCE_DIR}/.vscode/launch.json @ONLY)
|
||||
endif()
|
||||
|
||||
add_custom_target(debug
|
||||
COMMAND ${GDB} -iex 'set auto-load safe-path ${PX4_BINARY_DIR}' $<TARGET_FILE:px4>
|
||||
DEPENDS px4 ${PX4_BINARY_DIR}/.gdbinit
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "jlink (@PX4_BOARD@)",
|
||||
"device": "@DEBUG_DEVICE@",
|
||||
"svdFile": "@DEBUG_SVD_FILE_PATH@",
|
||||
"executable": "${command:cmake.launchTargetPath}",
|
||||
"request": "launch",
|
||||
"type": "cortex-debug",
|
||||
"servertype": "jlink",
|
||||
"interface": "swd",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"preLaunchCommands": [
|
||||
"source ${workspaceRoot}/platforms/nuttx/Debug/PX4",
|
||||
"source ${workspaceRoot}/platforms/nuttx/Debug/NuttX",
|
||||
"source ${workspaceRoot}/platforms/nuttx/Debug/ARMv7M",
|
||||
"set mem inaccessible-by-default off",
|
||||
"set print pretty",
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "blackmagic (@PX4_BOARD@)",
|
||||
"device": "@DEBUG_DEVICE@",
|
||||
"svdFile": "@DEBUG_SVD_FILE_PATH@",
|
||||
"executable": "${command:cmake.launchTargetPath}",
|
||||
"request": "launch",
|
||||
"type": "cortex-debug",
|
||||
"servertype": "bmp",
|
||||
"BMPGDBSerialPort": "/dev/ttyACM0",
|
||||
"interface": "swd",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"preLaunchCommands": [
|
||||
"source ${workspaceRoot}/platforms/nuttx/Debug/PX4",
|
||||
"source ${workspaceRoot}/platforms/nuttx/Debug/NuttX",
|
||||
"source ${workspaceRoot}/platforms/nuttx/Debug/ARMv7M",
|
||||
"set mem inaccessible-by-default off",
|
||||
"set print pretty",
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user