vscode updates

* working debugging (one click build and debug)
   * SITL jmavsim
   * SITL gazebo
   * jlink px4_fmu-v{2-5}
 * improved syntax highlighting
   * GNU linker files
   * ROS message files msg/*.msg
   * jinja2 template files
 * fixed intellisense support
This commit is contained in:
Daniel Agar 2019-03-22 20:55:39 -04:00 committed by GitHub
parent 8cdc2d9ae9
commit 5e6bfe1ad8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 367 additions and 120 deletions

3
.gitignore vendored
View File

@ -67,5 +67,6 @@ posix-configs/SITL/init/test/*_generated
.vscode/.cortex-debug.peripherals.state.json
.vscode/.cortex-debug.registers.state.json
.vscode/c_cpp_properties.json
.vscode/compile_commands.json
.vscode/ipch/

26
.vscode/c_cpp_properties.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"configurations": [
{
"name": "Linux",
"intelliSenseMode": "gcc-x64",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"browse": {
"path": [
"${workspaceFolder}/src/",
"${workspaceFolder}/src/lib/",
"${workspaceFolder}/src/lib/matrix",
"${workspaceFolder}/src/platforms",
"${workspaceFolder}/platforms/",
"."
],
"limitSymbolsToIncludedHeaders": true
},
"compileCommands": "${workspaceFolder}/.vscode/compile_commands.json",
"configurationProvider": "vector-of-bool.cmake-tools"
}
],
"version": 4
}

View File

@ -1,6 +0,0 @@
[
{
"name": "PX4 default",
"preferredGenerator": "Ninja"
}
]

View File

@ -11,58 +11,53 @@ CONFIG:
buildType: Debug
settings:
CONFIG: px4_sitl_default
px4_sitl_rtps:
short: px4_sitl_rtps
buildType: RelWithDebInfo
px4_sitl_default_ASan:
short: px4_sitl (Address Sanitizer)
buildType: AddressSanitizer
settings:
CONFIG: px4_sitl_rtps
CONFIG: px4_sitl_default
px4_fmu-v2_default:
short: px4_fmu-v2
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v2_default
px4_fmu-v3_default:
short: px4_fmu-v3
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v3_default
px4_fmu-v4_default:
short: px4_fmu-v4
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v4_default
px4_fmu-v4pro_default:
short: px4_fmu-v4pro
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v4pro_default
px4_fmu-v5_default:
short: px4_fmu-v5
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v5_default
px4_fmu-v5_rtps:
short: px4_fmu-v5_rtps
buildType: MinRelSize
settings:
CONFIG: px4_fmu-v5_rtps
airmind_mindpx-v2_default:
short: airmind_mindpx-v2
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: airmind_mindpx-v2_default
av_x-v1_default:
short: av-x
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: av_x-v1_default
intel_aerofc-v1_default:
short: intel_aerofc-v1
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: intel_aerofc-v1_default
nxp_fmuk66-v3_default:
short: nxp_fmuk66-v3
buildType: MinRelSize
buildType: MinSizeRel
settings:
CONFIG: nxp_fmuk66-v3_default

View File

@ -2,12 +2,16 @@
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"ajshort.ros",
"chiehyu.vscode-astyle",
"dan-c-underwood.arm",
"github.vscode-pull-request-github",
"marus25.cortex-debug",
"ms-python.python",
"ms-vscode.cpptools",
"peterjausovec.vscode-docker",
"twxs.cmake",
"vector-of-bool.cmake-tools"
"vector-of-bool.cmake-tools",
"wholroyd.jinja"
]
}
}

247
.vscode/launch.json vendored
View File

@ -1,115 +1,194 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch (shell)",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s", "etc/init.d-posix/rcS",
"-t", "${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [{"name": "PX4_SIM_MODEL", "value": "shell"}],
"externalConsole": false,
"version": "0.2.0",
"configurations": [
{
"name": "SITL shell",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s",
"etc/init.d-posix/rcS",
"-t",
"${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [
{
"name": "PX4_SIM_MODEL",
"value": "shell"
}
],
"externalConsole": false,
"linux": {
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true,
"ignoreFailures": true
},
{
"description": "PX4 ignore wq signals",
"text": "handle SIGCONT nostop noprint nopass",
"ignoreFailures": true
}
]
},
{
"name": "(lldb) Launch (shell)",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s", "etc/init.d-posix/rcS",
"-t", "${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [{"name": "PX4_SIM_MODEL", "value": "shell"}],
"externalConsole": true,
"osx": {
"MIMode": "lldb",
"setupCommands": [
{
"text": "pro hand -p true -s false -n false SIGCONT",
}
]
},
{
"name": "(gdb) Launch (jmavsim iris)",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s", "etc/init.d-posix/rcS",
"-t", "${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [{"name": "PX4_SIM_MODEL", "value": "iris"}],
"externalConsole": false,
}
},
{
"name": "SITL jmavsim iris",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s",
"etc/init.d-posix/rcS",
"-t",
"${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [
{
"name": "PX4_SIM_MODEL",
"value": "iris"
}
],
"externalConsole": false,
"preLaunchTask": "jmavsim",
"postDebugTask": "jmavsim kill",
"linux": {
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true,
"ignoreFailures": true
},
{
"description": "PX4 ignore wq signals",
"text": "handle SIGCONT nostop noprint nopass",
"ignoreFailures": true
}
],
"preLaunchTask": "jmavsim"
]
},
{
"name": "(lldb) Launch (jmavsim iris)",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s", "etc/init.d-posix/rcS",
"-t", "${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [{"name": "PX4_SIM_MODEL", "value": "iris"}],
"externalConsole": true,
"osx": {
"MIMode": "lldb",
"preLaunchTask": "jmavsim",
"setupCommands": [
{
"text": "pro hand -p true -s false -n false SIGCONT",
}
]
}
},
{
"name": "SITL gazebo iris",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s",
"etc/init.d-posix/rcS",
"-t",
"${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [
{
"name": "PX4_SIM_MODEL",
"value": "iris"
}
],
"externalConsole": false,
"preLaunchTask": "gazebo iris",
"postDebugTask": "gazebo kill",
"linux": {
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "PX4 ignore wq signals",
"text": "handle SIGCONT nostop noprint nopass",
"ignoreFailures": true
}
]
},
{
"name": "(jlink) px4_fmu-v2",
"cwd": "${workspaceRoot}",
"executable": "${workspaceRoot}/build/px4_fmu-v2_default/px4_fmu-v2_default.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"device": "STM32F427VI",
"svdFile": "${workspaceRoot}/../cmsis-svd/data/STMicro/STM32F427.svd",
"interface": "swd",
"ipAddress": null,
"serialNumber": null
},
]
}
"osx": {
"MIMode": "lldb",
"setupCommands": [
{
"text": "pro hand -p true -s false -n false SIGCONT",
}
]
}
},
{
"name": "px4_fmu-v2 (jlink) ",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"device": "STM32F427VI",
"svdFile": "${workspaceRoot}/../cmsis-svd/data/STMicro/STM32F427.svd",
"interface": "swd"
},
{
"name": "px4_fmu-v3 (jlink)",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"device": "STM32F427VI",
"svdFile": "${workspaceRoot}/../cmsis-svd/data/STMicro/STM32F427.svd",
"interface": "swd"
},
{
"name": "px4_fmu-v4 (jlink)",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"device": "STM32F427VI",
"svdFile": "${workspaceRoot}/../cmsis-svd/data/STMicro/STM32F427.svd",
"interface": "swd"
},
{
"name": "px4_fmu-v4pro (jlink)",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"device": "STM32F469VI",
"svdFile": "${workspaceRoot}/../cmsis-svd/data/STMicro/STM32F469.svd",
"interface": "swd"
},
{
"name": "px4_fmu-v5 (jlink)",
"executable": "${command:cmake.launchTargetPath}",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"device": "STM32F765VI",
"svdFile": "${workspaceRoot}/../cmsis-svd/data/STMicro/STM32F7x5.svd",
"interface": "swd"
},
]
}

78
.vscode/settings.json vendored
View File

@ -1,10 +1,82 @@
{
"editor.insertSpaces": false,
"editor.tabSize": 8,
"editor.wordWrapColumn": 120,
"editor.suggest.localityBonus": true,
"astyle.astylerc": "${workspaceFolder}/Tools/astyle/astylerc",
"astyle.c.enable": true,
"astyle.cpp.enable": true,
"breadcrumbs.enabled": true,
"cmake.autoRestartBuild": true,
"cmake.buildDirectory": "${workspaceFolder}/build/${variant:CONFIG}",
"cmake.buildBeforeRun": true,
"cmake.configureOnOpen": true,
"cmake.copyCompileCommands": "${workspaceFolder}/.vscode/compile_commands.json",
"cmake.debugConfig": {
"name": "SITL shell (gdb)",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [
"${workspaceFolder}/ROMFS/px4fmu_common",
"-s",
"etc/init.d-posix/rcS",
"-t",
"${workspaceFolder}/test_data"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build/px4_sitl_default/tmp",
"environment": [
{
"name": "PX4_SIM_MODEL",
"value": "shell"
}
],
"externalConsole": false,
"linux": {
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "PX4 ignore wq signals",
"text": "handle SIGCONT nostop noprint nopass",
"ignoreFailures": true
}
]
},
"osx": {
"MIMode": "lldb",
"setupCommands": [
{
"text": "pro hand -p true -s false -n false SIGCONT",
}
]
}
},
"C_Cpp.clang_format_fallbackStyle": "none",
"C_Cpp.configurationWarnings": "Disabled",
"C_Cpp.default.cppStandard": "c++11",
"C_Cpp.default.cStandard": "c99",
"cmake.buildDirectory": "${workspaceRoot}/build/${variant:CONFIG}",
"cmake.autoRestartBuild": true,
"cmake.configureOnOpen": true,
"C_Cpp.default.intelliSenseMode": "gcc-x64",
"C_Cpp.errorSquiggles": "Disabled",
"C_Cpp.formatting": "Disabled",
"C_Cpp.intelliSenseEngine": "Default",
"C_Cpp.intelliSenseEngineFallback": "Disabled",
"debug.toolBarLocation": "docked",
"git.detectSubmodulesLimit": 20,
"files.associations": {
"*.jinja": "jinja"
},
"search.exclude": {
"build/**": true
},
"search.showLineNumbers": true,
"workbench.statusBar.feedback.visible": false,
"workbench.editor.enablePreview": false,
"workbench.editor.enablePreviewFromQuickOpen": false,
"workbench.editor.highlightModifiedTabs": true
}

82
.vscode/tasks.json vendored
View File

@ -8,14 +8,90 @@
"type": "shell",
"command": "Tools/jmavsim_run.sh",
"isBackground": true,
"args": ["-r", "500"],
"args": [
"-r",
"500"
],
"options": {
"cwd": "${workspaceRoot}"
},
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".",
}
}
]
},
{
"label": "jmavsim kill",
"type": "shell",
"command": "kill $(ps aux | grep jmavsim | grep -v 'grep' | awk '{print $2}')",
"problemMatcher": []
},
{
"label": "gazebo build",
"type": "shell",
"command": "make px4_sitl_default sitl_gazebo",
"options": {
"cwd": "${workspaceRoot}"
},
"problemMatcher": []
},
{
"label": "gazebo iris",
"type": "shell",
"dependsOn": "gazebo build",
"options": {
"cwd": "${workspaceRoot}",
"env": {
"GAZEBO_PLUGIN_PATH": "${workspaceRoot}/build/px4_sitl_default/build_gazebo",
"GAZEBO_MODEL_PATH": "${workspaceRoot}/Tools/sitl_gazebo/models"
}
},
"command": "gzserver --verbose ${workspaceRoot}/Tools/sitl_gazebo/worlds/iris.world",
"isBackground": true,
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".",
}
}
]
},
{
"label": "gazebo kill",
"type": "shell",
"command": "killall gzserver",
"problemMatcher": []
},
]
}
}

View File

@ -94,7 +94,7 @@ target_link_libraries(px4 PRIVATE
-fno-exceptions
-fno-rtti
-Wl,--script=${PX4_BINARY_DIR_CYG}/NuttX/nuttx-config/scripts/ld.script
-Wl,--script=${PX4_BINARY_DIR_CYG}/NuttX/nuttx-config/scripts/script.ld
-Wl,-Map=${PX4_CONFIG}.map
-Wl,--warn-common
-Wl,--gc-sections

View File

@ -113,7 +113,7 @@ add_custom_command(
${NUTTX_DIR}/arch/arm/include/math.h
${PX4_BINARY_DIR}/NuttX/nuttx-config/include/board.h
${PX4_BINARY_DIR}/NuttX/nuttx-config/include/nsh_romfsimg.h
${PX4_BINARY_DIR}/NuttX/nuttx-config/scripts/ld.script
${PX4_BINARY_DIR}/NuttX/nuttx-config/scripts/script.ld
${CMAKE_CURRENT_BINARY_DIR}/nuttx_copy_config_dir.stamp
COMMAND ${CMAKE_COMMAND} -E remove -f ${NUTTX_DIR}/include/nuttx/config.h
COMMAND ${CMAKE_COMMAND} -E copy_directory ${NUTTX_CONFIG_DIR}/ ${PX4_BINARY_DIR}/NuttX/nuttx-config
@ -125,7 +125,7 @@ add_custom_command(
${NUTTX_SRC_DIR}/math.h
${NUTTX_SRC_DIR}/nsh_romfsimg.h
${NUTTX_CONFIG_DIR}/include/board.h
${NUTTX_CONFIG_DIR}/scripts/ld.script
${NUTTX_CONFIG_DIR}/scripts/script.ld
${CMAKE_CURRENT_BINARY_DIR}/nuttx_copy.stamp
${CMAKE_CURRENT_BINARY_DIR}/apps_copy.stamp
WORKING_DIRECTORY ${NUTTX_DIR}