05 hex 格式_hex文件格式详解

学习的路上,越努力越渺小。

——单片机初学者

在学习单片机的路上,

我用过

KEIL

CodeWarrior

CCS

等编译器,

但最近因一个小项目,

采用的

PIC18F25K80

芯片,使用

MPLAB

PICC18

编译器,在烧写代码的时候,突然意识到

自己一直在使用

.Hex

文件,但从未对该文件去研究、理解过,从而有此下文:

Hex

文件通常由编译器在项目编译链接后生成,用于传输被存储于

ROM

或者

EEPROM

的程序或数据,可在项目工程目录下查找到。用记事本或者

Notepad++

打开

hex

文件,

hex

文件由一行行“:数字”组成,每行以冒号开头,内容全部为

16

进制数字。

Hex

文件每行都是一个十六进制的记录,

该记录由

5

各部分组成:

数据长度

(

1

个字节)

数据起始地址(

2

个字节,高位在前,低位在后)、记录类型(

1

个字节)、数据(

n

个字

节)、校验码(

1

个字节)。

打开

Hex

文件,如下:

:02

0000

04

0800

F2

:10

1800

00

2039002055190008A1270008A3270008

47

:10

1810

00

00000000000000000000000000000000

C8

:10

C000

00

1A67296887689968A768B20529A40100

9A

:10

C010

00

204214021440420A0313DA0342140313

A9

:08

C020

00

0B03420A0327DB03

B6

:04

0000

05

080018BD

1A

:00

0000

01

FF

:101800002039002055190008A1270008A327000847

为例:

0x10

0x18

0x00

0x00

0x20

0x03

0x90

0x02

0x55

0x19

0x00

0x08

0xA1

0x27

0x00

0x08

0xA3

0x27

0x00

0x08

0x47

“:”

表示记录开始;

回车换行

表示记录结束;

“0x10”

表示数据长度是

16

,即本条记录数据是

16

个字节;

“0x18

0x00”

表示数据起始地址,即本条记录的数据起始地址为

0x1800

“0x00”

表示数据类型,数据类型有:

0x00

0x01

0x02

0x03

0x04

0x05

“0x00”

:数据记录;

“0x01”

:标识文件结束;

“0x02”

:标识扩展段地址记录;

“0x03”

:开始段地址记录;

“0x04”

:标识扩展线性地址记录(虚地址);

“0x05”

:开始线性地址记录(虚地址);

“0x20

--

0x08”

表示数据;

“0xA3”

表示校验码。

校验码的算法:

计算校验码前所有字节的累加和

(不进位)

校验码

=

0x100

-

累加和。

由此可知,上面的

hex

文件主要进行以下操作:标识扩展线性地址、记录数据、开始线

性地址记录、结束文件。

因对扩展线性地址的概念不明确,再次延伸:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值