单片机各种烧写文件格式简介

合集下载

HEX文件和BIN文件格式的区别

HEX文件和BIN文件格式的区别

HEX⽂件和BIN⽂件格式的区别在单⽚机开发中HEX⽂件和BIN⽂件是⾮常常见的烧写⽂件格式,以常⽤开发环境Keil为例,分别创建HEX和BIN⽂件,⽐如:1、创建HEX:在Keil⾥⾯可以通过勾选【魔法棒>Output>Creat HEX File】让⼯程输出HEX⽂件。

2、创建BIN:在Keil中在【魔法棒>User>After Build/Rebuild】标签下勾选Run #1,同时在其对应的User Command ⽂本框中输⼊fromelf --bin --output=@L.bin !L编译后就会输出BIN⽂件。

⾔归正传,先简单描述下HEX(左边)和BIN(右边)⽂件的区别:1、HEX⽂件HEX⽂件中同时包含的数据和地址信息,所以在烧写或下载HEX⽂件的时候,⼀般都不需要⽤户指定地址。

2、BIN⽂件BIN⽂件只有纯粹的数据(代码)信息,并不包含地址,所以烧写BIN时就需要指定烧写地址,⼀般可以在烧写⼯具上修改。

下⾯看⼀个Keil下⽣成的HEX和BIN⽂件的部分代码:HEX⽂件内容都是ASCII编码得到的,可以⽤本本编辑器直接打开,BIN⽂件不能⽤编辑器直接查看,可以把它转换成16进制然后显⽰(如在notepad++下装⼀个插件就好:):很直观的可以看到BIN⽂件只是HEX⽂件中的数据区域。

HEX格式解读: HEX⽂件每⼀⾏代表⼀个记录(RECORD),其基本格式如下 RECORD MARK 冒号(:) 表⽰起始标志 LOAD RECLEN 数据长度 即INFO or DATA 段的数据长度 OFFSET 地址偏移 指定相对基地址的偏移量 RECTYP 记录类型 记录类型:“00”数据记录 “01”⽂件结束记录 '02'扩展段地址记录 '03'起始段地址记录 '04'扩展线性地址记录 '05'开始线性地址记录 INFO or DATA 数据信息 校验值⾸先要注意的时,1-byte中的byte在HEX⽂件中因为经过ASCII编码的所以⽤两个字符表⽰⼀个16进制即⼀个字节,,在BIN⽂件中则是直接⽤⼀个字节表⽰这两字符,上⾯的图很直观下⾯以HEX⽂件第⼀⾏为例,它的含义主要有,02表⽰数据段“6000”长度为2,0000表⽰偏移地址,04表⽰记录类型为扩展线性地址的记录,6000表⽰线性地址的基地址并且表⽰的时[16-31]区域即⾼位地址,[0-15]区域即低位默认为0。

单片机bin文件结构 -回复

单片机bin文件结构 -回复

单片机bin文件结构-回复单片机BIN文件结构单片机(Microcontroller)是一种集成了处理器、存储器和输入/输出设备等功能的计算机系统,广泛应用于各种嵌入式系统中。

在单片机系统中,BIN文件扮演着非常重要的角色,它包含了单片机的机器指令代码以及其他相关的数据信息。

本文将详细介绍单片机BIN文件的结构,以及每个部分的功能和意义。

一、BIN文件概述BIN文件是Binary的缩写,即二进制文件。

它是一种以二进制形式存储的可执行文件,不同于文本文件,无法直接用文本编辑器打开查看其内容。

BIN文件经过编译、汇编或其他转换工具处理后,其中包含了单片机的全部指令和数据信息。

二、BIN文件组成一个完整的BIN文件通常由多个部分构成,每个部分负责不同的功能,具体组成如下:1. 引导区(Bootloader):引导区是BIN文件的起始部分,在单片机启动时首先被加载执行。

它主要负责初始化单片机系统,并将控制权转交给主程序。

2. 主程序区(Main program area):主程序区包含了单片机的主要逻辑代码,也就是我们常说的应用程序。

它由编程人员根据需求编写,控制单片机的各个功能。

