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

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),如下图:
在这里插入图片描述

### 如何在Keil环境中生成HEX文件 为了在Keil环境内成功创建适用于嵌入式系统的HEX文件,需确保项目设置正确无误。当使用特定版本的IDE如Keil uVision2编写程序时,由于该框架利用了一些专有的C语言扩展特性[^2],因此建议遵循官方推荐的最佳实践。 #### 设置编译选项 确认项目的编译参数已适当调整,在某些情况下可能需要向编译命令添加额外标志来增强调试功能或改变输出格式。例如,“-g -dwarf2”的加入使得最终产生的ELF文件能够携带完整的调试信息[^4]。然而,对于生成HEX文件而言,更重要的是要检查链接器脚本中的输出格式设定以及目标设备的选择是否匹配所使用的微控制器系列。 #### 配置输出路径与类型 进入 **Project -> Options for Target 'Target 1'...** 菜单项下的Output标签页: - 勾选 "Create HEX File" 复选框以指示编译过程应同时生产Intel Hexadecimal Object Files (即*.hex*) 文件。 - 设定合适的目录用于保存生成的目标文件,默认通常位于\Debug 或 \Release 子文件夹下。 #### 编译并构建项目 完成上述配置之后,通过点击工具栏上的Build按钮或者选择菜单里的相应条目执行整个工程的编译操作。如果一切顺利的话,除了常规的对象文件外还将得到所需的.HEX文件作为编译产物的一部分。 ```bash # 使用nRF工具链生成引导加载程序设置的例子并非直接关联到Hex文件生成流程中, # 不过这展示了如何处理不同类型的二进制数据文件。 $ nrfutil settings generate --family NRF52 --application yourApplication.hex \ --application-version 0 --bootloader-version 0 --bl-settings-version 1 bootloader_setting.hex ``` 一旦拥有有效的HEX文件,则可以将其下载至硬件平台以便进一步测试和部署应用软件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值