【问题标题】:How to set up a Zephyr Project App in VSC?如何在 VSC 中设置 Zephyr 项目应用程序?
【发布时间】:2021-07-09 00:46:49
【问题描述】:

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

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

错误:无法开始调试。来自命令的意外 GDB 输出 “-执行-运行”。不知道怎么跑。尝试“帮助目标”。该程序 '/home/mustafa/Code/Sycamore/hello_world/build/zephyr/zephyr.elf' 有 以代码 42 (0x0000002a) 退出。

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

【问题讨论】:

    标签: visual-studio-code vscode-debugger vscode-remote zephyr-rtos


    【解决方案1】:

    只需几个步骤即可:

    1. 将必要的文件夹添加到工作区,例如:
    "folders": [
      {
          "path": ".",
          "name": "app"
      },
      {
          "path": "..\\zephyr",
          "name": "zephyr"
      },
      {
          "path": "..\\mcuboot"
      },
      {
          "path": "..\\modules\\hal\\stm32"
      }
    ]
    
    1. 安装Cortex-Debug扩展

    2. 在文件 .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 存储库中的 zephyr 和模块目录添加到我的工作区。不确定这是否相同。
    • 我下载了 cortex-debug 扩展并创建了以下 launch.json:
    • { "version": "0.2.0", "configurations": [ { "cwd": "${workspaceRoot}", "executable": "./build/zephyr/zephyr.elf ","名称":"测试","请求":"启动","类型":"皮质调试","服务器类型":"jlink","设备":"nRF52833_xxAA","服务器路径":"/ usr/bin/JLinkGDBServerCLExe", "interface": "swd" } ] }
    • 但是我得到一个错误提示“未找到未定义的 GDB 可执行文件”arm-none-eabi-gdb。请正确配置“cortex-debug.armToolchainPath”或“cortex-debug.gdbPath”。 "
    • 知道如何解决这个错误吗?请记住,我安装了带有 gdb 调试的 C/C++ 扩展。
    猜你喜欢
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多