0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:网络整理 作者:网络整理 2019-11-15 17:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤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:
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19165

    浏览量

    404895
  • Linux
    +关注

    关注

    88

    文章

    11826

    浏览量

    219620
  • STM32
    +关注

    关注

    2313

    文章

    11196

    浏览量

    374784
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32L053x6/8:超低功耗32位MCU的卓越之选

    STM32L053x6/8:超低功耗32位MCU的卓越之选 引言 在当今的电子设备设计中,低功耗、高性能的微控制器(MCU)是众多应用的核心需求。STM32L053x6/8系列
    的头像 发表于 04-18 09:05 154次阅读

    STM32L151xE/STM32L152xE:超低功耗32位MCU的卓越之选

    STM32L151xE/STM32L152xE:超低功耗32位MCU的卓越之选 在当今对功耗要求极高的电子设备设计领域,STM32L151xE和ST
    的头像 发表于 04-17 14:45 152次阅读

    STM32L151xD/STM32L152xD:超低功耗32位MCU的卓越之选

    STM32L151xD/STM32L152xD:超低功耗32位MCU的卓越之选 在当今的电子设备设计领域,低功耗、高性能的微控制器(MCU)需求日益增长。ST公司的
    的头像 发表于 04-17 14:45 177次阅读

    STM32N6 在 PSRAM 上运行代码的调试

    开发其产品过程中,使用了 STM32N657X0H3Q。客户的代码很大,不能放在SRAM 上运行,想放在 PSRAM 上去运行,并咨询如何在 STM32CubeIDE 上进行调试。2.
    发表于 04-15 16:02 0次下载

    STM32L151xC与STM32L152xC:超低功耗MCU的卓越之选

    STM32L151xC与STM32L152xC:超低功耗MCU的卓越之选 在当今的电子设计领域,超低功耗微控制器(MCU)的需求日益增长,尤其是在对功耗敏感的应用场景中
    的头像 发表于 03-11 16:30 320次阅读

    LAT1621_STM32N6 在 PSRAM 上运行代码的调试

    STM32N657X0H3Q。客户的代码很大,不能放在SRAM 上运行,想放在 PSRAM 上去运行,并咨询如何在 STM32CubeIDE 上进行调试。
    发表于 03-11 10:44 0次下载

    何在Zynq UltraScale+ MPSoC平台上通过JTAG启动嵌入式Linux镜像

    流程教程)。本文则进一步讲解如何在 Zynq UltraScale+ MPSoC 平台上通过 JTAG 逐步启动 Linux,并提供了完整的过程与关键命令。只要按步骤操作,即使是复杂的 Linux 镜像也能成功通过 JTAG 启
    的头像 发表于 01-13 11:45 5118次阅读

    何在2026年Rocky Linux(8、9和10)上安装Docker

    负载的强大平台。 本指南是一个统一的资源,解释如何在 Rocky Linux 8、9 和 10 上安装 Docker,验证安装,配置 Docker Compose,并
    的头像 发表于 01-12 17:21 1968次阅读

    何在 MCU/MUP 上安全地存储机密数据?

    何在 MCU/MUP 上安全地存储机密数据
    发表于 09-08 06:44

    请问如何构建 emWin 示例代码

    如何构建 emWin 示例代码
    发表于 09-04 07:25

    何在 Linux 阶段进行 OTA 更新?

    何在 Linux 阶段进行 OTA 更新
    发表于 08-20 08:27

    STM32IDE如何设定代码到ITCM中运行?

    近期使用STM32MUX生成STM32IDE的代码(MCUSTM32H743),目前希望可以将部分代码
    发表于 06-24 06:45

    STM32与机智云连接实现步骤与技巧(下篇):机智云代码移植与优化

    在《STM32与机智云连接实现步骤与技巧(上篇)》中,我们介绍了硬件连接和通信协议配置。本篇将重点讲解如何将机智云相关代码移植到STM32,完成数据上传和设备控制。我们将介绍如何在
    的头像 发表于 05-23 18:10 1378次阅读
    <b class='flag-5'>STM32</b>与机智云连接实现步骤与技巧(下篇):机智云<b class='flag-5'>代码</b>移植与优化

    参考STM32 MPU生态资源利用Yocto构建STM32MP2芯片镜像运行docker

    STM32MPU生态对ST官方提供的MPU开发工具以及拓展包进行介绍,从入门的示例镜像烧录、应用程序开发以及Yoto构建系统使用。最近尝试利用其中
    发表于 05-10 16:47

    何在Linux中配置DNS服务器

    本文详细介绍了如何在Linux中配置DNS服务器,包括DNS工作原理、本地缓存、DNS查询过程,以及正向和反向查询的配置。步骤包括服务器配置、编辑BIND配置文件、添加解析信息和客户端测试,同时提到了注意事项和常见问题解决方法。
    的头像 发表于 05-09 13:38 2814次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>中配置DNS服务器