3. 数据区(Data area):数据区存储着程序运行过程中需要用到的常量、变量等数据。

这些数据可以被主程序读取和修改,为程序的正常运行提供支持。

4. 中断向量表(Interrupt Vector Table):中断是单片机系统中常见的一种事件处理机制,可以在程序执行过程中实时响应外部的触发事件。

中断向量表记录了不同中断事件对应的中断服务程序的入口地址,当中断发生时,单片机会自动跳转到对应的中断服务程序执行。

5. 配置字(Configuration word):配置字是用来配置单片机的工作模式和其他相关参数的。

它包含了诸如时钟源、位宽、芯片封装等信息,通过配置字,可以让单片机以相应的方式工作。

三、BIN文件生成过程在单片机的开发过程中,编程人员需要将编写完成的源代码经过编译、汇编等一系列的工具转换,生成可供单片机加载和执行的BIN文件。

单片机片内存储器如何烧写几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍单片机片内存储器烧写是将程序代码或数据写入单片机的内部存储器中的过程。

单片机的内部存储器包括闪存、EEPROM、RAM等。

这些存储器可以通过不同的烧写方式进行烧写。

下面将介绍几种常见的单片机片内存储器烧写方式。

1.并行编程方式并行编程方式是最早出现的一种单片机烧写方式。

这种方式使用编程器通过并行接口将烧写数据传输到单片机的内部存储器中。

这种方式的优点是烧写速度较快,但需要使用专用的编程器和并行接口,且操作相对复杂。

2.串行编程方式串行编程方式是目前最常用的一种单片机烧写方式。

这种方式使用编程器通过串行接口将烧写数据逐位传输到单片机的内部存储器中。

串行编程方式主要有两种实现方式:采用串行同步通信协议的方式和采用串行异步通信协议的方式。

(1)采用串行同步通信协议的方式采用串行同步通信协议的方式一般需要使用专用的编程器和串行接口,例如,ST公司的ST计算机系统和IAR公司的I-jet等。

这种方式的特点是通信速度快,支持多种烧写功能,如烧写程序代码、擦除存储器、校验数据等。

(2)采用串行异步通信协议的方式采用串行异步通信协议的方式一般使用通用的串行通信接口,如USART、SPI、I2C等。

这种方式的特点是通信速度较快,支持多种烧写功能,如烧写程序代码、擦除存储器、校验数据等。

同时,由于使用通用的串行通信接口,烧写设备的硬件成本相对较低。

3.仿真器烧写方式仿真器烧写方式是一种通过仿真器将程序代码或数据写入单片机内部存储器的方式。

这种方式一般需要使用仿真器和对应的开发环境,例如Keil、IAR等。

仿真器主要有两种类型:软件仿真器和硬件仿真器。

(1)软件仿真器软件仿真器是一种利用开发环境提供的仿真功能,通过软件模拟单片机内部运行状态,实现对单片机的烧写操作。

这种方式的优点是无需额外的硬件设备,烧写过程安全可控,能够对烧写过程进行调试和监控。

但缺点是烧写速度较慢,不适合大批量生产。

单片机烧录用的hex文件,文件格式解析(转载)

单片机烧录用的hex文件,文件格式解析(转载)

单⽚机烧录⽤的hex⽂件,⽂件格式解析(转载)含有单⽚机的电⼦产品在量产的时候会⽤到.hex⽂件或者.bin。

hex是⼗六进制的,包含地址信息和数据信息,⽽bin⽂件是⼆进制的,只有数据⽽不包含地址。

任何⽂件都有⼀定的格式规范,hex⽂件同样具有完整的格式规范。

今天和⼤家分享⼀下,hex是如何解析的。

⼀、hex⽂件解析hex⽂件可以通过UltraEdit、Notepad++、记事本等⼯具打开,⽤Notepad++打开之后会看到如下数据内容。

使⽤Notepad++打开后会不同含义的数据其颜⾊不同。

每⾏数据都会有⼀个冒号开始,后⾯的数据由:数据长度、地址、标识符、有效数据、校验数据等构成。

