STM32 HEX文件和BIN文件格式区别&keil中的配置与生成

一、区别

HEX 文件:

  1. 是包括地址信息的,在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。
  2. HEX文件是用ASCII来表示二进制的数值。例如一般8-BIT的二进制数值0x3F,用ASCII来表示就需要分别表示字符'3'和字符'F',每个字符需要一个BYTE,所以HEX文件需要 > 2倍的空间
  3. 而对HEX文件而言,你看到的文件 大小并不是实际的数据的大小。一是因为HEX文件是用ASCII来表示数据,二是因为HEX文件本身还包括别的附加信息。

BIN文件:

  1. 格式只包括了数据本身,烧写BIN文件的时候,用户是一定需要指定地址信息的。对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制数据
  2. BIN文件而言,你查看文件的大小就可以知道文件包括的数据的实际大小

拓展

elf文件:

  1. gcc 编译出来的是 elf 文件,包含了符号表、汇编、调试信息,可在 Linux 中运行,无法直接在裸机上运行。
  2. 它是可执行文件,必须在有操作系统环境中运行,如果没有操作系统,将 elf 文件烧写进去,包含了符号表、调试信息等,ARM 运行碰到这些指令࿰

你可能感兴趣的:(嵌入式,linux,运维,服务器)