你这个设置没问题,没生成的原因是,你这个版本没有注册,代码长度超过了试用版的范围,所以没有生成hex文件。
错误提示里写得很明白
在Keil uVision 5中,生成Hex文件的步骤如下:
在Keil uVision 5中打开你的工程。
在工程树中选择Target,并右键单击它。
在右键菜单中选择"Options for Target...",打开"Target Options"对话框。
在"Target Options"对话框的左侧栏中,选择"Output"选项卡。
在"Output"选项卡中,选择"Create HEX File"复选框。
点击"OK"按钮保存更改并关闭对话框。
在Keil uVision 5中,选择"Project"菜单,然后选择"Build Target"。这将编译你的工程并生成HEX文件。
在工程目录下,找到生成的HEX文件。HEX文件的名称与你的Target名称相同,文件扩展名为".hex"。
它是由一行行符合Intel HEX 文件格式的文本所构成的ASCII 文本文件。每一行包含一 个 HEX 记录 ,由对应机器语言码和/或常量数据的十六进制编码数字组成。Hex文件通常用于传输将被存于ROM 或者EPROM 中的程序和数 据。大多数EPROM 编程器或模拟器使用Intel HEX 文件。Hex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。
冒号 | 数据长度 | 数据起始地址 | 数据类型 | 数据 | 校验码 |
---|---|---|---|---|---|
: | 1 byte | 2 byte | 1 byte | n byte | 1 byte |
第一个字节:表示数据的长度,即有多少个数据
第二个,第三个字节表示数据的起始地址.
第四字节表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。
‘00’ Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
‘01’ End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾
‘02’ Extended Segment Address Record: 用来标识扩展段地址的记录
‘03’ Start Segment Address Record: 开始段地址记录
‘04’ Extended Linear Address Record: 用来标识扩展线性地址的记录
‘05’ Start Linear Address Record: 开始线性地址记录
第五个字节到最后一个字节之前,为数据
最后一个字节 为校验和。
校验和的算法为:计算校验和前所有16进制码的累加和(不计进位),检验和 = 0x100 - 累加和.
其中第一行数据 :020000040800F2 ,可拆分为:
0x02
表示有两个数据
0x00 0x00
数据起始地址
0x04
代表数据类型,即扩展线性地址记录
0x08 0x00
表示两个数据
0xF2
校验和,检验和 = 0x100 - 累加和.
检验数据
累加和:将最后一个字节之前的数据相加,即0x02+0x00+0x00+0x04+0x08+0x00=0x0E
校验和=0x100-0x0E=0xF2,数据检验正确