硬件基础之HEX文件格式
文章目录
- 前言
- 格式解析
- 距离说明
前言
hex文件用于烧写到单片中的一种格式。本文主要讲解其格式的意义。
本文主要参考资料:
- 百度百科
格式解析
首先,我们可以用记事本打开一个hex文件。如下:
上图展示的是一个DSP跑马灯程序生成的HEX文件。通过观察可以发现:所有的数据都是以:开始,内容都是16进制数。其具体的格式如下所示:
0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
: | 数据长度 | 偏移地址 | 数据类型 | 数据 | 校验 |
所占字节 | 1 | 2 | 1 | n | 1 |
其中,数据类型的取值含义为:
00:数据记录(Data Record)
01:文件结束(End of File Record)
02:扩展段地址记录(Extended Segment Address Record)
03:开始短地址记录(Start Segment Address Record)
04:扩展线性地址记录(Extended Linear Address Record)
05:开始线性地址记录(Start Linear Address Record)
校验方式为:
所有字节的数据和模256的余数。
也可以理解为,所有字节数据的负数和,且取低8位。
可以计算所有字节的二进制算数和,不超过256的溢出值,再用0x100减去这个算数和。
距离说明
:020000040032C8
:08000000190156C3FFFF0006C1
:048000000072887012
:20800400761BFFF0E20000BDE63006002942561676256F00761BFFF0E20000BDE630060005
...
:00000001FF
选取HEX文件的前四行和最后一行数据。先看第一行数据
:020000040032C8
其对应表格中为:
0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
: | 数据长度 | 偏移地址 | 数据类型 | 数据 | 校验 |
所占字节 | 1 | 2 | 1 | 2 | 1 |
: | 02 | 0000 | 04 | 0032 | C8 |
第一部分:02。表示其数据长度为02,对应数据位0032,占用两个字节。
第二部分:0000。表示偏移地址为0000。
第三部分:04。表示数据类型为04,对应前文可知数据类型为: 扩展线性地址记录(Extended Linear Address Record)。
第四部分:数据内容为:0032。也就是扩展线性地址为0032。
第五部分:校验位:C8。其计算方法为:
0xC8=(0x0100-(0x02+0x00+0x00+0x40+0x00+0x32))&0x00FF
同样,可以如下计算:
0xC8=(-0x02-0x00-0x00-0x40-0x00-0x32)&0xFF
综上,该帧数据表示:
提供了一个基础地址为(0x000000032<<16),即基础地址为0x00320000。其后的数据存放位置以该地址为基准地址。
接着,我们分析第二帧数据:
:08000000190156C3FFFF0006C1
其对应表格中为:
0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
: | 数据长度 | 偏移地址 | 数据类型 | 数据 | 校验 |
所占字节 | 1 | 2 | 1 | 8 | 1 |
: | 08 | 0000 | 00 | 190156C3FFFF0006 | C1 |
该帧数据的数据类型为:00,也就是此帧是烧写到Flash中的数据,其数据长度为08,具体内容为:190156C3FFFF0006。其烧写的地址为:基准地址+偏移地址——0x00320000+0x0000=0x320000。
同样的,下一帧数据位:
:048000000072887012
代表的是将数据00728870写入到0x00320000+0x8000=0x328000位置中。
硬件基础之HEX文件格式相关推荐
- 基础知识 | hex文件格式详解
hex文件格式总结 什么是hex文件? 文件格式 指令类型(Record type) 校验和 :04 02B0 00 92020008 AE :04 0000 05 08000135 B9 :00 0 ...
- 基本:HEX文件格式定义
0x01 概述 此处简单的对于HEX文件进行一些说明介绍,主要介绍了关于Hex文件基本的架构与数据定义 此章过于简单以至于没多少字,主要是hex文件本就是使用一种可视化显示不在Ascii编码内真实数据 ...
- 上拉电阻和下拉电阻_硬件基础:下拉电阻和上拉电阻如何工作
上拉电阻和下拉电阻 by Taron Foxworth 通过塔伦·福克斯沃思(Taron Foxworth) 硬件基础:下拉电阻和上拉电阻如何工作 (Hardware fundamentals: ho ...
- 很多人都不清楚HEX文件格式
Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件.在Intel HEX文件中,每一行包含一个HEX记录.这些记录由对应机器语言码和/或常量数据的十六进制编 ...
- 硬件基础 —— 二极管
硬件基础 -- 二极管 1.二极管基础知识 PN结:P区空穴,N区电子.由于浓度差原理,会产生扩散运动(N到P运动).在电场作用下,载流电子作漂移运动,方向与扩散运动方向相反直到PN结电流为零,达到平 ...
- 硬件基础 —— 电容
硬件基础 -- 电容 1.电容基本知识(记忆元件) 电容器是一种能储存电荷的容器.电容器对直流电阻力无穷大,即电容器具有通交隔直的作用.电容器对交流电的阻力受交流电频率影响,即相同容量的电容器对不同频 ...
- 硬件基础 —— 电阻
硬件基础 -- 电阻 1.电阻基本知识 电阻:在电路中对电流有阻碍作用并且造成能量消耗的部分.主要物理特性是变电能为热能(耗能元件),符号R(单位:Ω). 2.电阻的作用:分流.限流.分压.偏置.滤波 ...
- 51单片机——硬件基础
单片机--硬件基础知识 宗旨:技术的学习是有限的,分享的精神是无限的. 1.单片机内部资源 STC89C52:8KFLASH.512字节RAM.32个IO口.3个定时器.1个UART.8个中断源 (1 ...
- 微处理器硬件喂狗_硬件基础:微控制器到底是什么?
微处理器硬件喂狗 by Taron Foxworth 通过塔伦·福克斯沃思(Taron Foxworth) 硬件基础:微控制器到底是什么? (Hardware Fundamentals: what e ...
最新文章
- 如何在Bash中加入数组元素?
- 前端每周清单第 49 期:Webpack 4 Beta 尝鲜,React Windowing 与 setState 分析
- ASP.NET动态的修改主题
- 从数据结构角度分析foreach效率比for循环高的原因
- 使用AJAX 按需求建立【一棵】树 Building Tree View on demand using AJAX【转载】
- k8s nod rc service 使用
- (day 22 - 全排列问题 dfs+剪枝+回溯 )剑指 Offer 38. 字符串的排列
- pdfplumber库解析pdf格式
- Linux宝库名人轶事栏目 | 我与中国开源软件二十年(二)
- 视频人像磨皮插件:Beauty Box 4.2
- c语言单项选择题标准化考试系统,c语言课程设计(单项选择题标准化考试系统)分析报告.doc...
- 方差分析、T检验、卡方分析如何区分
- Gentoo Linux安装教程20220218(长期更新维护)
- React 之 Expected an assignment or function call and instead saw an expression 解决办法
- ARN的内存和CPU配置
- Php狼找兔子,狼和兔子的故事 - 仙境传说:守护永恒的爱 - 普隆德拉酒馆 - 心动游戏 官方论坛...
- 电脑硬盘主分区和逻辑分区的区别是什么
- 官网下载VMware Workstation Player 16、15、14
- cf B. Wilbur and Array
- 计算机系统结构——量化研究方法(第三版)
热门文章
- SpringBoot整合Thymeleaf+EasyExcel实现excel文件的读取并展示,附加swagger2配置(超详细示范!)
- 【饭谈】【测试圈相亲平台开发流程】:页面样式开发心得【工匠、智者、航海家】
- html超链接的锚点链接的使用
- 一文带你了解SLB、F5、Nginx负载均衡
- 基于matlab的数值分析实例研究,基于MATLAB的数值分析答辩.ppt
- postfix+extmail邮件系统完整安装
- VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
- 读书笔记—别让情绪毁了你(插图精读本)
- 修改Vue项目网页标题和ico
- VC中自定义打印调试信息函数,打印调试信息到DebugView上