以上图的第⼀⾏为例,进⾏解析:第1个字节10,表⽰该⾏具有0x10个数据,即16个字节的数据;第2、3个字节C000,表⽰该⾏的起始地址为0xC000;第4个字节00,表⽰该⾏记录的是数据;第5-20个字节,表⽰的是有效数据;第21个字节73,表⽰前⾯数据的校验数据,校验⽅法:0x100-前⾯字节累加和;其中,第4个字节具有5种类型:00-05,含义如下:字段含义00表⽰后⾯记录的是数据01表⽰⽂件结束02表⽰扩展段地址03表⽰开始段地址04表⽰扩展线性地址05表⽰开始线性地址单⽚机的hex⽂件以00居多,都⽤来表⽰数据。

hex⽂件的结束部分如下图所⽰。

最后⼀⾏的01表⽰⽂件结束了,最后的FF表⽰校验数据,由0x100-0x01=0xFF得来。

⼆、扩展地址细⼼的同学可能发现了,上⾯的地址都是两个字节,范围从0x000-0xFFFF,如果地址是0x17FFFF该怎么办呢?这就要⽤到扩展字段了,举例如下:第⼀⾏中,第⼀个字节为0x02,表⽰只有两个字节的数据,⽽扩展段的标识符为0x04表⽰后⾯的数据0x0800为扩展线性地址,基地址的计算⽅法为:(0x0800<<16)=0x08000000,在0x04标识段出现之前,下⾯的数据都是这个基地址。

单片机程序烧录的3种方式(ISP、ICP、IAP)是什么

单片机程序烧录的3种方式(ISP、ICP、IAP)是什么

单片机程序烧录的3种方式(ISP、ICP、IAP)是什么说起给单片机烧录程序,大家应该都不陌生吧,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时烧录程序就是用的下面这种烧录软件——STC-ISP。

这种方式,通过串口连接单片机,选择一个合适的波特率就可以烧录了。

后来学习STM32,编程时使用KEIL软件自带的下载按钮就能下载程序,方便了不少,但需要额外使用J-Link等下载器。

再后来,接触到产品研发,给已经发布出的产品升级,都是要靠远程无线升级的(想想看,产品已经到客户那里了,当软件需要升级时,要是还使用有线的方式烧录程序,得有多麻烦)既然给单片机烧录程序的方式有多种,那烧录方式具体怎么分类呢?可以分为3种:ISP(In-System Programming)在系统编程,使用引导程序(Bootloader)加上外围UART/SPI等接口进行烧录。

ICP (In-circuit programmer)在电路编程,使用SWD/JTAG接口。

IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自己重新编程,即用程序来改变程序。

这3种烧录方式的原理是什么呢?在分析原理之前,需要先了解一下单片机Flash的访问地址,看看程序是烧录到哪个位置了。

单片机Flash在地址映射表中位置下图是一张STM32F4xx的地址映射表,从0x0000 0000到0xFFFF FFFF,总计4Gbyte。

单片机的片上Flash、片上RAM、片上外设以及外部扩展接口的访问地址,都被映射到这4Gbyte的范围之内。

这张图中,我们需要先注意下半部分Main memory 主存储区通常,我们编写的代码,是放到主存储区的起始位置(0x0800 0000)开始运行的,烧录程序时,直接将程序烧录到这里即可(KEIL 软件给STM32烧录程序的默认烧写地址就是0x0800 0000开始)System memory系统存储区System memory(起始位置0x1FFF 000)是STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。

程序烧写说明

程序烧写说明

程序烧写说明OK300C根据用户选配单片机类型不同烧写程序的方式也有所不同,主要分三类:STC单片机用户烧写方法,并口ISP下载器烧写方法,USB接口ISP下载器烧写方法。

下面将详细介绍烧写程序的方法。

一、 STC单片机用户烧写方法启动下载软件,首次设置时只需注意芯片的选择,在左上角下拉框中选择STC89C52RC,一般的台式机大多只有一个串口,所以COM栏就选择COM1,如果使用别的串口那就选择相应的串口号,其它全部使用默认,不明白时最好不要乱改,不然可能会把芯片锁死,以后就用不了了。

