0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用VSCode调试嵌入式程序:如何切换gdb server

恩智浦MCU加油站 来源:恩智浦MCU加油站 2024-05-09 11:02 次阅读

上文小编给大家介绍了一下如何使用VSCode结合cortex-debug插件进行调试的方法。本篇就趁热打铁,进一步深入了解一下如何切换gdb server。让我们可以不仅仅使用JLinkGDBServer进行调试。

根据cortex-debug本身介绍,目前所支持的gdb server类型有: supported types are jlink, openocd, pyocd, pe, stlink, stutil, qemu,bmp and external. 本篇将着重介绍使用pyocd以及如何使用external选项来进行调试。

pyocd的配置与使用

安装pyocd非常的方便,我们通过名字就可以看出来,这东西好像是和python有关,没错,安装也是借助于python:

pip install pyocd

安装完毕后,打开控制台,直接键入pyocd查看是否安装成功:

31efde24-0db0-11ef-a297-92fbcf53809c.png

安装成功后,我们再来连接一下板子看看是否能够连接成功,这里测试的平台是MIMXRT1060-EVK,输入命令行:pyocd gdbserver--target mimxrt1060,就可以成功连接:

31fa4800-0db0-11ef-a297-92fbcf53809c.png

接下来,开始编写对应的VSCode配置脚本,请大家着重注意文中标红部分,并根据实际调试情况修改路径。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceFolder}",
            "executable": " evkmimxrt1060_hello_world.axf",
            "request": "launch",
            "type": "cortex-debug",
            "runToEntryPoint": "main",
            "servertype": "pyocd",
            "target": "mimxrt1060",
            "gdbTarget": "localhost:3333",
            "svdFile": 
            "armToolchainPath": "C:/nxp/MCUXpressoIDE_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin"
        }
    ]
}

这样一来就可以开始正式调试了,调试方法和上期一致,点击小绿三角,可以发现程序命中了断点,调试成功。

32062864-0db0-11ef-a297-92fbcf53809c.png

External方式的使用

所谓external其实就是说gdb server是外部开启的,不需要VSCode自动打开。

编写配置脚本,将“servertype”修改为extern,之后需要在本地打开pyocd:

31fa4800-0db0-11ef-a297-92fbcf53809c.png

否则会报错:

32574c6c-0db0-11ef-a297-92fbcf53809c.png

再次点击绿色小三角,即可进行调试,效果和直接使用pyocd的方式没有任何区别:

32062864-0db0-11ef-a297-92fbcf53809c.png

需要注意:如果此时点击停止调试,本地打开的pyocd会显示断开连接,在下次调试前,需要手动重新开启pyocd的gdb server。

32908d92-0db0-11ef-a297-92fbcf53809c.png

好了,通过配置VSCode使用不同的gdb server,可以实现对嵌入式程序的精准调试。这将有助于您更好地理解嵌入式系统的运行机制和代码行为,提高开发效率和质量。希望能够为您提供有用的指导和帮助。感兴趣的朋友也可以尝试一下其他server类型,或者使用external来配置使用暂不直接支持的第三方调试插件。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19111

    浏览量

    304845
  • GDB调试
    +关注

    关注

    0

    文章

    24

    浏览量

    1447
  • vscode
    +关注

    关注

    1

    文章

    155

    浏览量

    7698

