Bin文件:
是最纯粹的二进制机器代码,或者说是“顺序格式”。按照汇编语言顺序翻译成二进制机器码,内部没有地址标记。Bin是直接的内存映象表示,二进制文件大小即为文件所包含的数据实际大小。BIN文件就是直接的二进制文件,一般用编程器烧写时从00开始,而如果下载运行,则下载到编译时的地址即可。可以直接在裸机上运行。
Hex文件:
hex文件常用来保存单片机或其他处理器的目标程序代码。他保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。就是机器代码的十六进制形式,并且是用一定文件格式的ASCII代码来表示的。
1、HEX文件包含地址信息而BIN文件只包含数据本身,烧写或下载HEX文件时,一般不需要用户指定地址,因为HEX文件内部已经包含了地址信息。烧写BIN文件时则需要用户指定烧录的地址信息。
2、HEX文件是ASCII码来表示二进制的数值。例如8-BIT的二进制数值0x4E,用ASCII来表示就需要分别表示字符‘4’和字符‘E’,每个字符均需要一个字节,因此HEX文件至少需要2倍BIN文件的空间。
Elf文件:
主要有三种类型:
(1)适于连接的可重定位文件,可与其他目标文件一起创建可执行文件和共享目标文件。
(2)适于执行的可执行文件,用于提供程序的进程映象,加载到内存执行。
(3)共享目标文件,连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映象。
小结:可由elf文件转化为hex和bin两种文件,hex也可以直接转换为bin文件,但是bin要转化为hex文件必须要给定一个基地址。而hex和bin不能转化为elf文件,因为elf的信息量要大。