当前位置: 首页 > news >正文

网页设计模板网baiduseoguide

网页设计模板网,baiduseoguide,做本地网站需要什么资质,做网站需要哪些文章目录 1. 概述2. Hex文件2.1 格式解析2.2 数据类型2.3 举例解析2.4 合并两个Hex文件方法 3. Bin文件3.1 生成方式3.2 合并多个Bin文件方法3.3 打开Bin文件方式3.4 和Hex文件比较 4 总结 1. 概述 Hex文件:它是单片机和嵌入式工程编译输出的一种常见的目标文件格式…

文章目录

  • 1. 概述
  • 2. Hex文件
    • 2.1 格式解析
    • 2.2 数据类型
    • 2.3 举例解析
    • 2.4 合并两个Hex文件方法
  • 3. Bin文件
    • 3.1 生成方式
    • 3.2 合并多个Bin文件方法
    • 3.3 打开Bin文件方式
    • 3.4 和Hex文件比较
  • 4 总结


1. 概述

  • Hex文件:它是单片机和嵌入式工程编译输出的一种常见的目标文件格式(比如keil就能编译输出hex文件),通过烧写工具把它下载到单片机中,程序就能在芯片中运行。
  • Bin文件:keil就能编译输出Bin文件,当我们需要实现IAP远程升级芯片固件的时候,会通过Bootloader程序将Bin文件写到芯片的内部Flash里。
  • 相关文档链接:
    《用文本编辑器(记事本)合并两个Hex文件 - 详细操作步骤》
    《Keil如何生成bin文件 - 附详细操作图文》
    《J-Flash合并多个bin文件》
    《Keil编译后生成bin文件占用内部Flash的大小,RAM,ROM,Code,RO-data,RW-data,ZI-data》

2. Hex文件

请添加图片描述

2.1 格式解析

  • 每行以冒号(:)起始,后面每两个字母是一个8bit的16进制数;
  • 每行的格式:BBAAAATTD……DCC:
    • BB 表示本行数据的长度:
    • AAAA 表示本行数据存储的地址;
    • TT 表示数据类型;
    • DD 是实际的数据,它的长度不定(每行以16字节对齐);
    • CC 是校验和(计算方法:本行所有字节累加和(累加和只用低8位)取反再加1);

2.2 数据类型

  • 数据类型一共有6种形式:

    • '00’数据记录(Hex文件的大部分记录都是数据记录);

    • '01’文件结束记录(标识Hex文件的结尾,放在文件的最后);

    • '02’扩展段地址记录;

    • '03’开始段地址记录;

    • '04’扩展线性地址记录(声明数据存储的高位地址);

    • '05’开始线性地址记录(线性起始地址指定__main(主程序前)函数的地址,通常可忽略);

2.3 举例解析

  • 第一行 :020000040800F2
    • 02 :表示本行数据的长度为2:
    • 0000 :表示本行数据存储的地址;
    • 04 :表示数据类型为扩展线性地址记录;
    • 0800 :因为本行的数据类型为04,即0800声明了数据存储的高位地址为0x0800;
    • F2 :校验和(计算方法:本行所有字节累加和(累加和只用低8位)取反再加1,即0xF2=0x01 + ∼(0x02+0x04+0x08))
  • 第二行 :10300000E8740020493100085131000853310008AC
    • 10 :表示本行数据的长度为16(可见数据存储以每行16字节对齐);
    • 3000 :表示本行数据存储的地址低位为0x3000,即实际数据的存储地址为0x0800 3000;
    • 00 :表示数据类型为数据记录;
    • E…8 :因为本行的数据类型为00数据记录,DD区即为实际的数据;
  • 第五行 :10FFF00004F086FA974890F82D000090954890F804
    • 10 :表示本行数据的长度为16
    • FFF0 :表示本行数据存储的地址低位为0x3010,即实际数据的存储地址为0x0800 FFF0;
  • 第六行 :020000040801F1
    • 02 :表示本行数据的长度为2:
    • 0000 :表示本行数据存储的地址;
    • 04 :表示数据类型为扩展线性地址记录;
    • 0801 :声明了数据存储的高位地址为0x0801(当地址长度超过16bit 即0xFFFF时,就需要扩展线性地址记录再次声明新的高位地址);
  • 倒数第三行 :0450900004012400F3
    • 04 :表示本行数据的长度为4:
    • 5090 :表示本行数据存储的地址低位为0x5090,即实际数据的存储地址为0x0801 5090;
    • 00 :表示数据类型为数据记录;
    • (此行长度不足0x10,只有0x04,这代表已经到了Hex文件数据的末尾了)
  • 倒数第二行 :04000005080031318D
    • 04 :表示本行数据的长度为4:
    • 0000 :表示本行数据存储的地址;
    • 05 :表示数据类型为开始线性地址记录;
    • 此行内容通常可忽略,官方解释为:
      • 线性起始地址指定__main(主程序前)函数的地址,但不指定启动代码的地址,启动代码通常在调用 SystemInit() 后调用__main。奇数线性起始地址表示 __main 是为 Thumb 指令集编译的。
      • 线性起始地址记录可以出现在十六进制文件的任何地方。在大多数情况下,可以忽略该记录,因为它不包含闪存编程所需的信息。
  • 倒数第一行 :00000001FF
    • 00 :表示本行数据的长度为0:
    • 0000 :表示本行数据存储的地址;
    • 01 :表示文件结束记录(标识Hex文件的结尾,放在文件的最后);

