单片机常用输出格式--Hex-80(Hex 386)
单片机常用输出格式--Hex-80(Hex 386)
我前面曾经介绍了Intel 32 bit Hex,但并不是所有的.hex文件都属于这种格式。Keil输出的hex文件则是另外一个类似的格式Hex-80。与前者类似,纪录的格式为:
:LLAAAARRDDDD………DDDDCC
LL:
AAAA:
RR:
DD..:
CC:
例子::011B50002272
LL = 0x01
AAAA = 0x1B50
RR=0x00
DD=0x22
CHECK SUM = ~((0x01+0x1B+0x50+0x22)&0xFF)+1 = 0x72
与Intel 32不同,由于Hex-80用于64K地址范围以内的系统,所以没有基址设定的指令。如果在Keil-51中,用跨BANK的方式超过了64K,编译器会产生多个HXX文件来标识BANK。如:
test.h00
test.h01
test.h02
分别在每个bank的视角来产生64K代码空间。对于Common Bank由于其在每个Bank的视角中都存在,所以在几个文件中都有同样的存在,这点要求编程人员注意。
还有,貌似Keil产生的Hex-80文件地址并不连续~天晓得Keil为什么不规整一下。
单片机常用输出格 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)