MDK keil5 生成 .hex文件 .bin文件 stm32

1.生成hex文件

hex文件的生成通常是默认不选择生成的,MDK这个IDE对于hex生成还是很友善的。只需要在设置中进行勾选就可以了。
1.1选择生成
在这里插入图片描述
如上图所示,依次选择 1 2,然后勾选3就可以了。

1.2选择生成hex文件存在的位置
在这里插入图片描述
如上图所示:
点击1选择想要存放hex文件的文件夹。
选择的文件夹会同步到2处,USART是名字。名字是由3处的设置的。
所以最终会在OBJ文件夹下生成一个“USART.hex”的文件,可用于下载.

2.生成bin文件

MDK生成bin文件就比较麻烦了,但也是一次设置,整个工程寿命有效,也可以接受。

2.1第一种方法

在这里插入图片描述
如上图设置好,下载点击编译的时候,mdk会自动帮您生成相应bin文件。下面来分析这个是怎么配置的。

【配置】

D:\workSoftware\Keil_v5\ARM\ARMCC\bin\fromelf.exe    --bin   -o     ..\OBJ\USART.bin    ..\OBJ\USART.axf

【分析】上面的配置一共分为五个部分,输入的时候用空格隔开。我们逐个分析,用来确定适用于你的配置:

1)D:\workSoftware\Keil_v5\ARM\ARMCC\bin\fromelf.exe
这一块显然是一个win下的可执行程序(exe),只要你安装了MDK都会有。具体位置可以通过如下的方式查找。
在这里插入图片描述
你会看到如下信息
在这里插入图片描述
我们核实一下,如期看到了“fromelf.exe”,这里根据每个人的安装路径不同而不同,但终归都会有。不论是keil4 或者keil5
在这里插入图片描述
2)–bin
两个中横杠加bin,这里你可以理解成配置,告诉exe程序是要做什么,这里显然是要生成bin文件。固定写法,无需修改

3)-o
这里是一个中横杠加o(欧),这里是英文字母o,不是阿拉伯数字0,这里的作用是out的意思,表示这个“-o”后面跟的就是最终要输出的文件名,固定写法,不要改动,我们肯定知道是要输出一个bin文件的名字的,但是要带路径。

4)..\OBJ\USART.bin

这是想要生成的bin文件名以及他的路径。跟在前面的 -o 后面,表示我们要输出这里所描述的这个bin文件。
文件的名字叫“USART.bin”这里名字可以随意,但必须以.bin结尾

前面的..\OBJ\表示的就是相对路径,表示bin文件想要存放的位置,这里要首先知道(..\表示上一层目录 .\表示当前文件夹),既然这么描述了,必然就是说这是一个相对地址(对应的还有绝对地址,1)中的就是绝对地址)。是谁的相对位置呢,可以看成是工程文件(打开工程的那个文件)的相对位置,工程文件如下图:
在这里插入图片描述
这个工程文件在我的工程中USER文件夹下,返回上一层,然后再进入OBJ,那么bin文件就生成在OBJ文件夹下了。USER和OBJ是平行的两个文件夹,上面那个相对路径表示 USER -> 下图的根路径 -> OBJ,就是这么一个路径效果,这就是所谓相对路径。你知道意思就可以,放在那个文件夹下并不强制。比如: 可以修改成.\USART_change.bin就表示bin文件和工程文件放在一起(USER文件夹),名字叫“USART_change.bin”。
在这里插入图片描述

5)..\OBJ\USART.axf

这是最后一部分,相对路径部分我就不解释了,“USART.axf”是固定的,不可以随便命名因为这里表示的是生成前面的bin文件所依赖的文件。就是用“USART.axf”生成的bin文件,所以你工程里生成的axf叫什么就是什么,在哪里就是哪里,是不能随便发挥的。

【总结】
到这里生成bin文件的配置说明就分析完了,只要你不修改out配置中的路径和名字,这个配置就可以一直用。也就是下图中的两个部分不能动,都是影响5)中的配置,一个是影响afx文件的相对路径;一个是影响axf的名字。如下图:
在这里插入图片描述

2.2高级方式

keil5中我试了试可以,但更早版本我不确定。这是别人那里看来的。我亲测有效,而且非常好用省心
在这里插入图片描述
这种方法如果要去理解,学习成本可能就稍微有些高了,我并没有学习理解。

优点;
1)所有工程通用。直接拷贝进去就用,什么也不用核实,也不需要核对axf文件的相对位置(afx文件在哪自动获取,bin文件就生成在同一个文件夹,二者同名。
2)out中的配置也可以随便改了,因为这里是自动获取的。

缺点;
1)感觉比较高级,没法测试是否之前老版本的mdk能这么使用不(因为我没有老版本的环境了)。

【建议】
1)能用第二种就用第二种,不能用就用第一种。
2)看了我第一种分析的话可以留意打印信息,有用(知道是什么意思,去哪找bin),如下图:
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