使用交叉编译工具
1.1 准备项目工程
ST公司出的STM32CubeMX软件你们都知道吧?其可以经过图形化配置,最后生成一个项目工程。
经过(一)的介绍,我们知道只要能够执行make指令编译makefile文件,就会生成相应的可执行文件,目标文件。(.hex,.bin,.elf文件等等)。所以我们需要有makefile文件,那么有的人说了,我不会makefile文件编写怎么办,没事的,STM32CubeMx这个软件帮你解决。你需要选择如下图所示的Makefile。
下图这个是配置什么呢?我们知道在嵌入式中我们会把各个驱动分隔开。每一个驱动文件都写成XX.c XX.h,这样成对出现的。下图所示勾选就是生成.c文件以及对应的.h文件
1.2 项目目录分析
生成的项目文件如上图所示,这里我仅仅介绍(1)(2)(3)
(1)这个就是我们最想要的makefile文件了,通过执行这个文件就能够最终生成文件中的目标文件。目标文件分别是:
.elf .hex .bin (原来之前程序烧写的hex文件就是这么来的啊)。
(2).a文件是启动文件,程序执行的第一个文件
(3)ld文件是链接文件,我们学习嵌入式的都知道,最后烧写的程序一般要放到Flash区域(0x0800_0000 熟悉吧?),也就是说要把程序放到规定的地址处。那么这个程序的各个内容是怎么存放的?就是由这个链接文件决定的。
1.3 生成目标文件
1、进入工程文件目录
- 按住Shift按键,右键点击PowerShell。
打开之后如图所示:
- 输入make 执行make指令,生成目标文件
可以看出生成了textSTM32L431.elf、textSTM32L431.hex、textSTM32L431.bin文件了。
注意:生成了build文件夹,生成的所有目标文件,以及过程文件都放在了build文件夹中了。
1.4 清除生成的目标文件
输入make clean命令
查看是否删除文件,输入ls命令。
由上图可以看出,之前生成的build文件夹已经删除了。