0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式的HEX文件怎么来的

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2023-05-25 15:05 次阅读

单片机下载程序需要将c文件通过编译器编译成o文件通过连接器连接为一个main的o文件,再将main文件生成hex文件,hex文件即可通过下载器加载到我们的单片机。那么他到底是怎么样子呢

pYYBAGRvB72ASQLRAABtTZMZLIo496.png

从上图来看,Hex就是一个16进制数文件,它具有一定格式,下面我们进行一些说明。

Hex文件的格式,如上图所示,共包含6个部分,开始冒号为起始记录,bb为字节个数,aaaa为地址,dd为具体的数据,cc为checksum部分。

pYYBAGRvB_iALcafAAF5iNw83A4756.png

02代表这部分Hex有两个字节,0400是这部分Hex的存储地址,而00为其记录类型(后续我们会介绍一下记录类型有哪些种类),0034为数据部分,这里先存放低字节部分,后存放高字节部分。

poYBAGRvCBKAbY7rAAGJKs5D4qU444.png

记录类型使用两位二进制数据表示,共有四种形式,如上图表示,其中00表示数据类型,01表示文件结尾记录类型(后续我们对实际Hex进行说明)。

poYBAGRvCCSAMm8yAAEmVO859Go113.png

这里是结尾Hex数据表示,00代表有0个数据,地址表示0x0000,记录类型为0x01,checksum是0xFF。

pYYBAGRvCDuAYPEjAAH-0pLt8HM402.png

使用一个实际的PIC16F1778的代表编译出来的Hex进行说明,第一行Hex数据是02 0000 04 0000 FA,可以看出这里有两个Hex字节,地址为0x0000,记录类型为扩展线性地址记录,数据是0000,checksum为0xFA,对应第一个PAGE存储空间。第二行为04 0000 00 8031 0628 1D,这里显示为四个数据字节,地址为0x0000开始,类型为数据字节,具体数据为0x3180,0x2806。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620845
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288464
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48617
  • HEX
    HEX
    +关注

    关注

    0

    文章

    34

    浏览量

    16712
收藏 人收藏

    评论

    相关推荐

    嵌入式系统:11-2 实验-FAT文件系统的使用#嵌入式系统

    嵌入式文件文件系统
    学习电子
    发布于 :2022年11月12日 21:55:48

    嵌入式控制系统及应用:【视频】 7.1 文件的属性#嵌入式系统

    嵌入式文件
    学习电子
    发布于 :2022年11月13日 09:17:04

    嵌入式控制系统及应用:【视频】 7.2 文件操作#嵌入式系统

    嵌入式文件
    学习电子
    发布于 :2022年11月13日 09:20:08

    嵌入式控制系统及应用:【视频】 7.3 文件操作举例#嵌入式系统

    嵌入式文件
    学习电子
    发布于 :2022年11月13日 09:21:59

    嵌入式文件系统构建

    Linux支持多种文件系统,同样,嵌入式Linux也支持多种文件系统。虽然在嵌入式系统中,由于资源受限的原因,它的文件系统和PC上的Linu
    发表于 09-02 14:25

    请问如何使用UML设计嵌入式系统?

    UML引入到嵌入式系统中的可行性一种改进的通用嵌入式系统UML方案如何使用UML设计嵌入式系统?
    发表于 04-23 06:12

    什么叫嵌入式 嵌入式应用

    防、智能农业工控类:机械手臂、医疗用具3、嵌入式开发框架:Linux开发:c语言——>编译文件(二进制)——>下载到操作系统——>运行4、c语言框架头文件——声明接口函数主函数——用于实现函数返回值——用于返回程序的结果5、项目
    发表于 08-12 07:51

    嵌入式文件系统概述

    嵌入式Linux系统移植-(Linux文件系统)嵌入式文件系统概述·文件是有组织、有次序地存储在某种介质上的一组信息的集合,是用来存储信息的
    发表于 11-05 06:29

    嵌入式Linux文件与串口编程

    嵌入式Linux文件与串口编程 嵌入式工程师、嵌入式讲师、10多年嵌入式开发...
    发表于 11-05 08:14

    STM32嵌入式系统设计相关资料分享

    STM32嵌入式系统设计1.可视化的代码跟踪调试一.在Ubuntu16.04下安装VScode二.配置调试和编译文件Proteus仿真运行stm32程序一.创建工程二、配置实验所需原件三、进入
    发表于 11-08 08:22

    嵌入式的经验巩固

    文件7、完成一个综合项目 嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会,会不会用,能不能应用所学知识解决实际开发中的问题,我们需要来完成一个
    发表于 11-26 10:34

    如何构建我自己的嵌入式C编译器?

    只是为了获得如何构建我自己的嵌入式 C 编译器的知识,如预处理、汇编、链接器、生成 Hex 文件、elf 文件、映射文件。 任何有用的链接可
    发表于 06-08 08:10

    转换M34283 HEX文件为BIN文件 (HEX To B

    转换M34283 HEX文件为BIN文件 -HEX To BIN For Renesas M34283
    发表于 12-27 18:31 43次下载

    嵌入式C语言-文件操用

    嵌入式C语言-文件操用(嵌入式开发需要什么证书)-嵌入式C语言-文件操用,有需要的可以参考!
    发表于 07-30 11:56 15次下载
    <b class='flag-5'>嵌入式</b>C语言-<b class='flag-5'>文件</b>操用

    Intel Hex 文件格式

    简介这种文件格式一般是以hex为后缀名,在嵌入式MCU程序开发中,经常编译链接后生成一个这样文件,然后将这个文件烧写到MCU的ROM中。所以
    发表于 12-06 10:06 4次下载
    Intel <b class='flag-5'>Hex</b> <b class='flag-5'>文件</b>格式