如何使用keil5生成hex文件,Keil5生成hex文件和bin文件的教程,以及解决程序不生成axf文件

如何使用keil5生成hex文件,Keil5生成hex文件和bin文件的教程,以及解决程序不生成axf文件

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

1.生成hex文件2.生成bin文件2.1第一种方法2.2高级方式

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),如下图:

Keil5生成hex文件和bin文件的教程,以及解决程序不生成axf文件

为了解决快速开发不被小问题拖住,发布一篇文章方便以后查看;

有更简便的方法欢迎讨论;

以下方法亲测有效。

1.如何生成hex文件

打开keil5软件

点击“神奇”的魔法棒

选择‘Output’,并把“Create HEX File”方框打对勾

编译文件后,会在所建文件夹中生成(这个是只运行更改过的程序,右边“哥们”是整体编译,比较耗时间)

2.如何解决程序不生成axf文件

点击“神奇”的魔法棒

选择“Output” Name of Executable中的文件名不能带“.”点,其他的特殊符号没试过(只被这个给坑过)

编译文件后,会在所建文件夹中生成(这个是只运行更改过的程序,右边“哥们”是整体编译比较耗时间)

3.如何生成bin文件

这个得好好说道说道,寻找了很多的资料,要么解决不了,要么写的看不懂,即花时间又费头发,所以我来总结一下,我能理解的方法;

点击“神奇”的魔法棒

选择“User”把第三栏的“RUN#1”方框打勾,我的理解是,程序编译后新添加的规则

如上图所写

“fromelf --bin --output ./CS-2_V1.1/R1_CSY_V1.bin ./CS-2_V1.0/CS-2_V1.axf”

手打吧,我这一栏是手打的

Fromelf(一个空格)--bin(一个空格--output(一个空格)./生成bin文件的文件夹名/所生成的bin文件名称.bin(一个空格)./程序名字/自己生成的axf文件.afx

编译文件后,会在所建文件夹中生成(这个是只运行更改过的程序,右边“哥们”是整体编译,比较耗时间)

下方提示日志,零错误零警告证明已经生成好了

再看一下不成功的,这个有错误提示,出现这种情况查看一下自己哪里的空格打少了吧。

生成后bin文件就在工程下面啦

以上只是示范,照着这个来就可以生成bin文件啦。

参考来自:作者:GUET-Lucas

MDK(KEIL5)如何生成.bin文件(亲测可用)_GUET-Lucas的博客-CSDN博客_keil如何生成bin文件https://blog.csdn.net/nx505j/article/details/80924902

离线文件的烧录方法

1. hex文件包含地址信息(十六进制文件)

2. bin文件格式只包括了数据本身,没有包含地址(二进制文件),文件最小

3、afx包含了调试信息,文件最大

hex文件的烧录,我们可以使用FlyMcu工具通过串口来下载:

FlyMcu不可以烧bin文件,因为上面说过了bin文件只包含最直接的代码映像,不包含地址信息,会出现如下错误:

bin文件可以使用STM32CubeProgrammer软件通过STLINK进行下载:

原文链接:作者:嵌入式大杂烩? ?(84条消息) STM32 | hex文件、bin文件、axf文件的区别?_嵌入式大杂烩的博客-CSDN博客_axf文件和hex文件https://blog.csdn.net/zhengnianli/article/details/103967617嵌入式大杂烩? ?

以上是我自己的理解,欢迎讨论!

原创Keil uVision 5怎么生成hex-Keil uVision 5将keil工程代码生成hex的方法

编辑:小靖子 来源:PC下载网时间:2020-09-30 10:13:00

使用Keil uVision 5怎么将keil工程代码生成hex文件呢?还不会的朋友赶紧来和小编一起学习一下Keil uVision 5将keil工程代码生成hex的方法哦,希望通过本篇教程的学习,对大家有所帮助。

打开已写好的工程项目,可通过双击工程项目打开,也可以在keil中,菜单栏的Project-Open Project...找到项目后进行打开

点击菜单Project--Options to File,进入到选择对话框中

在Options for target对话框中,切换到target栏中,输入与自己实际使用晶振的频率

切换到output栏中,点击Seclet Folder Objects,可以设置生成HEX文件的目录,如果不设置默认为与源代码同一目录下

切换到output栏中,勾选Create HEX file选项,并点击确定

依次点击工具栏中的编译、构建,重构建,提示无警告错误后,就可以在提示中 看到creating hex file from ".obj****"...代表已生成HEX文件

最后在目录下的obj文件夹中就能看到生成的HEX文件

以上就是小编分享的Keil uVision 5将keil工程代码生成hex的方法,还不会的朋友可以来学习一下哦。

END


相关推荐

在PPT中完美插入音乐的最佳指南:提升演示效果的关键技巧
58寸液晶电视尺寸(58寸液晶电视尺寸长宽多少厘米)
【饥荒】两分钟快速教会你饥荒联机!保姆级教程一步到位萌新0基础,拒绝联机卡顿!!
问道装备封印属性列表?
《LOL》 永久免费的英雄有哪些?
手机尾插五个针脚分别是什么意思?顺序是什么?从左到右分别是什么意思 , 安卓手机的充电接口五条线分别有什么作用?