
keil5生成hex文件的方法是:点击左侧项目浏览器,在Target1上点右键,出现的对话框中,点output选项卡,勾选“createHEXfile”。
hex文件格式是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式有很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。
当你写完程序后,点击菜单栏中的Flash中的configure for tools,然后选择output这个选项,把那个生成hex文件的复选框选上。就可以生成hex文件了,如果还有什么问题的话,咱们可以探讨探讨!
·hex怎么恢复成代码。打开解压后目录下的idaqexe可执行文件,点击[File]-[Open]看到如下界面。打开hex文件d出提示。processot type选择小端ARM,点击set保存。按顺序点击中的1-2-3,设置好后点击所以ok关闭提示框。接下来将看到hex的文件内容,在CODE32下按d合并行。右击第二行跳到程序起始处。在跳转到的程序前面按c键。反汇编完成,在CODE32处按F5键将生成类C伪代码。
用KEIL C 就可以,需要建立一个工程,然后把你的文件添加进去。
右键点击工程名,然后选择第一项,进入一个对话框,选择“输出”选项卡,选中“产生HEX文件”复选框,编译的时候就生成HEX文件了。实在不懂就留个QQ 我给你发截图。
ntel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPROM编程器或模拟器使用Intel HEX文件。
记录格式
Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:
:llaaaatt[dd]cc
每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样:
: 每个Intel HEX记录都由冒号开头
ll 是数据长度域,它代表记录当中数据字节(dd)的数量
aaaa 是地址域,它代表记录当中数据的起始地址
tt 是代表HEX记录类型的域,它可能是以下数据当中的一个:
00 – 数据记录
01 – 文件结束记录
02 – 扩展段地址记录
04 – 扩展线性地址记录
dd 是数据域,它代表一个字节的数据一个记录可以有许多数据字节记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符
cc 是校验和域,它表示这个记录的校验和校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足
数据记录
Intel HEX文件由任意数量以回车换行符结束的数据记录组成数据记录外观如下:
:10246200464C5549442050524F46494C4500464C33
其中:
10 是这个记录当中数据字节的数量
2462 是数据将被下载到存储器当中的地址
00 是记录类型(数据记录)
464C…464C是数据
33 是这个记录的校验和
扩展线性地址记录(HEX386)
扩展线性地址记录也叫作32位地址记录或HEX386记录这些记录包含数据地址的高16位扩展线性地址记录总是有两个数据字节,外观如下:
:02000004FFFFFC
其中:
02 是这个记录当中数据字节的数量
0000 是地址域,对于扩展线性地址记录,这个域总是0000
04 是记录类型 04(扩展线性地址记录)
FFFF 是地址的高16位
FC 是这个记录的校验和,计算方法如下:
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)
当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从Intel HEX文件读取来的随后的记录线性地址保持有效,直到它被另外一个扩展地址记录所改变
通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址
以下的例子演示了这个过程
来自数据记录地址域的地址 2462
扩展线性地址记录的数据域 + FFFF
------------
绝对存储器地址 FFFF2462
扩展段地址记录(HEX86)
扩展段地址记录也叫HEX86记录,它包括4-19位数据地址段扩展段地址记录总是有两个数据字节,外观如下:
:020000021200EA
其中:
02 是记录当中数据字节的数量
0000 是地址域对于扩展段地址记录,这个域总是0000
02 是记录类型 02(扩展段地址记录)
1200 是地址段
EA 是这个记录的校验和,计算方法如下:
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h)
当一个扩展段地址记录被读取,存储于数据域的扩展段地址被保存,它被应用于从Intel HEX文件读取来的随后的记录段地址保持有效,直到它被另外一个扩展地址记录所改变
通过把记录当中的地址域与被移位的来自扩展段地址记录的地址数据相加获得数据记录的绝对存储器地址
以下的例子演示了这个过程
来自数据记录地址域的地址 2462
扩展段地址记录数据域 + 1200
---------
绝对存储器地址 00014462
文件结束(EOF)记录
Intel HEX文件必须以文件结束(EOF)记录结束这个记录的记录类型域的值必须是01EOF记录外观总是如下:
:00000001FF
其中:
00 是记录当中数据字节的数量
0000 是数据被下载到存储器当中的地址在文件结束记录当中地址是没有意义被忽略的0000h是典型的地址
01 是记录类型 01(文件结束记录)
FF 是这个记录的校验和,计算方法如下:
01h + NOT(00h + 00h + 00h + 01h)
Intel HEX文件例子:
下面是一个完整的Intel HEX文件的例子:
:10001300AC12AD13AE10AF1112002F8E0E8F0F2244
:10000300E50B250DF509E50A350CF5081200132259
:03000000020023D8
:0C002300787FE4F6D8FD7581130200031D
:10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
:04003F00A42EFE22CB
:00000001FF
可以按如下方法生成HEX文件:
在Keil左边的“project”栏中,鼠标单击”Target 1“;
按下键盘上的Alt+F7键;
在下图中依次单击,”Output“,“Creat HEX File”,即可产生HEX文件。
hex文件看程序:hex文件是不能直接读出程序的。这是ASCII码形式的二进制代码文件。
如果单片机没加密的话可以从里面读到二进制程序,一般是用编程器,有些单片机支持下载线的用下载线也可以修改改程序比较难,首先你得到二进制程序,然后反汇编,再修改汇编程序。
此类文件通常用于传输将被存于ROM或者EPROM中的程序和数据。符合Intel HEX文件格式的文本所构成的ASCII文本文件。大多数EPROM编程器或模拟器使用Intel HEX文件。HEX文件记录由对应机器语言码和/或常量数据的十六进制编码数字组成。
记录类型包括:
'00' Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录 '01' End of File Record: 用来标识文件结束。
放在文件的最后,标识HEX文件的结尾 '04' Extended Linear Address Record: 用来标识扩展线性地址的记录 '02' Extended Segment Address Record: 用来标识扩展段地址的记录 在上面的后2种记录,都是用来提供地址信息的。
每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。 对于后面的数据记录,计算地址的时候,都是以这些“基”地址为基础的。
以上就是关于keil5怎么生成hex文件全部的内容,包括:keil5怎么生成hex文件、单片机:在keil里写完程序后怎么生成单片机需要的HEX文件 ,步骤如何越详细越好!拜托了、·hex怎么恢复成代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)