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

问题描述

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

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

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

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

解决方法

只需几步即可:

  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","executable": "./boot/build/zephyr/boot.elf","request": "launch","runToMain": true,"svdFile": "./STM32F412.svd"
     }
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...