Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)

目录

一、换源

2.1简介

2.2配置方法:

2.2.1图形界面配置

2.2.2手动更改

2.2.3 执行如下命令

二、相关软件安装

2.1.1 VSCode

2.1.2 必备插件

2.2 CubeMX

2.2.1 Java环境

2.2.2 安装CubeMX

2.3 arm-Linux-gcc交叉编译器

2.4 gdb server

2.5 OpenOCD

2.6 STlink

三、VSCode配置及调试

3.1 CubeMX生成Makefile文件

3.2 VSCode配置

一、换源

2.1简介

换源是因为使用Ubuntu的时候在升级时感觉很慢,这时候就需要换国内源

一般使用的是清华源(https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/)/阿里源( https://mirrors.aliyun.com/ubuntu/

清华源(20.04.LTS)

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

2.2配置方法:

2.2.1图形界面配置

新手推荐使用图形界面配置: 系统设置 -> 软件和更新 选择下载服务器 ->

2.2.2手动更改

Ubuntu 的软件源配置文件是 /etc/apt/sources.list。

将系统自带的该文件做个备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

打开文件:

sudo gedit /etc/apt/sources.list

或者 sudo vi /etc/apt/sources.list

这里推荐用gedit工具,因为vim修改比较麻烦。

VIM步骤:i键插入->粘贴->ESC-> : wq

将上面内容替换原内容即可。

在这里插入图片描述

2.2.3 执行如下命令

更新源:

sudo apt-get update

更新软件列表:

sudo apt-get dist-upgrade

升级软件:

sudo apt-get upgrade

二、相关软件安装

2.1.1 VSCode

1、应用商店安装

在这里插入图片描述

2、安装包安装

进入VSCode官网https://code.visualstudio.com/下载deb包

在这里插入图片描述

或者用wget https://code.visualstudio.com/ deb包名称

cd /下载目录 ——到存储deb包的文件夹下

sudo dpkg -i deb包名称 ——安装

2.1.2 必备插件

Chinese simplified:简体汉化
在这里插入图片描述

ARM Assembly :汇编代码高亮显示
在这里插入图片描述

C/C++:用于提供高亮显示和代码补全在这里插入图片描述

Cortex-Debug:用于提供调试配置
在这里插入图片描述

2.2 CubeMX

Keil不免费,而且bug多。STM32CubeMX就简单得多,图形化界面便于操作。而且对使用HAL库开发比较友好。

2.2.1 Java环境

输入 java -version 如下图所示则说明已经有Java环境了
在这里插入图片描述

否则输入 sudo apt install default-jre 进行安装

2.2.2 安装CubeMX

官网(https://www.st.com/zh/development-tools/stm32cubemx.html)下载
在这里插入图片描述

获取软件(需要接收协议,注册并登录)

右键解压,安装得到下图。双击STM32CubeMX即可运行
在这里插入图片描述

进入主界面->help
在这里插入图片描述

安装HAL库
在这里插入图片描述

2.3 arm-Linux-gcc交叉编译器

命令行下载:

sudo apt-get install gcc-arm-linux-gnueabi

官网下载:

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

也可以参考:

https://blog.csdn.net/u013491946/article/details/72782344

解压得到:
在这里插入图片描述

修改/etc/profile文件,再最后面添加export PATH=$PATH:+上面复制的绝对路径,目的是为了将交叉编译器的命令添加到全局变量

输入:

gedit /etc/profile

然后在文件的末尾添加以下语句:

export PATH=\$PATH:/usr/local/arm/bin
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/arm/lib

保存并退出之后,执行以下命令使环境变量生效:

source profile

在终端输入以下命令则可查看交叉编译工具的版本号:

arm-linux-gnueabihf-gcc -v

在这里插入图片描述

2.4 gdb server

1、下载gdb
wget下载

wget https://ftp.gnu.org/gnu/gdb/gdb-11.2.tar.xz

gdb官网下载: https://ftp.gnu.org/gnu/gdb/

解压

tar xvf gdb-11.2.tar.xz

Cd 进入解压文件夹

	./configure

	make

	makeinstall

查看是否安装成功

	arm-none-eabi-gdb -v

在这里插入图片描述

2.5 OpenOCD

安装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

输入命令:

git clone git://git.code.sf.net/p/openocd/code openocd

下载OpenOCD的源码

cd openocd    #进入目录
./bootstrap     #生成引导环境
./configure     #生成配置如下图所示

注意看第二个ST-Link为yes。

在这里插入图片描述
编译安装

make
make install

出现错误可以在代码前加 sudo

最后查看是否安装成功:

	openocd -version

在这里插入图片描述
显示版本号说明安装成功

2.6 STlink

首先需要安装依赖包:(已安装也最好敲一遍防止漏了)

	sudo apt-get install libusb-1.0

	sudo apt-get install cmake

	sudo apt-get install libgtk-3-dev

使用git安装

	git clone [https://github.com/texane/stlink stlink.git](https://github.com/texane/stlink%20stlink.git)

-进入安装目录

	cd stlink.git

编译

	make

	make release

	make debug

	cd build

	cmake -DCMAKE_BUILD_TYPE=Debug ..

	make

	cd Release

	sudo make install

	sudo ldconfig

cd 到stlink目录

	cd ../..

将文件49-stlinkv2.rules,拷贝到位置:/etc/udev/rules.d/

	sudo cp stlink.git/config/udev/rules.d/49-stlinkv2.rules /etc/udev/rules.d/

重新导入规则:

	sudo udevadm control --reload-rules

	sudo udevadm trigger

将st-flash复制到/usr/bin下

	sudo cp src/st-flash/\* /usr/bin

查看安装是否成功

	sudo st-info --version

在这里插入图片描述

三、VSCode配置及调试

3.1 CubeMX生成Makefile文件

首先生成一个CubeMX工程
在这里插入图片描述

生成Makefile文件
在这里插入图片描述

3.2 VSCode配置

打开VSCode,点击文件,打开文件夹
在这里插入图片描述

选择包含刚刚CubeMX生成的makefile文件的目录

在这里插入图片描述

点击左侧资源管理器,可以看到导入的文件夹
在这里插入图片描述

点击右下角Linux,配置JSON文件
在这里插入图片描述

得到下图所示文件
在这里插入图片描述
打开资源管理器中的Makefile文件
在这里插入图片描述

将"defines"和"includePath"一一对应复制到c_cpp_properties.json中

注意格式!!!
下面需要修改的是compilerPath,这个需要arm-none-eabi-gcc的安装路径。其它默认即可。
“configurations”: [
{
“name”: “Linux”,
“includePath”: [
w o r k s p a c e F o l d e r / ∗ ∗ " , " {workspaceFolder}/**", " workspaceFolder/","{workspaceFolder}/Inc”,
“Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS”,
“Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3”,
“Drivers/CMSIS/Include”
],
“defines”: ["USE_HAL_DRIVER ",
“STM32F103xB”],
“compilerPath”: “/usr/local/arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc”,
“cStandard”: “gnu17”,
“cppStandard”: “gnu++14”,
“intelliSenseMode”: “linux-gcc-arm”
修改完保存。

注意不要直接复制粘贴,每一项都需要和自己安装的对应!

点击运行->添加配置

注意不要因为使用的是ST-Link,所以选择ST-Link,这里应该选择的是OpenOCD
在这里插入图片描述
选择ST-link会导致连接不上出现如下错误
在这里插入图片描述

点击后会生成如下代码
在这里插入图片描述
我们只需要修改下面两部分,分别是可执行文件和设置文件。
在这里插入图片描述

在左侧资源管理器中找到elf文件,如果没有build这个文件夹,点开下方终端,输入make进行编译。
在这里插入图片描述
右键复制绝对路径(相对路径也可),粘贴到上面代码中

设置文件在/usr/local/share/openocd/scripts/interface和target中
将这两个文件地址粘贴到上面代码即可
注意:这里的ST-link是V2版本的,如果你用的是V2.1则选择stlink-v2-1.cfg
在这里插入图片描述
保存,点击终端,配置任务
在这里插入图片描述

进入task.json文件

将下面代码复制进去

点开main.c Shift+Ctrl+B
选择build进行编译

在这里插入图片描述
随后打开编译窗口或者快捷键F5开始调试。

在这里插入图片描述

要在VSCode中配置STM32开发环境OpenOCD,请按照以下步骤操作: 1. 安装VSCode:前往VSCode的官方网站(https://code.visualstudio.com/)下载并安装VSCode。 2. 安装PlatformIO插件:在VSCode中,点击左侧的扩展图标,搜索并安装PlatformIO IDE插件。 3. 创建新的PlatformIO项目:点击左侧的Activity Bar中的PlatformIO图标,选择"New Project"创建一个新项目。 4. 选择STM32开发板:在PlatformIO的"New Project"向导中,选择你的STM32开发板型号,并选择你想要的框架和开发平台。 5. 配置OpenOCD:在项目根目录下创建一个名为`.vscode`的文件夹,并在其中创建一个名为`launch.json`的文件。在`launch.json`中添加以下配置: ```json { "version": "0.2.0", "configurations": [ { "type": "openocd", "request": "launch", "name": "Debug STM32", "executable": "openocd", "configFiles": [ "${workspaceFolder}/.pio/build/<YOUR_BUILD_ENV>/openocd.cfg" ] } ] } ``` 确保将`<YOUR_BUILD_ENV>`替换为你使用的编译环境。 6. 配置OpenOCD配置文件:在项目根目录下,找到`.pio/build/<YOUR_BUILD_ENV>/`文件夹(这里的`<YOUR_BUILD_ENV>`是你使用的编译环境),创建一个名为`openocd.cfg`的文件,并在其中添加以下配置: ```cfg source [find interface/<YOUR_DEBUG_INTERFACE>.cfg] source [find target/<YOUR_TARGET_DEVICE>.cfg] ``` 确保将`<YOUR_DEBUG_INTERFACE>`替换为你使用的调试接口,例如`stlink-v2.cfg`或`jlink.cfg`。将`<YOUR_TARGET_DEVICE>`替换为你的目标设备,例如`stm32f4x.cfg`或`stm32f1x.cfg`。 7. 连接STM32开发板和调试器:将STM32开发板连接到计算机,并将调试器连接到开发板上。 8. 开始调试:在VSCode中,点击左侧的调试图标,选择你刚刚创建的调试配置,并点击"Start Debugging"开始调试。 以上步骤应该能够帮助你在VSCode中配置STM32开发环境OpenOCD。如果你遇到任何问题,请参考PlatformIO的文档或OpenOCD的文档,或在相关论坛上寻求帮助。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值