Intel Hex文件格式

时限:1000ms 内存限制:10000K  总时限:3000ms

描述:

Intel Hex文件格式是在嵌入式开发中常用的文件格式,用来保存单片机或处理器的目标程序代码,绝大多数编程器都支持Intel Hex格式。

从表面上看,Intel Hex文件是一个ASCII码的文本文件。它每行包括一个十六进制数字串,称为一个记录。记录的格式如下图所示:

 

对于形如“ :LLAAAATTHHHH..HHHHCC” 的记录(每两个字母代表一个字节),有
LL: 数据记录的长度
AAAA: 数据记录的开始地址
TT: 数据类型。00为数据记录,01为记录结束
HH..HH: 数据。
CC: 校验码。除冒号“:”以外,该校验码必须使当前行所有字节的和为00H。注意对和只取低8位。

例如以下是一条取自AVR单片机程序的Intel Hex文件中的记录:

:100000000C9469000C9488000C9488000C9488006F

LL=0x10,即本条记录中数据长度为16个字节。
AAAA=0x0000,即本条记录的开始地址为0x0000。
TT=0x00,即本条记录为数据记录。
HHH..HHH=0C94..8800,即本条记录的数据为0x0C,0x94,...,0x88,0x00。
CC=0x6F,即本条记录的校验码为0x6F。

表示文件结束用单独的一行
:00000001FF

现在作为嵌入式开发工程师的你需要将一个二进制程序转换为Intel Hex格式,以便将它通过编程器写入嵌入式设备。

输入:

一个二进制程序文件,以十六进制的形式给出,每行至多16个字节,到8个字节后用一空格隔开,以方便阅读。

输出:

该程序文件的Intel Hex格式表示,每行包含16个字节的实际程序数据(数据记录的最后一行除外,可以包含少于16个字节的数据)。

输入样例:

0C9469000C948800 0C9488000C948800
0C9488000C948800 0C9488000C948800
222321F0213009F0 82CF03C00E94D102
7ECF0E946A027BCF DC0101C06D934150
F0005040E0F70895 FFCF

输出样例:

:100000000C9469000C9488000C9488000C9488006F
:100010000C9488000C9488000C9488000C94880040
:10002000222321F0213009F082CF03C00E94D102A7
:100030007ECF0E946A027BCFDC0101C06D934150EC
:0A004000F0005040E0F70895FFCFF4
:00000001FF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值