原文标题:使用VSCode调试嵌入式程序:配置与使用多样化的gdb server

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VSCode中使用J-Link调试嵌入式系统

    Visual Studio Code是微软推出的免费的源代码编辑器,通过插件,可以实现GDB +J-Link+GDBServer方式在VSCode调试嵌入式系统。
    发表于 08-18 11:06 1806次阅读
    在<b class='flag-5'>VSCode</b>中使用J-Link<b class='flag-5'>调试</b><b class='flag-5'>嵌入式</b>系统

    嵌入式开发习惯和嵌入式gdb调试步骤

    嵌入式linux开发过程中,出现BUG是在所难免的,这时就需要用到调试威廉希尔官方网站 了,最常用、最简单的调试方法当属printf打印了。 如果ubuntu测试通过,程序下载到板子里出现BUG,
    发表于 12-17 23:39

    嵌入式Linux编译调试

    文件,然后make,这样就可以得到对应的bin运行文件,最后把该运行文件拷贝到嵌入式Linux板子上,运行程序。而调试的话,一般是用在Linux虚拟机中用交叉编译工具的gdb进行
    发表于 11-04 09:04

    如何搭建嵌入式Linux的GDB调试环境

    linux 领域我们最常用的就是GDB 调试工具,通过GDB调试嵌入式C 程序。本章我们首先
    发表于 11-05 06:03

    如何搭建嵌入式GDB调试环境?

    开发板如何与PC段通信?gdb如何移植?如何搭建嵌入式GDB调试环境?
    发表于 12-24 06:49

    如何使用GDB进行嵌入式远程调试

    如何使用 GDB 进行嵌入式远程调试
    发表于 12-24 07:01

    如何在PC上通过gdb调试嵌入式程序

    怎样通过网络与PC端的gdb进行通信呢?如何在PC上通过gdb调试嵌入式程序呢?
    发表于 12-24 06:27

    使用gdb远程调试嵌入式主板程序分享

    使用gdb远程调试嵌入式主板程序0. 准备工作0.0 环境:Linux:Ubuntu18 64Bit in VMWare嵌入式目标板:随意,
    发表于 12-24 06:04

    嵌入式Linux的GDB调试环境建立

    嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。这样,应
    发表于 04-02 14:33 519次阅读

    嵌入式Linux系统的GDB远程调试的实现

    stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。 就 目前而言,嵌入式Linux系统中,主要有三种远程调试
    发表于 04-02 14:38 409次阅读

    GDB串行协议概述 GDB Server的作用

    1.概述做嵌入式开发时,很多时候都会使用到GDB,从底层去理解GDB调试过程,将更加容易的理解调试的过程。 在做
    的头像 发表于 08-10 10:10 5502次阅读
    <b class='flag-5'>GDB</b>串行协议概述 <b class='flag-5'>GDB</b> <b class='flag-5'>Server</b>的作用

    使用 VSCode 远程 图形化 GDB 调试 嵌入式linux

    目录标题引言环境步骤vscode remote ssh 配置Linux编译机配置设备板端配置vscode launch设置调试引言之前说了,通过core dump找程序bug,但是有
    发表于 11-01 17:06 1次下载
    使用 <b class='flag-5'>VSCode</b> 远程 图形化 <b class='flag-5'>GDB</b> <b class='flag-5'>调试</b> <b class='flag-5'>嵌入式</b>linux

    嵌入式Linux GDB调试环境搭建与使用

    /跳出函数、设置断点、查看变量等等。Ubuntu资源充足,可以直接用gdb调试程序嵌入式Linux性能弱,一般PC上运行源码和GDB工具,可执行文件在开发板上运行。PC上通过
    发表于 11-01 17:59 8次下载
    <b class='flag-5'>嵌入式</b>Linux <b class='flag-5'>GDB</b><b class='flag-5'>调试</b>环境搭建与使用

    Linux嵌入式 gdb VSCode图形化调试教程

    linux 领域我们最常用的就是GDB 调试工具,通过GDB调试嵌入式C 程序。本章我们首先
    发表于 11-02 12:21 15次下载
    Linux<b class='flag-5'>嵌入式</b> <b class='flag-5'>gdb</b> <b class='flag-5'>VSCode</b>图形化<b class='flag-5'>调试</b>教程

    嵌入式Linux GDB是什么

    GDB 调试工具,通过 GDB调试嵌入式 C 程序
    的头像 发表于 07-27 16:29 754次阅读
    <b class='flag-5'>嵌入式</b>Linux <b class='flag-5'>GDB</b>是什么