美文网首页程序员
vscode+stlink实现在线调试

vscode+stlink实现在线调试

作者: xEndLess | 来源:发表于2023-11-25 11:26 被阅读0次

    1.引言

    嵌入式系统的开发通常需要使用调试工具来验证和调试代码。ST-Link是STMicroelectronics提供的一种常用调试和编程工具,用于与STM32微控制器系列进行通信。本文将介绍如何在Visual Studio Code(VSCode)中配置并使用ST-Link来调试嵌入式系统。

    2.安装必要软件、工具和插件

    2.1.安装vscode;

    没什么要说的

    2.2.安装cortex-debug插件;

    在VSCode中,插件是扩展功能的关键。为了与ST-Link一起使用,我们需要安装一个支持ARM嵌入式系统的插件。打开VSCode,点击左侧的扩展图标(或使用快捷键Ctrl+Shift+X),然后在搜索框中输入“Cortex-Debug”并安装该插件。

    2.3.安装MingW64;

    安装完成记得把安装路劲加入到环境变量。

    C:\mingw64\bin
    

    进入路径C:\mingw64\bin。复制mingw32-make.exe,并改名为make.exe

    2.4.安装git;

    没什么说的

    2.5.安装arm-none-eabi-gcc

    安装完成后记得将路径加入到环境变量

    C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2020-q4-major\bin
    

    2.6.安装 ST-LINK GDB server

    st-util是ST-LINK GDB server。st-util需要通过编译官方源码得到。github上找到源码,https://github.com/stlink-org/stlink
    通过git bash命令下载源码。

    git clone源码

    下载完成后,通过下图所示方式编译STLINK源码。


    stlink编译流程

    编译完成后在路径stlink\build-mingw\bin下找到如下图所示文件。st-util就是本次需要的GDB Server工具。

    stlink toolset

    为了便于管理,可以把目录bin整体复制到C盘下。

    3.配置launch.json文件

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Cortex Debug",
                "cwd": "${workspaceFolder}",
                "executable": "./build/tmr2104.elf",
                "request": "launch",
                "type": "cortex-debug",
                "servertype": "stutil",
                "serverpath": "C:/Program Files (x86)/STMicroelectronics/bin/st-util.exe",
                "interface": "swd",
                "device": "STM32G431CB",
                "v1": false,
                "runToEntryPoint": "main",
                //.svd可以在keil官网去下载STM32G0xx_DFP
                "svdFile": "G:/SVD/STM32G431xx.svd",
                "showDevDebugOutput": "both"
            }
        ]
    }
    

    如果需要在在线调试期间,查看MCU寄存器数据,需加入。svd文件。"svdFile": "G:/SVD/STM32G431xx.svd",。svd文件可以去keil官网下载。

    4.用cubemx创建一个makefile工程

    创建完成工程后,用vscode打开。在命令行输入make指令编译功能。如下如所示:


    make

    5.连接硬件

    将ST-Link调试器连接到你的目标STM32开发板上,并确保硬件连接正确。

    6.开始调试

    通过点击VSCode中的调试按钮或使用快捷键F5启动调试会话。如果一切设置正确,VSCode将连接到ST-Link调试器并开始执行你的代码。

    [2023-11-26T03:18:40.572Z] SERVER CONSOLE DEBUG: onBackendConnect: gdb-server session connected. You can switch to "DEBUG CONSOLE" to see GDB interactions.
    "C:/Program Files (x86)/STMicroelectronics/bin/st-util.exe" -p 50000 --no-reset
    st-util 1.7.0-338-g509d60e
    2023-11-26T11:18:40 INFO common.c: STM32G43x_G44x: 32 KiB SRAM, 128 KiB flash in at least 2 KiB pages.
    2023-11-26T11:18:40 INFO gdb-server.c: Listening at *:50000...
    2023-11-26T11:18:42 INFO common.c: STM32G43x_G44x: 32 KiB SRAM, 128 KiB flash in at least 2 KiB pages.
    2023-11-26T11:18:42 INFO gdb-server.c: Found 6 hw breakpoint registers
    2023-11-26T11:18:42 INFO gdb-server.c: GDB connected.
    2023-11-26T11:18:42 INFO gdb-server.c: Found 6 hw breakpoint registers
    2023-11-26T11:18:42 INFO common.c: STM32G43x_G44x: 32 KiB SRAM, 128 KiB flash in at least 2 KiB pages.
    2023-11-26T11:18:42 INFO gdb-server.c: flash_erase: block 08000000 -> 7800
    2023-11-26T11:18:42 INFO gdb-server.c: flash_erase: page 08000000
    2023-11-26T11:18:42 INFO gdb-server.c: flash_erase: page 08000800
    2023-11-26T11:18:42 INFO gdb-server.c: flash_erase: page 08001000
    2023-11-26T11:18:42 INFO gdb-server.c: flash_erase: page 08001800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08002000
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08002800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08003000
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08003800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08004000
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08004800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08005000
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08005800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08006000
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08006800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_erase: page 08007000
    2023-11-26T11:18:43 INFO flash_loader.c: Starting Flash write for WB/G0/G4/L5/U5/H5/C0
    2023-11-26T11:18:43 INFO gdb-server.c: flash_do: block 08000000 -> 7800
    2023-11-26T11:18:43 INFO gdb-server.c: flash_do: page 08000000
      1/1   pages written
    2023-11-26T11:18:43 INFO gdb-server.c: flash_do: page 08000800
      1/1   pages written
    2023-11-26T11:18:43 INFO gdb-server.c: flash_do: page 08001000
      1/1   pages written
    2023-11-26T11:18:44 INFO gdb-server.c: flash_do: page 08001800
      1/1   pages written
    2023-11-26T11:18:44 INFO gdb-server.c: flash_do: page 08002000
      1/1   pages written
    2023-11-26T11:18:44 INFO gdb-server.c: flash_do: page 08002800
      1/1   pages written
    2023-11-26T11:18:44 INFO gdb-server.c: flash_do: page 08003000
      1/1   pages written
    2023-11-26T11:18:45 INFO gdb-server.c: flash_do: page 08003800
      1/1   pages written
    2023-11-26T11:18:45 INFO gdb-server.c: flash_do: page 08004000
      1/1   pages written
    2023-11-26T11:18:45 INFO gdb-server.c: flash_do: page 08004800
      1/1   pages written
    2023-11-26T11:18:45 INFO gdb-server.c: flash_do: page 08005000
      1/1   pages written
    2023-11-26T11:18:45 INFO gdb-server.c: flash_do: page 08005800
      1/1   pages written
    2023-11-26T11:18:46 INFO gdb-server.c: flash_do: page 08006000
      1/1   pages written
    2023-11-26T11:18:46 INFO gdb-server.c: flash_do: page 08006800
      1/1   pages written
    2023-11-26T11:18:46 INFO gdb-server.c: flash_do: page 08007000
      1/1   pages written
    2023-11-26T11:18:46 INFO gdb-server.c: Found 6 hw breakpoint registers
    

    7.结论

    通过这些步骤,你现在应该能够在VSCode中成功配置并使用ST-Link调试你的嵌入式系统。这种集成式的开发环境可以提高开发效率,并帮助你更轻松地诊断和修复代码中的问题。

    相关文章

      网友评论

        本文标题:vscode+stlink实现在线调试

        本文链接:https://www.haomeiwen.com/subject/uphowdtx.html