ubuntu下vscode+STM32CubeMX+openocd+stlinkv2搭建STM32开发调试下载环境

本文主要是介绍ubuntu下vscode+STM32CubeMX+openocd+stlinkv2搭建STM32开发调试下载环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、换源

清华源

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

复制上边内容进行修改

sudo vim /etc/apt/sources.list

换源后,更新当前的源

sudo apt update
sudo apt upgrade

2、下载相关软件

在这里插入图片描述
下载deb版本

sudo dpki -i 下载的VScode deb文件

安装插件

在这里插入图片描述

3、STM32CubeMX安装

STM32CubeMX
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
给他增加图标到菜单

vim /usr/share/applications/stm32CubeMX.desktop
[Desktop Entry]
Type=Application
Name=STM32CubeMX
Comment=STM32 Development Environment
Encoding=UTF-8
StartupNotify=true
Terminal=false
Categories=Development;java;c;c++;
icon= ##########图标的路径,自己找一个就行
Exec= #########可执行文件的路径

3.1 新建一个点灯的小程序

一定一定记得这个,要不后期调试和下载报错
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 arm-none-eabi交叉编译工具安装

arm-none-eabi
在这里插入图片描述
解压后将bin文件夹加入PATH

vim ~/.bashrc
加入PATH=你的路径:$PATH

在这里插入图片描述

source ~/.bashrc

验证是否成功

arm-none-eabi-gcc --version

在这里插入图片描述

arm-none-eabi-gdb --version

在这里插入图片描述
如果这里你的GDB有问题,请一定要解决。我碰到了缺少 error while loading shared libraries: libncurses.so.5,解决方法参考

5、安装gdbserver

wget https://ftp.gnu.org/gnu/gdb/gdb-14.2.tar.xztar -xvf gdb-14.2.tar.xz./configuremakesudo make install

6、安装openocd

sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-devsudo apt-get install libtool libsysfs-devgit clone git://git.code.sf.net/p/openocd/code openocdcd openocd./bootstrap./configure makesudo make install

如果这里bootstrap阶段,告诉你子模块出错,碰到EOF提前结束,说明子模块下载失败,可以按照如下修改

vim .gitmodules
修改其子模块地址,可以去gitee上找镜像拉取,我这里jimtcl报错

在这里插入图片描述

6.1验证是否成功

openocd --version

在这里插入图片描述

7、STLink安装

依赖安装

sudo apt-get install libusb-1.0sudo apt-get install cmakesudo apt-get install libgtk-3-dev
git clone https://github.com/stlink-org/stlinkcd stlinkcmake .makecd binsudo cp st-* /usr/local/bincd ../libsudo cp *.so* /lib32sudo cp config/udev/rules.d/49-stlinkv* /etc/udev/rules.d/

验证是否成功

lsusb

在这里插入图片描述

7.1

安装界面化烧录工具
ubuntu deb下载地址

sudo dpkg -i 你的下载文件.deb

在这里插入图片描述

8、进入Vscode进行点灯

在main.c的while(1)中加入

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, 1);

点击vscode的调试,添加配置,选择
在这里插入图片描述

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"cwd": "${workspaceRoot}","executable": "./build/你的项目生成的文件.elf","name": "Debug with OpenOCD","request": "launch","type": "cortex-debug","servertype": "openocd","configFiles": ["/usr/share/openocd/scripts/interface/stlink-v2-1.cfg","/usr/share/openocd/scripts/target/stm32f1x.cfg"],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none"}]
}

需要修改的是executable,变成你的elf文件
configFiles,变成你的stlink-v2-1.cfg(STLink驱动),stm32f1x.cfg(和你开发板型号有关)文件的地址,具体的可以查看

/usr/share/openocd/scripts/interface/stlink-v2-1.cfg
/usr/share/openocd/scripts/target/stm32f1x.cfg

进入终端,输入

make

即可编译。当然你也可以配置tasks.json

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "make","problemMatcher": [],"group": {"kind": "build","isDefault": true}},]
}

9、下载烧录

  1. 命令行烧录
st-flash write 你生成的hex文件 0x8000000
  1. UI界面烧录
    在这里插入图片描述

  2. 配置tasks.json进行烧录

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "make","problemMatcher": [],"group": {"kind": "build","isDefault": true}},{"label": "download","type": "shell","command": "st-flash write 你生成的hex文件 0x8000000"}]
}

10、调试

在这里插入图片描述
如果你卡在 IMPORTANT: Set “showDevDebugOutput”: “raw” in “launch.json” to see verbose GDB transactions here. Very helpful to debug issues or report problems
的话,很大可能是你的arm-none-eabi-gdb出错了,可以尝试看看

arm-none-eabi-gdb -v

一切路径不能有中文,有中文很容易报错.OK,差不多就这样,折腾了两个晚上,记录一下,坑比较多,很少有写Ubuntu在STM32开发的

这篇关于ubuntu下vscode+STM32CubeMX+openocd+stlinkv2搭建STM32开发调试下载环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789918

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061