总体设置如下图:点击软件界面上的Open File 打开对话框,将*.hex或者*.bin文件选择,选择好后点击Open 。

要先把实验板上的电源关掉,因为STC的单片机内有引导码,在上电的时候会与计算机自动通讯,检测是否要执行下载命令,所以要等点完下载命令后再给单片机上电。

然后点击如图中的Download/下载钮,接着按下实验板上电源给单片机上电若出现上述图片,则说明已经给单片机成功下载了程序,并且已经加密。

二、 并口ISP下载器烧写方法将ISP下载器插在主板的ISP口处。

确认板上JP1三个跳线都断开,连接好电源线,打开电源。

打开下载软件MuCodeISP,以下载AT89S52为例,选择89S5X,选择89s52,如下图然后加载要烧录的程序点击File菜单下的openflash,出现如下对话框选择要烧录的文件,这里是*.hex文件烧录,点击下图中的Program按钮就可以把程序下载到单片机A VR单片机的程序烧录过程也是一样的。

不过烧录51和A VR单片机切换时,要注意不要忘记进行51/avr单片机选择键的操作。

三、 USB接口ISP下载器烧写方法选配USB接口isp下载器的用户,使用的烧写软件是A VRSTUDIO。

首先要安装好该软件,安装方法和安装普通软件一样。

可以用AVR Studio的4.13或更高版本控制STK500/AVRISP,选择STK500 or AVRISP和Auto或者具体的COM?端口进行联机,点击avr studio主窗口中的图标前面标有Con的那个图标,然后按下图选择即可进行STK500或者JTAG的联机,由于avr studio会记忆用户使用的设备是STK500ISP还是JTAG并且同时会记忆用户使用的COM号,如果下次和上次使用的是相同的设备并且没有更换COM口,那么下次使用的时候直接点击右边标有AVR的那个图标就可以快速进入联机状态;如果下次和上次使用了不同的设备或不同的COM口请使用Con图标进行联机。

S19文件格式详解

S19文件格式详解

S19文件格式详解S-record格式文件是Freescale CodeWarrior编译器生成的后缀名为.S19的程序文件,是一段直接烧写进MCU的ASCII码,英文全称问Motorola format for EEPROM programming。

【注意:编者】:上面“是一段直接烧写进MCU的ASCII码”,这样说可能会误导初学者,因为并不是直接将ASCII码写进MCU,写进MCU前还要对S19文件进行一个解析,把有用的机器代码分解出来,然后再进行写入,写入的也不是ASCII而是二进制码。

网上有关S-record格式文件的资料很少,经过我的收集和实验,整理出以下文档,方便大家对Freescale单片机做深入了解。

1、格式定义及含义S-record每行最大是78个字节,156个字符S-record formattype(类型):2个字符。

用来描述记录的类型 (S0,S1,S2,S3,S5,S7,S8,S9)。

count(计数):2个字符。

用来组成和说明了一个16进制的值,显示了在记录中剩余成对字符的计数。

address(地址):4或6或8个字节。

用来组成和说明了一个16进制的值,显示了数据应该装载的地址,这部分的长度取决于载入地址的字节数。

2个字节的地址占用4个字符,3个字节的地址占用6个字符,4个字节的地址占用8个字符。

data(数据):0—64字符。

用来组成和说明一个代表了内存载入数据或者描述信息的16进制的值。

checksum(校验和):2个字符。

这些字符当被配对并换算成16进制数据的时候形成了一个最低有效字符节,该字符节用来表达作为补充数据,地址和数据库的字符对所代表的(字节的)补码的byte总和。

即计数值、地址场和数据场的若干字符以两个字符为一对,将它们相加求和,和的溢出部分不计,只保留最低两位字符NN,checksum =0xFF-0xNN。

S0 Record:记录类型是“S0” (0x5330)。

单片机片内存储器如何烧写 几种烧写方式介绍

单片机片内存储器如何烧写 几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU 可取出这些指令重新执行。

只读存储器(Read Only Memory,ROM)中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称只读存储器。

向ROM中写入信息称为ROM编程。

根据编程方式不同,掩模ROM.在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。

这种芯片存储结构简单,集成度高,但是由于掩模工艺成本较高,只适合于大批量生产。

