零、背景

从 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 ]; thenalias 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,新建一个工程:


开始配置的界面:

Ubuntu 搭建 STM32 开发环境相关推荐

  1. 使用树莓派搭建stm32开发环境

    使用树莓派搭建stm32开发环境踩了很多坑,下面主要是记录一下踩过的坑,以及碰到的问题. 开发方式的选择 1.使用Eclipse+GDB+OpenOCD+STlink 这种方式我发现eclipse的I ...

  2. linux pip3使用清华源_Linux实战016:Ubuntu搭建python开发环境

    我们在安装Ubuntu系统的时候会自带安装python2.7和python3.6版本的Python解释器,直接执行"ptyhon"默认运行的是python2.7,只有执行" ...

  3. ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)

    Vscode安装 ubuntu软件中自带vscode的安装包,一键完成,不废话,没有的想办法解决. 编译链操作 下载 官方最新地址 有系统区别,下载对应的压缩到到电脑 · for 64-bit Lin ...

  4. VS Code 搭建stm32开发环境

    MCU免费开发环境 一般芯片厂家会提供各种开发IDE方案,通常其中就包括其自家的集成IDE,如: 意法半导体 STM32CubeIDE NXP Codewarrior TI CCS 另外也可以用ecl ...

  5. ubuntu java 开发环境_详解ubuntu搭建Java开发环境

    没有用Java写过程序,做为一个Java新手,在写第一个Hello,world程序之前,先在Ubuntu中搭建Java开发环境. 本文结构: 一.JDK安装 二.MyEclipse安装 三.Hello ...

  6. stm32f746 linux,在Linux系统下搭建STM32开发环境--Nucleo-F429ZI

    (by中文社区:fengzi)在windows系统下开发stm32非常方便,我们有很多的工具,IDE等可供选择,同样是操作系统,在Lunix下开发也同样如此.对于开发爱好者来说,Lunix也是一个很好 ...

  7. 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 1]

    Keil MDK.IAR等工具是各类STM32单片机使用的主要IDE,不过都是收费的,在使用中很可能牵扯到一定的版权问题.GCC(GNU Compiler Collection)作为GNU计划的一部分 ...

  8. STM32开发 | Clion搭建STM32开发环境

    目录 前言 1.软件以及所需工具 2.添加到环境变量 1) 将 MinGW.OpenOCD 以及 arm-none-eabi-gcc 文件夹下的 bin 文件添加到系统环境变量中. 2) 测试是否添加 ...

  9. ubuntu搭建esp-idf开发环境 解决github下载慢

    简述 乐鑫为了解决国内用户在安装idf开发环境时,因下载过慢导致下载失败的问题,在gitee(码云)上提出了一套解决方案.使得国内用户能快速安装开发环境. 具体项目地址:https://gitee.c ...

  10. linux eclipse stm32,在ubuntu下利用eclipse搭建stm32开发环境和st-link调试

    一.下载eclipse: 我们选择的工具为Eclipse IDE for C/C++ Developers,官网下载地址在 https://www.eclipse.org/downloads/pack ...

最新文章

  1. python requests java_java实现类似python requests的session功能
  2. 如何判断某ABAP系统的Netweaver后台是否支持AMDP
  3. var radioname = new array();_兰帕德:引进VAR是为了回放关键时刻的情况,他们的行为令我困惑...
  4. jsf表单验证_JSF验证示例教程–验证器标签,定制验证器
  5. crontab日常使用梳理
  6. python multiprocess queue_Python:Multiprocessing Queue.put不适用于半大数...
  7. vscode中配置cmake及debug使用
  8. 性能测试:竞品APP性能对比测试
  9. 深入理解TTL 与 CMOS 电路
  10. 微信查询对账单对账+数据读取解析入库
  11. 实习僧招聘网站信息采集
  12. Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!
  13. 2018ICPC焦作站 B - Ultraman vs. Aodzilla and Bodzilla(贪心)
  14. 浅学C++(3)学习C语言(电话簿)
  15. 初入Java,安装jdk,ij编译,运行
  16. python中的位运算符
  17. C# 10分钟入门基于WebOffice实现在线编辑文档,实时保存到服务器(所有office,兼容WPS)
  18. 拯救者y7000p进入BIOS
  19. 从零学起-----Java篇01 初识Java
  20. 2014校园招聘_百度2014校园招聘

热门文章

  1. Sqoop--全量/增量、导入/导出
  2. Yate学习--基于Windows安装和运行Yate
  3. win10 远程桌面卡顿_win10系统使用远程桌面卡顿的设置教程
  4. 淘宝关于用户行为的数据分析
  5. word打出计算机图形符号,word显示所有格式标记
  6. html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫
  7. FlinkKafkaProducer源码分析
  8. pnuts系统的局限性_水平系统的局限性
  9. 转行之后,我为什么选择做软件测试
  10. 关于里程碑图 2017.01