Ubuntu 搭建 STM32 开发环境

零、背景

从 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,新建一个工程:
在这里插入图片描述
在这里插入图片描述
开始配置的界面:
在这里插入图片描述

  • 13
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Ubuntu STM32 GCC开发环境是一种在Ubuntu操作系统上使用GCC编译器进行STM32芯片开发的环境。它提供了一系列工具和库,使得开发者可以方便地进行STM32芯片的编程和调试。其中包括STM32CubeMX、OpenOCD、GDB等工具,以及STM32 HAL库和CMSIS库等开发库。使用这个开发环境开发者可以快速地开发出高质量的STM32应用程序。 ### 回答2: Ubuntu STM32 GCC开发环境是一个非常强大的平台,允许开发人员在Ubuntu下使用GCC编译器来开发STM32芯片的外围设备的软件应用程序。GNU Compiler Collection(GCC)是一种广泛使用的编译器,可用于许多编程语言,包括C、C++和Fortran等。开发者可以在Ubuntu中安装GCC编译器,并通过使用GNU Arm Embedded Toolchain to、GNU Make、OpenOCD JLink和STLink v2软件包来编写和调试STM32外围设备的软件应用程序。 安装GCC编译器首先要在Ubuntu中安装GCC编译器。可以使用命令sudo apt-get install build-essential来安装。接着可以下载和安装GNU Arm Embedded Toolchain,这是一个特定于ARM架构的工具链,可用于编译和链接STM32外围设备的软件应用程序。安装完成后,可以通过命令arm-none-eabi-gcc和arm-none-eabi-g++来访问GCC编译器。 接着要安装GNU Make,它是一个强大的工具,可用于自动化构建和测试STM32外围设备的软件应用程序。可通过命令sudo apt-get install make来安装。 安装OpenOCD JLink和STLink v2软件包,它们是用于在Ubuntu中连接和调试STM32外围设备的软件包。安装完成后,使用命令openocd启动OpenOCD守护程序,使其与STM32芯片连接。可以通过gdb调试器来调试STM32外围设备的软件应用程序。 这种环境下的STM32外围设备的软件应用程序可以在Ubuntu中编写和调试,然后重新编译为在目标环境中运行的二进制文件,并将其上传到STM32芯片上运行。这使得编程人员可以快速、灵活地创建、测试和调试STM32外围设备的软件应用程序,从而提高了开发速度和质量。 ### 回答3: Ubuntu是一个开源的操作系统,它非常适合程序员和开发人员使用。STM32是一种基于ARM架构的微控制器,常用于嵌入式系统中。因此,在Ubuntu系统下搭建STM32 GCC开发环境非常有必要。 首先,需要安装ARM的交叉编译器。在Ubuntu下,可以通过以下命令进行安装: sudo apt-get install gcc-arm-none-eabi 该命令可以自动安装ARM的交叉编译器,然后就可以在终端窗口中使用编译器了。 接着,需要安装STM32开发工具。STMicroelectronics提供了一套非常好的开发工具,称为STM32CubeIDE。可以通过以下命令进行下载和安装: wget https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32-cubide.html#getsoftware-scroll 这个命令将下载STM32CubeIDE,并将其安装在你的Ubuntu系统中。安装完成后,就可以打开STM32CubeIDE,并开始在Ubuntu系统上开发STM32应用程序了。 在使用STM32CubeIDE时,需要选择合适的开发板,并按照开发板的手册进行配置和程序编写。编写完成后,可以利用ARM的交叉编译器将代码编译成适合STM32的二进制文件,并将其下载到开发板上进行测试和调试。 总的来说,Ubuntu STM32 GCC开发环境搭建比较简单,只需要安装ARM的交叉编译器和STM32开发工具即可。安装完成后,开发人员可以使用Ubuntu系统来进行STM32应用程序的编写、编译、调试和测试工作,从而提高开发效率,降低开发成本。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值