你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32:HEX文件格式

[复制链接]
STMCU小助手 发布时间:2022-5-3 13:23
一、HEX文件格式—简介# {) {* l6 F$ [$ ~1 ^
hex文件格式是可以烧写到单片机中,被单片机执行的一种文件格式。
4 C( l5 L4 u2 \4 Y( R- t  X) o% n* U  L生成Hex文件的方式有很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex,如IAR,KEIL等。& \) X; P. [6 Y% a+ ^9 P. T9 v

. R* w3 G3 k0 z二、HEX文件格式—解析5 }8 ^" j2 I; ^" F- u3 V! @+ w
HEX文件是记录文本行的ASCII文本文件,后缀为 .hex 。- {  j7 G+ x4 k0 Q5 @
HEX文件由若干个数据记录组成,每个字符都是ASCII字符表示。
/ ]1 t3 ^6 q& ~+ L- Y每一条数据记录:以冒号(0x3A)开始,以一个回车(0x0D)和一个换行(0x0A)结束。
1 \  X6 x! n; W5 w4 `9 E一个HEX文件可以包含任意多的十六进制记录,每一行为一条记录。8 I" R5 T, f8 W6 j
每个记录包含六个域,具体格式例子如下:5 F. P% W& f& v+ \( `% d8 i8 ]2 z
:0200000480007A  z, c! E- E5 V  v7 J, s0 ]
:1000000068080020BD010080B1080080A9080080B8
% e6 o; G- n" q. v! u6 ^. U; O# L% l4 F' f/ I* c2 P
:1012C0000000000000000000000000004D515F00214 D6 _% t9 p3 j0 a+ f9 ~$ r: n
:0C12D000052201180500000000000000CD$ @$ ]3 F  X5 c% e3 f" ~' U
:040000058000012155' A. v3 g; Q9 s
:00000001FF$ m& W* }4 z) r
' p: F4 n5 X9 w3 N( ^
具体解析如下:
! g) t: S; \* J
& M' }0 |0 r' ~% Z& c- F) I5 d3 V2 t @D`RRJPKTCSHORQ)_FUJED6.png
' E# @1 a0 R( N' q7 k% t1 U, B1 Y) u, }$ Y) ?% l, B$ u
1. 冒号9 Z" \: R2 v& U% i
HEX文件每行记录都由冒号(0x3A)开头。
6 q. i4 J8 A& q! \/ k, p/ l; `, S
2. 数据长度
: [/ }' ~4 d6 G本行数据的长度,16进制:0~FF9 ]; k. V# F2 F# E

- _+ x* t* O2 N- Q$ D+ v3. 起始地址
( L3 [3 x4 s6 M# Q- ?本行数据的起始地址,16进制:0~FFFF, j' C! p4 H# B2 {- h' a/ J
数据类型为 01、02、03、04、05时地址被忽略通常为0000% S1 ]* g; \, ?4 _( m% Y
数据类型为00时,起始地址为后面数据的偏移地址9 D2 o2 t5 `4 |3 \& r, o/ V. V
, R; ?0 u4 b# ?7 k
4. 数据类型+ i+ Y! n, h! l/ t
用于标识本行的数据作用
2 t$ s* v' g1 Q- B. u  p
6 H. F  l( P2 C: b具体有六种数据类型:
  f/ H4 q2 ~+ c! {) G3 S( Z
# V4 D2 y! {: R; Z3 |2 G’00’ 数据记录:用来标识数据 。- q  X# P! J! p% c6 d3 \/ p/ y
‘01’ 文件结束记录:用来标识文件结束,通常在文件的最后。
2 |" i# ?# u, g9 }, M( w‘02’ 扩展段地址记录:用来标识扩展段地址,这个扩展段地址一直有效直到读到下一个扩展段地址记录。
8 k% s3 A. Y% m4 w* [‘03’ 开始段地址记录:用来标识开始段地址。; V' ~+ }1 G+ }+ _6 U
‘04’ 扩展线性地址记录:用来标识扩展线性地址,这个扩展线性地址一直有效直到读到下一个扩展线性记录。
, [" z! t" t4 a+ D; }9 _4 }‘05’ 开始线性地址记录:用来标识开始线性地址。8 e  O. }: Q* P  }5 P! H
5. 数据
" K* N: B. ~+ \0 T, n* {本行记录的数据,数据长度为N。( _6 K; `2 u1 B1 e) A7 `9 y
HEX文件的主体部分。" [( K7 D7 C2 j  S
: t1 y0 c  F2 M- n! u4 f& e
6. 校验和

0 [: ?5 M7 G  w4 Q8 q7 B% q+ p% t计算方法:
: A+ D* i: V* [/ s校验和 = 0x100 - 累加和' e# Q$ h+ _  A; A* S
累加和 = 冒号后,校验和前的所有十六进制编码数字的和。7 s- w) k% J9 S% n1 I
举例:' m/ Y# _  M0 G! b
:0200000480007A
& ~7 V, h1 T. @  G  ]1 q0 v7 X, C校验和 = 0x100 - (0x02+0x00+0x00+0x04+0x80+0x00) = 0x100 - 0x86 = 0x7A
- [) ]' J) U) q8 v% u
& M* ?; A- W( X/ P- P
  }" C; P+ t% k3 ^1 W
% c- S# y; Z) X
收藏 评论0 发布时间:2022-5-3 13:23

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版