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
离线文件的烧录方法
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嵌入式大杂烩
以上是我自己的理解,欢迎讨论!