可编程ROM(PROM).芯片出厂时没有任何程序信息,用独立的编程器写入。

但是PROM 只能写一次,写入内容后,就不能再修改。

EPROM.用紫外线擦除,用电信号编程。

在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息,使用编程器可将调试完毕的程序写入。

E2PROM(EEPROM).用电信号擦除,用电信号编程。

对E2PROM的读写操作与RAM存储器几乎没什么差别,只是写入速度慢一些,但断电后仍能保存信息。

Flash ROM.闪速存储器(简称闪存),是在EPROM和E2PROM的基础上发展起来的一种电擦除型只读存储器。

特点是可快速在线修改其存储单元中的数据,改写次数达一万次(ROM 都有改写次数),读写速度快,存取时间可达70ns,而成本比E2PROM低得多,因此正逐步取代E2PROM。

注意:更多存储器内容请参考,《电子技术基础》数字部分(第五版) 主编康华光. 第七章,或者电工学(第七版)(下册) 主编秦曾煌第22章.烧写器、烧录器、编程器、下载器、仿真器、调试器单片机编程器(烧写器、烧录器)是用来将程序代码写入存储器芯片或者单片机内部的工具。

编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。

如下图所示是一个典型的编程器外形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各种烧写文件格式简介-ELF Hex Bin一,ELFExecutable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型:Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型:(1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。

(2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。

(3)共享目标文件(shared object file),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。

ELF文件格式比较复杂。

二,hex什么是Intel HEX格式?Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录由十六进制数组成的机器码或者数据常量,Intel HEX文件经常被用于将程序或数据传输存储到ROM.EPROM,大多数编程器和模拟器使用Intel HEX文件.记录格式一个Intel HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面是一个记录的格式.:llaaaatt[dd...]cc每一组字母是独立的一域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描述.:冒号是每一条Intel HEX记录的开始ll 是这条记录的长度域,他表示数据(dd)的字节数目.aaaa 是地址域,他表示数据的起始地址<如果是数据记录,这表示将要烧录的这条记录中的数据在EPROM中的偏移地址,对于不支持扩展段地址和扩展线性地址的,如89C51,这就是此条记录的起始地址>tt 这个域表示这条HEX记录的类型,他有可能是下面这几种类型00 ----数据记录01 ----文件结束记录02 ----扩展段地址记录04 ----扩展线性地址记录dd 是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以查看ll域的说明cc 是效验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有字母对<不包括本效验字和冒号> 所表示的十六进制数字<一对字母表示一个十六进制数,这样的一个十六进制数为一个字节>都加起来然后模除256得到的余数最后求出余数的补码即是本效验字节cc.<例如::0300000002005E9Dcc=0x01+NOT((0x03+0x00+0x00+0x00+0x02+0x00+0x5E)%0x100)=0x01+0x9C=0x9DC语言描述:UCHAR cc;cc=(UCHAR)~(0x03+0x00+0x00+0x00+0x02+0x00+0x5E);cc++;>数据记录Intel HEX文件由若干个数据记录组成,一个数据记录以一个回车和一个换行结束<回车为0x0d换行为0x0a>比如下面的一条数据记录:10246200464C5549442050524F46494C4500464C3310 是此行记录数据的字节数目2462 是数据在内存<将要烧写的eprom地址>中的起始地址00 是记录类型00(是一个数据记录)464C 到464C 是数据33 是此行记录的效验和扩展线性地址记录(HEX386)扩展线性地址记录也可称为32位地址记录和HEX386记录,这个纪录包含高16(16-31位)位数据地址,这种扩展的线性记录总是有两个字节数据,像下面这样::02000004FFFFFC02 是记录的数据字节数目0000 是地址域这在扩展地址记录中总是000004 是记录类型04(扩展地址记录)FFFF 是高16位地址FC 是记录效验和,计算方法如下:01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)当一个扩展线性地址记录被读到后,扩展线性地址记录的数据区域将被保存并应用到后面从Intel HEX文件中读出的记录,这个扩展线性记录一直有效,直到读到下一个扩展线性记录.绝对内存地址= 数据记录中的地址+ 移位后的扩展线性地址下面举例说明这个过程从数据记录的地址域得到地址2462从扩展线性地址记录的地址域得到地址FFFF绝对内存地址FFFF2462扩展段地址记录(HEX86)扩展段地址记录也被称为HEX86记录, 包含4-19位的数据地址段,这个扩展段地址记录总是有两字节数据,如下::020*********EA02 是记录中的数据字节数目0000 是地址域,在扩展段地址记录中,这个域总是000002 是记录类型02(扩展段地址的标示)1200 是该段的地址EA 是效验和计算如下:01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).当扩展段地址记录被读后,扩展段地址将被存储并应用到以后从Intel HEX文件读出的记录,这个段地址一直有效直到读到下一个扩展段地址记录绝对内存地址= 数据记录中的地址+ 移位后的扩展段地址数据记录中的地址域移位后扩展段地址记录中的地址域下面举例说明这个过程从数据记录的地址域得到地址2 4 6 2从扩展段地址记录的地址域得到地址1 2 0 0绝对内存地址0 0 0 1 4 4 6 2文件结束记录(EOF)一个Intel HEX文件必须有一个文件结束记录,这个记录的类型域必须是01,一个EOF记录总是这样::00000001FF00是记录中数据字节的数目0000这个地址对于EOF记录来说无任何意义01记录类型是01(文件结束记录标示)FF是效验和计算如下01h + NOT(00h + 00h + 00h + 01h).========================总结形如:BBAAAATTHHHH...HHHHCCBB: ByteAAAA:数据记录的开始地址,高位在前,地位在后因为这个格式只支持8bits,地址被倍乘所以,为了得到实际的PIC的地址,需要将地址除以2TT: Type00 数据记录01 记录结束04 扩展地址记录(表示32位地址的前缀,当然这种只能在INHX32)HHHH:一个字(Word)的数据记录,高Byte在前,低Byte在后TT之后,总共有BB/2 个字的数据CC: 一个Byte的CheckSum因为PIC16F873A只有4K的程序空间所以,不会有TT=04的Linear Address Record三,binbin文件就是直接的二进制文件,内部没有地址标记。

