前言
最近在研究STM32的IAP升级功能,发现大多数的IAP升级时的文件格式都是BIN文件,可以直接烧录进FLASH中,但是BIN文件中不含FLASH的地址,这就造成了烧写程序存在一定的不严谨性,可能烧写出错后,不知道在哪块烧写的地址出错,只能全部重新烧写,为此研究了一下IAP升级时使用hex格式文件,hex格式文件每行数据都包含烧写的地址信息,可确保出错后可以方便定位到哪一段地址烧写错误。
hex文件的格式
hex格式文件每行都必须以‘:’开头,以‘’换行。
如图,其中第一行:020000040800F2中,可以看做是0x02 0x00 0x00 0x04 0x08 0x00 0xf2,其前四个字节和最后一个字节有特殊含义。中间为数据
第一个0x02表示该行数据中有两个数据
第二个,第三个0x00 0x00表示本行数据的起始地址位,即起始地址为0x0000
第四个字节有0x00 0x01 0x02 0x03 0x04 0x05,分别有以下含义:
'00'Data Rrecord:用来记录数据