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