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

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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第1张图片

2.2.3 执行如下命令

更新源:

sudo apt-get update

更新软件列表:

sudo apt-get dist-upgrade

升级软件:

sudo apt-get upgrade

二、相关软件安装

2.1.1 VSCode

1、应用商店安装

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第2张图片

2、安装包安装

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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第3张图片

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

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

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

2.1.2 必备插件

Chinese simplified:简体汉化
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第4张图片

ARM Assembly :汇编代码高亮显示
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第5张图片

C/C++:用于提供高亮显示和代码补全Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第6张图片

Cortex-Debug:用于提供调试配置
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第7张图片

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)下载
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第8张图片

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

右键解压,安装得到下图。双击STM32CubeMX即可运行
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第9张图片

进入主界面->help
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第10张图片

安装HAL库
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第11张图片

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

解压得到:
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第12张图片

修改/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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第13张图片

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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第14张图片

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。

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第15张图片
编译安装

make
make install

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

最后查看是否安装成功:

	openocd -version

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第16张图片
显示版本号说明安装成功

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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第17张图片

三、VSCode配置及调试

3.1 CubeMX生成Makefile文件

首先生成一个CubeMX工程
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第18张图片

生成Makefile文件
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第19张图片

3.2 VSCode配置

打开VSCode,点击文件,打开文件夹
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第20张图片

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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第21张图片

点击左侧资源管理器,可以看到导入的文件夹
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第22张图片

点击右下角Linux,配置JSON文件
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第23张图片

得到下图所示文件
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第24张图片
打开资源管理器中的Makefile文件
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第25张图片

将"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
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第26张图片
选择ST-link会导致连接不上出现如下错误
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第27张图片

点击后会生成如下代码
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第28张图片
我们只需要修改下面两部分,分别是可执行文件和设置文件。
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第29张图片

在左侧资源管理器中找到elf文件,如果没有build这个文件夹,点开下方终端,输入make进行编译。
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第30张图片
右键复制绝对路径(相对路径也可),粘贴到上面代码中

设置文件在/usr/local/share/openocd/scripts/interface和target中
将这两个文件地址粘贴到上面代码即可
注意:这里的ST-link是V2版本的,如果你用的是V2.1则选择stlink-v2-1.cfg
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第31张图片
保存,点击终端,配置任务
Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第32张图片

进入task.json文件

将下面代码复制进去

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

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第33张图片
随后打开编译窗口或者快捷键F5开始调试。

Ubuntu系统下搭建STM32开发环境(CubeMX+VScode+STlink+OpenOCD+GDBserver)_第34张图片

你可能感兴趣的:(visual,studio,code,ubuntu,arm,stm32,linux)