GCC编译器编译STM32的快速指南
在Windows下最快最简单的使用gcc编译stm32
在Windows下使用gcc编译stm通常需要许多准备工作
- minGW(编译c文件)
- gcc-arm-none-eabi(翻译到arm)
- make(编译链接的工具)
- makefile(该项目编译链接的规则)
如果想快捷的尝试使用gcc编译编译出软件并运行的话,我推荐一个简单快速的方案
-
软件安装(相信这两个软件大家都是有的),
- VSCode
- STM32CubeMX
-
安装VSCode插件并配置环境
1. 在扩展中搜索并安装
Embedded IDE
-
点击左侧的图标打开插件

-
点击下方的安装实用工具

-
点击GNU Arm Embedded Toolchain (stable)

-
安装过程中右下角有
来源 :Embedded IDE的弹窗都点击同意
1. 在扩展中搜索并安装
Makefile Tools,点击安装即可
-
安装完成后使用
Ctrl+,打开设置. 在搜索栏中搜索Makefile: Configure On Open,取消勾选(勾选时会更改startup_stm32f103xb.s文件,导致编译错误.最新版本已经默认不勾选了. 如果已经被改变了,删除该文件,重新生成工程即可) -
Makefile: Configure On Open配置项
-
关闭该设置

-
3. 使用STM32CubeMX生成 Makefile工程
-
选择以芯片开始

-
选择芯片

-
配置调试接口

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


-
配置工程选项

-
生成工程

4.编译工程
-
打开工程文件夹

-
找到
main.c文件添加两行简单的代码
添加这两行代码
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(500);添加完如图

-
打开左侧的
Makefile Tools扩展
-
确认Make程序的路径为
.eide文件夹下的make.exe -
点击编译按钮生成可执行文件

出现类似的报错,就是我前面提到过的
.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' -
可执行文件在工程文件夹下的
build文件夹下
5.烧录验证
-
build文件夹里有.bin;.elf;.hex随便选择一个烧写到芯片
-
可以看到LED按预期功能闪烁

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

相信这个简单的过程可以让你快速使用gcc编译软件
实际上eide非常强大,甚至可以通过比较简单的过程,就可以实现导入你的KEIL工程,并转为使用gcc编译
希望这个简单的教程能抛砖引玉,引起你对于gcc编译过程的兴趣,在后面的学习中能更深入的了解这其中的原理
作者:jmjrmtszt