请选择 进入手机版 | 继续访问电脑版
查看: 127|回复: 1

使用VSCode调试嵌入式程序

[复制链接]
  • TA的每日心情
    开心
    2020-12-18 12:56
  • 签到天数: 55 天

    [LV.5]常住居民I

    83

    主题

    233

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1728
    最后登录
    2024-6-13
    发表于 2024-5-17 17:20:12 | 显示全部楼层 |阅读模式
    上文小编给大家介绍了一下如何使用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查看是否安装成功:

    是否安装成功

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

    就可以成功连接

    就可以成功连接
    接下来,开始编写对应的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"
            }
        ]
    }
    这样一来就可以开始正式调试了,调试方法和上期一致,点击小绿三角,可以发现程序命中了断点,调试成功。

    调试成功

    调试成功
    External方式的使用
    所谓external其实就是说gdb server是外部开启的,不需要VSCode自动打开。
    编写配置脚本,将“servertype”修改为extern,之后需要在本地打开pyocd:
    之后需要在本地打开pyocd.png
    否则会报错:
    否则会报错.png
    再次点击绿色小三角,即可进行调试,效果和直接使用pyocd的方式没有任何区别:
    区别.png
    需要注意:如果此时点击停止调试,本地打开的pyocd会显示断开连接,在下次调试前,需要手动重新开启pyocd的gdb server。
    需要手动重新开启pyocd的gdb server.png
    好了,通过配置VSCode使用不同的gdb server,可以实现对嵌入式程序的精准调试。这将有助于您更好地理解嵌入式系统的运行机制和代码行为,提高开发效率和质量。希望能够为您提供有用的指导和帮助。感兴趣的朋友也可以尝试一下其他server类型,或者使用external来配置使用暂不直接支持的第三方调试插件。

    签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-4 10:00
  • 签到天数: 1346 天

    [LV.10]以坛为家III

    89

    主题

    4310

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9141
    最后登录
    2024-6-5
    发表于 2024-5-17 20:03:34 | 显示全部楼层
    现在的调试手段还真是多
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-6-14 19:30 , Processed in 0.161625 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表