Visual studio code 如何在VSC中设置Zephyr项目应用程序?

Visual studio code 如何在VSC中设置Zephyr项目应用程序?,visual-studio-code,vscode-debugger,vscode-remote,zephyr-rtos,Visual Studio Code,Vscode Debugger,Vscode Remote,Zephyr Rtos,我正在尝试使用VSC开发和调试带有ZephyrOS的嵌入式C应用程序。这可能吗?是否有设置此项的说明?是否有zephyr安装扩展?Zephyr文档讨论了如何在eclipse上调试应用程序,并且有一个eclipse/Zephyr插件,但是如果可能的话,我更喜欢使用VSC 由于Zephyr使用了CMake,我想我应该遵循VSC CMake项目教程。当它要求选择一个套件时,没有适合zephyr的套件,所以我没有选择任何活动套件。有了这个设置,我实际上能够为blinky示例获得成功的构建,但无法调试项目

我正在尝试使用VSC开发和调试带有ZephyrOS的嵌入式C应用程序。这可能吗?是否有设置此项的说明?是否有zephyr安装扩展?Zephyr文档讨论了如何在eclipse上调试应用程序,并且有一个eclipse/Zephyr插件,但是如果可能的话,我更喜欢使用VSC

由于Zephyr使用了CMake,我想我应该遵循VSC CMake项目教程。当它要求选择一个套件时,没有适合zephyr的套件,所以我没有选择任何活动套件。有了这个设置,我实际上能够为blinky示例获得成功的构建,但无法调试项目。我得到的错误是:

错误:无法启动调试。来自命令的意外GDB输出 “-exec run”。我不知道怎么跑。试试“帮助目标”。节目 “/home/mustafa/Code/Sycamore/hello_world/build/zephyr/zephyr.elf”已经 已退出,代码为42(0x0000002a)

如果有人对如何解决这个错误或在VSC中设置zephyr项目有任何意见,那就太好了。谢谢

只需几个步骤:

  • 向工作区添加必要的文件夹,如:
  • 安装扩展插件

  • 在文件.vscode/launch.json中设置调试会话:

     "configurations": [
     {
         "name": "App",
         "cwd": "${workspaceRoot}",
         "executable": "./app/build/zephyr/zephyr.elf",
         "request": "attach",
         "type": "cortex-debug",
         "serverpath": "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServerCL.exe",
         "servertype": "jlink",
         "device": "stm32f412RE",
         "interface": "swd",
         "svdFile": "./STM32F412.svd"
     },
     {
         "name": "Bootloader",
         "cwd": "${workspaceRoot}",
         "executable": "./boot/build/zephyr/boot.elf",
         "request": "launch",
         "type": "cortex-debug",
         "serverpath": "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServerCL.exe",
         "servertype": "jlink",
         "device": "stm32f412RE",
         "interface": "swd",
         "runToMain": true,
         "svdFile": "./STM32F412.svd"
     }
    

  • 谢谢Eugene分享以上信息。我不太清楚我应该在哪个文件中添加上面的“文件夹”指令,但我继续了,我将zephyr repo中的zephyr和模块目录添加到了我的工作区。不确定是否相同。我下载了cortex调试扩展并创建了以下launch.json:{“version”:“0.2.0”,“configurations”:[{“cwd”:“${workspaceRoot}”,“executable”:“/build/zephyr/zephyr.elf”,“name”:“Test”,“request”:“launch”,“type”:“cortex debug”、“servertype”:“jlink”、“device”:“nRF52833_xxAA”、“serverpath”:“/usr/bin/JLinkGDBServerCLExe”、“interface”:“swd”}]}但我收到一个错误,说“未定义的GDB可执行文件”arm none eabi GDB“未找到”。请正确配置“cortex debug.armToolchainPath”或“cortex debug.gdbPath”。知道如何解决此错误吗?请记住,我在gdb调试中安装了C/C++扩展。
     "configurations": [
     {
         "name": "App",
         "cwd": "${workspaceRoot}",
         "executable": "./app/build/zephyr/zephyr.elf",
         "request": "attach",
         "type": "cortex-debug",
         "serverpath": "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServerCL.exe",
         "servertype": "jlink",
         "device": "stm32f412RE",
         "interface": "swd",
         "svdFile": "./STM32F412.svd"
     },
     {
         "name": "Bootloader",
         "cwd": "${workspaceRoot}",
         "executable": "./boot/build/zephyr/boot.elf",
         "request": "launch",
         "type": "cortex-debug",
         "serverpath": "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServerCL.exe",
         "servertype": "jlink",
         "device": "stm32f412RE",
         "interface": "swd",
         "runToMain": true,
         "svdFile": "./STM32F412.svd"
     }