当前位置:首页 > 单片机 > 单片机
[导读]前段时间需要用到BIN文件 随便把HEX文件也了解了一下 参考查阅了一些网上资料,如有雷同除了巧合还有借鉴参考。。。正题:HEX文件格式如下[数据长度1Byte][数据地址2Byte][数据类型1Byte][数据nByte][校验1Byte]分析

前段时间需要用到BIN文件 随便把HEX文件也了解了一下 参考查阅了一些网上资料,如有雷同除了巧合还有借鉴参考。。。

正题:HEX文件格式如下

<0x3a>[数据长度1Byte][数据地址2Byte][数据类型1Byte][数据nByte][校验1Byte]<0x0d><0x0a>

分析下面具体例子
:020000040800F2
: 这个就是<0x3a>,也就是冒号
02 这个就是说明这行数据区的数据内容长度,也就是数据内容为两个字节在后面的<0800>那里
0000 这个是数据要送往的地址 要看具体数据类型
04 解释整行数据的数据类型,主要有这几种
'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 程序起始地址也就是程序入口地址(main)
0800 这个就是基地址(0x0800<<16)
F2 是数据校验和
<0x0d><0x0a>是换行符号

接下来分析这行数据
:1000000078050020450100084D0100084F01000857
10 就是数据区的数据长度 一共16个数据 78 05 00 20 45 01 00 08 4D 01 00 08 4F 01 00 08
0000 数据地址
00 数据类型说明
57 数据校验和
也就是说这行的意思就是说明数据区<78050020450100084D0100084F010008>应该被写到(0x0800<<16+0x0000)这个地址
再例如这行
:1000100051010008530100085501000800000000CC
这行数据行上面这行类似,意思是数据区<51010008530100085501000800000000>应该被写到(0x0800<<16+0x0010)这个地址
注意:因为STM32的数据存放是以小端格式放的所以10 00 应该被看成0x0010


在文件的末尾有这样的两行
:0400000508000131BD
:00000001FF
根据上面的方式分析
:0400000508000131BD 这个是解释程序的入口地址在0x08000131 这里不懂为何又不以小端格式写了,虽然这行数据不是传给MCU的
:00000001FF这个就是文件结束的标志了

HEX和BIN文件的区别也就是地址上的,BIN文件不带地址信息例如从上面的hex文件生成的BIN文件


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式开发中,STM32的时钟系统因其灵活性和复杂性成为开发者关注的焦点。然而,看似简单的时钟配置背后,隐藏着诸多易被忽视的陷阱,轻则导致系统不稳定,重则引发硬件损坏。本文从时钟源选择、PLL配置、总线时钟分配等关键环...

关键字: STM32 时钟系统

在嵌入式系统开发中,STM32系列微控制器的内部温度传感器因其低成本、高集成度特性,广泛应用于设备自检、环境监测等场景。然而,受芯片工艺差异和电源噪声影响,其原始数据存在±1.5℃的固有误差。本文从硬件配置、校准算法、软...

关键字: STM32 温度传感器

在能源效率与智能化需求双重驱动下,AC-DC转换器的数字控制技术正经历从传统模拟方案向全数字架构的深刻变革。基于STM32微控制器的PFM(脉冲频率调制)+PWM(脉冲宽度调制)混合调制策略,结合动态电压调整(Dynam...

关键字: AC-DC STM32

当前智能家居产品需求不断增长 ,在这一背景下 ,对现有浇花装置缺陷进行了改进 ,设计出基于STM32单片机的全 自动家用浇花机器人。该设计主要由机械结构和控制系统构成 ,机械结构通过麦克纳姆轮底盘与喷洒装置的结合实现机器...

关键字: STM32 麦克纳姆轮 安全可靠 通过性强

用c++编程似乎是让你的Arduino项目起步的障碍吗?您想要一种更直观的微控制器编程方式吗?那你需要了解一下Visuino!这个图形化编程平台将复杂电子项目的创建变成了拖动和连接块的简单任务。在本文中,我们将带您完成使...

关键字: Visuino Arduino ESP32 STM32

基于STM32与LoRa技术的无线传感网络凭借其低功耗、广覆盖、抗干扰等特性,成为环境监测、工业自动化等场景的核心解决方案。然而,如何在复杂电磁环境中实现高效休眠调度与动态信道优化,成为提升网络能效与可靠性的关键挑战。本...

关键字: STM32 LoRa

在实时控制系统、高速通信协议处理及高精度数据采集等对时间敏感的应用场景中,中断响应延迟的优化直接决定了系统的可靠性与性能上限。STM32系列微控制器凭借其灵活的嵌套向量中断控制器(NVIC)、多通道直接内存访问(DMA)...

关键字: STM32 DMA

数字电源技术向高功率密度、高效率与高动态响应方向加速演进,STM32微控制器凭借其基于DSP库的算法加速能力与对LLC谐振变换器的精准控制架构,成为优化电源动态性能的核心平台。相较于传统模拟控制或通用型数字控制器,STM...

关键字: STM32 数字电源

STM32微控制器凭借其针对电机控制场景的深度优化,成为高精度、高可靠性驱动系统的核心选择。相较于通用型MCU,STM32在电机控制领域的核心优势集中体现在FOC(磁场定向控制)算法的硬件加速引擎与PWM死区时间的动态补...

关键字: STM32 电机控制

无线充电技术加速渗透消费电子与汽车电子领域,基于Qi协议的无线充电发射端开发成为智能设备能量补给的核心课题。传统模拟控制方案存在响应滞后、参数调整困难等问题,而基于STM32的数字PID控制结合FOD(Foreign O...

关键字: STM32 无线充电
关闭