1. 首页
  2. 综合百科
  3. bin文件、hex文件、axf文件的有什么区别吗(bin文件、hex文件、axf文件的区别)

bin文件、hex文件、axf文件的有什么区别吗(bin文件、hex文件、axf文件的区别)

简介:关于bin文件、hex文件、axf文件的有什么区别吗(bin文件、hex文件、axf文件的区别)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

在STM32开发中,经常会遇到十六进制文件、bin文件和axf文件,这些文件都可以写入电路板并运行。这三个文件有什么不同?在此之前,让我们回顾一下C编译过程:

在前面的C语言注释《C程序的编译过程》中,有一个简单的C程序编译过程的分析:

STM32也是用C开发的,并经历了类似的编译过程,尽管我们通常使用MDK或其他IDE编译它。编译过程如下:

例如,我们LED程序的编译过程如下:

在IDE中编译时,只需单击compile按钮就可以完成整个过程。用于编译的工具(.exe文件)位于IDE安装目录中的一个文件夹中,例如我们在这里使用的MDK编译器路径:

通常,这些ide或工具集的一些编译工具都放在bin文件夹中。例如,我们的MinGW工具集(包含gcc/g++编译器,用于编译在计算机上运行的程序)有以下路径:

回到正题,我们的MDK编译使用安装路径中的这些编译工具来完成我们的编译过程。本质上,我们也可以在cmd命令窗口中通过命令来编译我们的STM32程序(前提是环境变量配置得很好,否则编译器会在编译器的路径中编译),但我们不会这样做(如果你有时间学习Linux),因为IDE已经为我们提供了极大的便利。例如:

让我们看看当我们在cmd窗口中运行armcc时会发生什么:

我们已经看到了一些armcc命令的提示,一些常见的编译选项已经集成到MDK中供我们选择,例如:

Axf文件、十六进制文件和bin文件都可以在我们的stm32上运行。它们都存储编译器从源代码生成的机器代码,这取决于应用程序。

axf文件:包含调试信息。hex文件:包含地址信息。bin文件:最直接的代码映像。axf文件是编译生成的默认文件,其中不仅包含代码数据,还包含调试信息,用于MDK中的调试。可以通过检查MDK中的以下选项生成十六进制文件:

十六进制文件是以十六进制记数法记录代码的。它记录了代码应该存储在FLASH中的位置,下载者可以使用这些信息来协助下载。

bin文件是根据axf文件生成的。需要在MDK中添加如下format命令,生成相应的bin文件:

bin文件是最小的可执行文件,包含最直接的代码映像。在这三个文件中,axf文件最大,hex文件次之,bin文件最小。例如:

它们之间的区别只是简单的解释一下,有时间、精力,感兴趣的朋友可以分析一下它们的内容。

hex文件、bin文件、axf文件的区别?

十六进制文件刻录,我们可以使用FlyMcu工具通过串口下载:

FlyMcu不能刻录bin文件,因为bin文件只包含最直接的代码图像,不包含地址信息,会出现以下错误:

可以使用STLINK下载STM32CubeProgrammer的文件:

以上就是本次分享的内容,如有错误欢迎指正,谢谢!

本文主要介绍了关于bin文件、hex文件、axf文件的有什么区别吗(bin文件、hex文件、axf文件的区别)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/1454920.html