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