ubuntu 20.04 + vscode + ST-Link 调试 STM32

1 软件安装

Ubuntu 下解压 gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 和 cmake

sudo apt-get install cmake
tar -xjvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

 配置系统环境变量使其生效

vim ~/.bashrc
export PATH=$PATH:/home/liukang/tools/mcu/gcc-arm-none-eabi-10.3-2021.10/bin
source ~/.bashrc

验证 cmake 和 交叉编译工具链版本

cmake -version
arm-none-eabi-gcc -v

 cmake 下载地址

 arm-none-eabi官网

vscode 安装 C/C++ 、C/C++ Extension Pack 、C/C++ Themes、Cotex-Debug、Arm Assembly、GBKtoUTF8、Remote-SSH 、Remote Explorer、vscode-icons等,可以根据自己需求安装插件,我是使用 ssh 远程连接 ubuntu

2 安装openocd

该工具往下用于连接 jlink 或 stlink,往上提供reset,halt,flash等常用功能,用于程序下载和调试。选用OpenOCD,使用方便且开源。

sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev

sudo apt-get install libtool libsysfs-dev

sudo apt-get install openocd
#默认安装OpenOCD的路径:/usr/share/openocd/scripts。

 验证版本

openocd --version

3 STLink安装

sudo apt-get install libusb-1.0
sudo apt-get install libgtk-3-dev
unzip stlink-1.8.0.zip
cd stlink-1.8.0
cmake .
make
cd bin
sudo cp st-* /usr/local/bin
cd ../lib
sudo cp *.so* /lib32
sudo cp config/udev/rules.d/49-stlinkv* /etc/udev/rules.d/
sudo cp ./config/chips /usr/local/share/stlink/ -rf

 验证是否安装成功

注意:bin 目录下的 st-util 是ST-LINK GDB server,我们使用该文件进行调试,也可以使用openocd

4 配置launch.json文件

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Stlink-Debug",
            "cwd": "${workspaceFolder}",
            "executable": "./build/stm32f103zet6.elf",
            "request": "launch",
            "type": "cortex-debug",
            "runToEntryPoint": "main",
            "interface": "swd",
            "device": "STM32F103ZET6",
            //"miDebuggerPath":"/home/liukang/tools/mcu/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb",
            "svdFile": "./svd/STM32F103.svd",
            "showDevDebugOutput": "both",
            "v1": false,
            "liveWatch": {
                "enabled": true,
                "samplesPerSecond": 1
            },
            // 使用 stutil 作为 gdbserver
            "servertype": "stutil",
            "serverpath": "/usr/local/bin/st-util",
            /*"servertype": "openocd",
            "configFiles": [
                "/usr/share/openocd/scripts/interface/stlink-v2-1.cfg",
                "/usr/share/openocd/scripts/target/stm32f4x.cfg"
            ]*/
        }
    ]
}




如果需要在在线调试期间,查看MCU寄存器数据,需加入 svd 文件。

5 结果验证

执行 sh build.sh 脚本编译项目

烧写程序

F5 断点调试

以上就是使用 CMake + Ubuntu 20.04 +  ST-Link 进行 STM32 的编译、调试和烧录,虽然 Keil软件提供了便捷的一键编译、运行和烧录功能,并且具备可视化的界面,但通过这种方式进行开发,可以帮助更深入地理解底层原理。在配置和使用的过程中,将对整个流程的有更清晰的掌握。使用vscode 存粹是个人爱好(vscode 是全宇宙最好的代码编辑器🤭)

下面是配置过程中涉及到的安装包以及项目工程(stm32f103zet6)为例。

资源包

作者:qq_51769114

物联沃分享整理
物联沃-IOTWORD物联网 » ubuntu 20.04 + vscode + ST-Link 调试 STM32

发表回复