零、背景
从 GitHub 上下载了一个 STM32 的工程(是关于F1无人竞速车底盘电控的),打开之后发现不是使用 keil 开发的,顿时就蒙圈了,感觉冒犯到了自己的知识盲区。通过询问师兄以及网上查找资料,发现下载下来的这个工程是在 Linux 平台上创建的,因此通过网上查找资料,详细总结了如下:使用 Ubuntu 搭建 STM32 开发环境的 “配环境” 详细步骤,以后再要配环境的话,不至于再重新百度一遍。
一、对于开发 STM32 来说,Ubuntu 的环境配置
1.1 安装 gcc-arm-nano-eabi
这一步的本质就是:安装运行在x86平台的gcc编译器,而这个编译器编译出的代码是要在ARM平台(stm32)上跑的,因此被称为交叉编译器。 因为要编译运行在STM32上的代码,因此这个gcc要和“目标代码运行在x86机器上的gcc”的名字有所区分,取名为 arm-none-eabi-gcc
。
进入 arm Developer 官网,鼠标滚轮下拉,点击下载压缩包:
等待下载,大概要花一个小时,下载下来的压缩包长这样:
解压并重命名文件夹名后长这样:
从终端进入文件夹查看文件夹内容,并进入bin文件夹查看内容:
将此bin
路径添加到环境变量中:
gedit ~/.bashrc
在~/.bashrc
文件末尾添加如下一行语句即可:
接着保存退出,并在终端执行:
source ~/.bashrc
重启终端,输入arm-none-
并按下两次Tab键,若能像下图自动补齐,则说明环境变量添加成功:
1.2 对 "1.1 安装 gcc-arm-nano-eabi"的补充说明_2020.8.25
首先亮明观点:使用1.1的方法安装 gcc-arm-nano-eabi,在后面使用make
命令编译的时候会报错,报错内容如下:
/bin/sh: 1: arm-none-eabi-gcc: Exect format error
几经百度无果后(断断续续大概卡了两天),开始怀疑是不是应该选择安装下图中的3 gcc-arm-none-eabi-10.3-2021.10-x86-linux.tar.bz2
:
于是真的按 “1.1 安装 gcc-arm-nano-eabi” 的步骤重新安装了一遍 x89_64的 gcc-arm-nano-eabi。再次使用make
命令编译工程时,依然报错,(而且报错内容是一样的,费解,希望能在评论区得到热心解答)如下图:
既然都写到这儿了,那我肯定是解决了使用make
编译时报错的问题:使用命令行安装 gcc-arm-nano-eabi:
sudo apt-get install gcc-arm-none-eabi
问题解决了!编译再也不报错了。
Ubuntu 1804 默认的arm-none-eabi-gcc
编译器的版本为 6.3.1
Ubuntu16.04下 gcc 版本号:gcc version 4.9.3 20150529。因此自动安装的编译器版本号是固定的。实在想手动安装、指定编译器版本号的话,可以参考这个链接:https://blog.csdn.net/qq_20016593/article/details/125343260
1.2 安装 gcc
sudo apt-get install gcc
我的虚拟机已经安装过了。
使用gcc -v
查看是否安装成功:
1.3 安装 make
sudo apt-get install make
我的虚拟机已经安装过了。
1.4 安装 openocd
sudo apt-get install openocd
这个倒是没安装过,安装了一遍。
使用openocd -v
查看版本信息,以确认安装成功:
Tips:原来 openocd 是 open on-chip debugger 的缩写。
二、软件安装
所需软件:
- STM32CubeMx
- VSCode
- GNU Arm Embedded Toolchain
- Mingw-w64
- make
- openocd
2.1 STM32CubeMx 安装
进入 ST官网 下拉网页,找到Linux版本的 CubeMX ,点击下载软件:
注:需要登陆才能下载,没有账号的话,邮箱注册一下很快的,由于经常要和ST打交道,因此还是设置一个正经密码的好。
下载下来的压缩包长这样:
解压之后长这样:
渐入解压之后的文件夹,双击安装:(Linux 下这种“双击安装”的方式不多见,珍惜机会)
双击安装包后弹出:(照例一路next)
等待安装完成:
然后 Next :
完成(Done)
2.2 设置 STM32CubeMx 的启动方法
方法一: 直接在安装目录启动
图形界面双击启动:
命令行进入安装目录启动:
方法二: 设置别名,在终端中方便地启动
修改.bashrc
文件
gedit ~/.bashrc
在文件末尾增加如下内容:
if [ -x ~/STM32CubeMX/STM32CubeMX ]; then
alias stm32CubeMX='~/STM32CubeMX/STM32CubeMX'
fi
保存退出,终端执行:
source ~/.bashrc
然后就可以在终端使用stm32CubeMX
打开 STM32CubeMX 了,像在终端使用code
打开 VSCode 一样方便。
2.3 VSCode 安装
进入VSCode官网 https://code.visualstudio.com/Download,选择.deb
下载包:
安装包下载下来长这样:
然后在安装包所在目录打开终端,执行如下一条命令完成安装:
sudo dpkg -i code_1.69.2-1658162013_amd64.deb
2.4 VSCode 开发 STM32 所必须的插件
ARM Assembly :汇编代码高亮显示
Cortex-Debug:用于提供调试配置
C/C++:用于提供高亮显示和代码补全
三、基于以上内容完成一个点灯程序,并下载验证
1、打开CubeMX,新建一个工程:
开始配置的界面: