GCC编译器编译STM32的快速指南

在Windows下最快最简单的使用gcc编译stm32

在Windows下使用gcc编译stm通常需要许多准备工作

  1. minGW(编译c文件)
  2. gcc-arm-none-eabi(翻译到arm)
  3. make(编译链接的工具)
  4. makefile(该项目编译链接的规则)

如果想快捷的尝试使用gcc编译编译出软件并运行的话,我推荐一个简单快速的方案

  1. 软件安装(相信这两个软件大家都是有的),

    1. VSCode
    2. STM32CubeMX
  2. 安装VSCode插件并配置环境

    1. 在扩展中搜索并安装Embedded IDE

    1. 点击左侧的图标打开插件

    2. 点击下方的安装实用工具

    3. 点击GNU Arm Embedded Toolchain (stable)

    4. 安装过程中右下角有来源 :Embedded IDE的弹窗都点击同意

    1. 在扩展中搜索并安装Makefile Tools,点击安装即可

    1. 安装完成后使用Ctrl+,打开设置. 在搜索栏中搜索Makefile: Configure On Open,取消勾选(勾选时会更改startup_stm32f103xb.s文件,导致编译错误.最新版本已经默认不勾选了. 如果已经被改变了,删除该文件,重新生成工程即可)

    2. Makefile: Configure On Open配置项

    3. 关闭该设置

3. 使用STM32CubeMX生成 Makefile工程

  1. 选择以芯片开始

  2. 选择芯片

  3. 配置调试接口

  4. 配置GPIO(后续点亮LED验证程序运行)

  5. 配置工程选项

  6. 生成工程

4.编译工程

  1. 打开工程文件夹

  2. 找到main.c文件添加两行简单的代码

    添加这两行代码

        HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
        HAL_Delay(500);
    

    添加完如图

  3. 打开左侧的Makefile Tools扩展

  4. 确认Make程序的路径为.eide文件夹下的make.exe

  5. 点击编译按钮生成可执行文件

    出现类似的报错,就是我前面提到过的.s文件被修改

    startup_stm32f103xb.s:1: Error: junk at end of line, first unrecognized character is `-'
    startup_stm32f103xb.s:2: Error: bad size 0 in type specifier
    startup_stm32f103xb.s:2: Error: bad instruction `startup_stm32f103xb.s'
    
  6. 可执行文件在工程文件夹下的build文件夹下

5.烧录验证

  1. build文件夹里有.bin;.elf;.hex随便选择一个烧写到芯片

  2. 可以看到LED按预期功能闪烁

  3. 通过逻辑分析仪验证时间符合预期

相信这个简单的过程可以让你快速使用gcc编译软件

实际上eide非常强大,甚至可以通过比较简单的过程,就可以实现导入你的KEIL工程,并转为使用gcc编译

希望这个简单的教程能抛砖引玉,引起你对于gcc编译过程的兴趣,在后面的学习中能更深入的了解这其中的原理

作者:jmjrmtszt

物联沃分享整理
物联沃-IOTWORD物联网 » GCC编译器编译STM32的快速指南

发表回复