一般用编程器烧写时从00开始,而如果下载运行,则下载到编译时的地址即可。

总结:可以由elf文件转化为其它两种文件,hex也可以直接转换为bin文件,但是bin要转化为hex文件必须要给定一个基地址。

而hex和bin不能转化为elf文件,因为elf的信息量要大。

另外还有一种ads的调试文件axf,它可以转化为bin文件,用以下命令fromelf -nodebug xx.axf -bin xx.bin即可。

HEX文件和BIN文件的区别HEX文件和BIN文件是我们经常碰到的2种文件格式。

下面简单介绍一下这2种文件格式的区别:1 -HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。

而烧写BIN文件的时候,用户是一定需要指定地址信息的。

3 -BIN文件格式对二进制文件而言,其实没有”格式”。

文件只是包括了纯粹的二进制数据。

4 -HEX文件格式HEX文件都是由记录(RECORD)组成的。

在HEX文件里面,每一行代表一个记录。

记录的基本格式为:+---------------------------------------------------------------+| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM || MARK ':' | | OFFSET | | | |+---------------------------------------------------------------+| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |+---------------------------------------------------------------+记录类型包括:'00' Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录'01' End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾'04' Extended Linear Address Record: 用来标识扩展线性地址的记录'02' Extended Segment Address Record: 用来标识扩展段地址的记录在上面的后2种记录,都是用来提供地址信息的。

每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。

对于后面的数据记录,计算地址的时候,都是以这些“基”地址为基础的。

数据记录的具体格式:+---------------------------------------------------------------+| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM || MARK ':' | | OFFSET | '00' | | |+---------------------------------------------------------------+| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |+---------------------------------------------------------------+看个例子::020*********FA:10000400FF00A0E314209FE5001092E5011092E5A3:00000001FF对上面的HEX文件进行分析:第1条记录的长度为02,LOAD OFFSET为0000,RECTYPE为04,说明该记录为扩展段地址记录。

相关文档
最新文档