2.4 合并两个Hex文件方法

  • 当开发项目包含IAP升级芯片固件的功能时,需要把Bootloader和App两段代码的Hex文件合并以后再烧写,具体操作方法可参考以下内容:
  • 《用文本编辑器(记事本)合并两个Hex文件 - 详细操作步骤》

3. Bin文件

3.1 生成方式

  • 《Keil如何生成bin文件 - 附详细操作图文》

3.2 合并多个Bin文件方法

  • 《J-Flash合并多个bin文件》

3.3 打开Bin文件方式

  • 使用十六进制文件编辑器(我用的是:Uedit32.exe打开如下图所示:)
    请添加图片描述

3.4 和Hex文件比较

  • 对比上面打开的Hex文件里的内容,可发现Bin文件内容正好是Hex文件中数据段里的实际数据内容,没有数据长度、存储地址、校验等附加内容,Bin文件内容直接就是闪存内的代码文件,是没有任何附加格式的二进制原始文件

4 总结


授人以鱼,不如授人以渔

这里只提供钓鱼方法而不是一条完整的鱼

有问题欢迎留言交流 / 指正o( *  ̄▽ ̄ * )ブ

http://www.ds6.com.cn/news/32130.html

相关文章:

  • 网站做seo推广免费百度seo引流
  • 怎样留别人电话在广告上郑州官网网站推广优化
  • 广州cms建站系统做推广怎么做
  • 公共建设工程中心网站线上宣传方式有哪些
  • 网站制作网站优化营销型网站建设排名
  • 做网站app需要多少钱日本积分榜最新排名
  • 企业站模板明细自己做网站怎么做
  • 自己的网站怎么编辑新网络营销
  • 企业门户网站建设教程网站推广的要点
  • 做网站什么语言关键词排名关键词优化
  • 做网站的图片尺寸怎么设定百度知道合伙人
  • 涉县专业做网站app推广软文范文
  • 个人域名可以备案企业网站吗百度浏览器网址大全
  • 门户网站和官网的区别西安网站建设公司排行榜
  • 资讯网站模板带会员投稿功能江苏网站seo营销模板
  • 网站建设设计大作业四川网络推广seo
  • 网站开发费用属无形资产吗成都网站seo推广
  • 个人网站怎么做代码百度网站提交入口
  • 那个网站的机票做便宜培训心得简短50字
  • 现在建网站挣钱吗网站推广软件免费版
  • 淄博公司网站建设效果平台连接
  • 网站怎么做搜索引擎推广关键词优化
  • 海口网站如何制作网络的推广
  • 定制网站建设创意三明网站seo
  • 免费搭建个人网页seo综合排名优化
  • 湖北网站设计制作多少钱重庆森林百度云
  • 在线做头像网站长沙网站推广和优化
  • 进口手表网站网站域名备案查询
  • 有点子外包做网站会不会被盗窃百度推广技巧方法
  • 做调查赚钱靠谱的网站有哪些谷歌chrome