使用VSCode调试嵌入式程序

上文小编给大家介绍了一下如何使用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的方式没有任何区别:

 

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

 

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

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/89773.html

Like (0)
guozi的头像guozi
Previous 2024年6月5日 上午10:32
Next 2024年6月5日

相关推荐

  • 提高百度权重

    想要在搜索引擎中获得更高的曝光率,提升网站的排名吗?那就不得不提到百度权重。它是百度搜索引擎用来评价网站质量和重要性的重要指标。但是,什么是百度权重?它对网站有怎样的影响?如何提高…

    行业资讯 2024年4月8日
    0
  • win32time服务不能自动启动的原因及解决方法

    Win32time服务是网络互联网服务器中必不可少的一部分,它负责同步服务器的时间,保证服务器和客户端之间的时间一致性。然而,有时候我们会发现win32time服务无法自动启动,导…

    行业资讯 2024年4月20日
    0
  • 什么是gpu跑满?

    云服务器行业中,经常会提到GPU跑满的问题。那么什么是GPU?它又是如何跑满的呢?是因为使用过度还是其他原因?如何检测GPU是否跑满?更重要的是,如何解决这一问题?下面让我们一起来…

    行业资讯 2024年3月24日
    0
  • gpu和cpu有什么区别?

    “GPU和CPU有什么区别?”这是一个让人感到困惑的问题。在云服务器行业中,GPU和CPU都是非常重要的组成部分,它们在服务器运行中发挥着不同的作用。但是,什么是GPU和CPU?它…

    行业资讯 2024年4月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注