我试图创建一个项目,使用VS Code和CMake对Tiva C系列板进行编程。
到目前为止,我已经设法使它有点工作,因为它的建设,闪光,甚至让我调试它。然而,它是基于粗略的launch.json
和tasks.json
文件,我对它不满意。因此,现在我正尝试使用CMakeTools扩展使其正常工作,以便通过扩展提供的底部导航栏上的按钮启动调试器。问题是,它似乎没有使用我的launch.json
文件,所以当它启动时,它使用了错误的调试器路径和可执行文件(launch.json
文件正确地指向了它们)。
我的项目目前看起来像这样:my project structure。
它基本上由一个包含我的源代码的src
文件夹、一个CMakeLists.txt
文件、一个包含工具链配置的cmake
文件夹、一个用于Tiva的链接器文件、一个包含launch.json
和tasks.json
文件的.vscode
文件夹以及CMake生成的构建输出目录组成。
到目前为止,如果我单击CMakeTools扩展导航栏上的build命令,它将正确构建并使用CMake中的自定义目标命令 Flink 到Tiva。但是当我点击调试按钮时,它不能正常启动,而是给我这个output。
这是我的launch.json文件:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debugger Tiva",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/projeto.axf",
"targetArchitecture": "ARM",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"MIMode": "gdb",
"miDebuggerServerAddress": "localhost:3333",
"externalConsole": false,
"miDebuggerPath": "C:/ProgramData/chocolatey/lib/gcc-arm-embedded/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gdb.exe",
"preLaunchTask": "Launch OpenOCD",
"postDebugTask": "Kill OpenOCD"
}
]
}
正如在这个launch.json中所看到的,我想从其中获取调试器的路径是C:/ProgramData/chocolatey/lib/gcc-arm-embedded/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gdb.exe
,但在输出的图片中,它显示它试图使用C:/ProgramData/chocolatey/bin/arm-none-eabi-gdb.exe
(我猜它确实工作,所以它很好)。最大的问题显然是它正在寻找作为C:/Users/Lucas Yukio/Documents/Projetos Tiva/teste display/build/projeto
的启动程序,而.axf
在最后缺少扩展。
当我使用f5
键盘快捷键启动调试器时,它会正常启动,所以我最好的想法是扩展没有使用我制作的launch.json
文件。对吗?如果是这样,我该怎么解决?
1条答案
按热度按时间dxxyhpgq1#
任务栏上这个非常小的“Debug button”(bug图标)来自
vscode-cmake-tools
扩展,描述为here,它只提供“快速调试”功能,如果你想使用它而不是按F5键,你需要自定义“launch.json”文件。文档建议使用使可执行文件对vscode-cmake-tools扩展可见。
我建议忍受VSCode插件的有限功能,这些插件是以“做一件事,但要做好”的哲学制作的。使用vscode-cmake-tools插件进行构建,并使用另一个插件进行调试。不知道它是否支持Tiva微控制器,但我推荐你cortex-debug插件