如何在Linux下为STM32 MCU构建代码

2024-03-26  

步骤1:安装必需的软件

首先,安装必需的软件。


为ARM安装gcc编译器:

gcc编译器包含用于编译,链接和构建MCU的构建代码的工具。安装以下三个软件包:

gcc-arm-none-eabi

binutils-arm-none-eabi

libnewlib-arm-none-eabi

sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi

安装STM32CubeMX

STM32CubeMX是用于生成C项目的基于Java的工具。借助此工具可以配置使用过的MCU的所有部分,例如USART,I2C,SPI,GPIO,TIMx,。..。

网页:www.st.com/stm32cube

CubeMX工具具有Linux支持。易于安装:

下载并解压缩zip文件

运行安装程序

遵循向导

取决于您的ST32硬件(STM32F0,STM32F10x 。.. |),您需要为MCU下载库。运行STM32CubeMX并单击“帮助”-》“安装新库”。从列表中为您的MCU选择最新的库。

安装Makefile4CubeMX

从CubeMX项目生成Makefile需要使用Makefile4CubeMX。

下载链接:github.com/duro80/Makefile4CubeMX

如何安装:

git clone https://github.com/duro80/Makefile4CubeMX.git

sudo ln -s“ $ PWD“/CubeMX2Makefile.py/usr/bin/CubeMX2Makefile.py

安装代码:: Blocks IDE

要安装Code :: Blocks IDE,请使用您的软件包管理器。在Ubuntu下可用的版本是13.12-3:

sudo apt-get install codeblocks

安装stlink

stlink是用于将构建的代码下载到MCU(闪存)的程序。由texane维护的inux版本,位于github:github.com/texane/stlink。此处介绍了安装过程。如果您喜欢二进制文件,则最新版本在这里:github.com/texane/stlink/releases。

步骤2:设置代码:: Blocks IDE

如何在Linux下为STM32 MCU构建代码

要为ARM处理器编译并构建自己的程序,必须设置C :: B IDE。在“设置-》编译器。..”中:

在左窗格中选择“全局编译器设置”

在顶窗格中选择编译器:ARM的GNU GCC编译器

在中心窗格中,选择“工具链可执行文件”选项卡并填写以下值:

编译器安装目录:/usr

C编译器:arm-none -eabi-gcc

C ++编译器:arm-none-eabi-g ++

动态库链接器:arm-none-eabi-gcc

静态链接器库:arm-none-eabi-ar

调试器:现在可以为空

make程序:make

Step 3:创建STM32CubeMX项目

在启动项目之前,请检查是否存在特定库MCU。在菜单帮助-》安装新库中,检查所需的库(在我的情况下为STM32F0版本1.5.0)。单击“立即安装”将库安装到本地存储库中。

下一个项目将用于STM32F0 MCU。

创建新项目

有两种可能:通过选择MCU来创建新项目

,通过选择STM板

在“新建项目”对话框中选择“系列”: STM32F0,行:STM32F0x0价值行。从列表中选择STM32F030F4Px

出于测试目的,将PA0引脚检查为GPIO_Output。

设置项目属性

单击项目设置:菜单Project-》 Settings。 。.

键入项目名称(例如InstructableF0)

更改项目位置(如果需要)

工具链/IDE:选择SW4STM32

取消选中“根据根生成”

单击“确定”

生成C代码

单击“项目”-》“生成代码”以生成空项目

步骤4:生成Makefile和C :: B项目

要生成Makefile和Code :: Block项目,即Makefile4CubeMX

打开生成CubeMX项目的目录,并在其中打开终端。类型:

CubeMX2Makefile.py 。

在工作目录中将生成文件:Makefile,InstructableF0.cbp(此文件的名称取决于CubeMX项目名称)

Step 5:编写并构建程序

打开项目InstructableF0.cbp并打开main.c文件。

现在,我们可以做一点代码了。让我们切换端口PA.0来演示工作代码。

int main(void){

/* MCU Configuration-------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */

HAL_Init();

/* Configure the system clock */

SystemClock_Config();

/* Initialize all configured peripherals */

MX_GPIO_Init();

/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1) {

HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);

HAL_Delay(500); // 500ms

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

}

/* USER CODE END 3 */

}

构建代码以验证我们代码的正确性:Build-》 Rebuild(Ctrl + F11)

步骤6:连接硬件


准备硬件:

连接stlink-v2加密狗与您的电路板

LED二极管连接到端口PA0(串联到150欧姆或更高的电阻)

构建

在Code :: Block中,在编译器工具栏中选择“发布”。

选择“重建”(Ctrl + F11)。重建后,代码会自动加载到MCU

LED二极管开始闪烁。

您也可以在不使用Code :: Block IDE的情况下使用Makefile。

在工作目录(放置Makefile的目录)中打开终端,然后键入:

内部版本代码:

make

闪存代码到MCU:


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。