当前位置: 代码迷 >> 单片机 >> [跪求达人指点] 无极折磨 之:keil uVision 编译出来的90KB .hex 文件有几个 Byte 不一样的奇怪有关问题
  详细解决方案

[跪求达人指点] 无极折磨 之:keil uVision 编译出来的90KB .hex 文件有几个 Byte 不一样的奇怪有关问题

热度:100   发布时间:2016-04-28 16:13:07.0
[跪求达人指点] 无极折磨 之:keil uVision 编译出来的90KB .hex 文件有几个 Byte 不一样的奇怪问题
环境:  
OS : win_xp2  
文件系统: C 盘 FAT32,安装keil, D盘 NTFS,存放程序和编译结果等。 

编译器: keil uVision 2 ,uVision 3,uVision 4 都使用过。 
  已经使用了晓风网提供的 修正 0xfd 的问题 的文件。。 

单片机:MCS-51 
8051-based microcontroller with ** RF tranceiver, 
10-bit ADC, SPI, UART, PWM, 32 KBytes Flash ROM,  
2K Bytes Code RAM, 256 Bytes DATA Memory, 2K Bytes XDATA Memory 

编译过程:解压原厂打包的代码包,直接使用解压出来的 *.uv2 文件 以及代码,进行编译。 

结果:得到的.hex 文件为90KB,用 UE打开大概 2000行。 
  其中,和解压包得到的原厂附带的 .hex文件比较,有两行中各有 2 BYTE不一样。 

见下: 
1.原厂版本: 
358 行 :10164B007E00D12DE4F551F1315010127FB6747735 
370行 :10170B00F2E4F551F1315015127FB6D19E127EE6FF 

2.编译得到的版本: 
358 行 :10164B007E00D12DE4F551F1315010127FAD74773E 
370行 :10170B00F2E4F551F1315015127FADD19E127EE608 


请注意上面的 FB ---FA, 35 ---3E  



另外,原厂版本 有 2044行,而我编译的版本只有 2043 行。 
最后的 2,3行也不一样,是校验码和版本号之类的。 

====================== 
1.本人没有修改过任何的代码或者配置文件。 
2.可能有人会问,代码是否原厂修改过,而当然和附带的HEX文件不一样。这一点我无法证明。相信不会是这个问题。 
3.编译结果放到调试板中,可以 运行。但是最终结果不对。 
4.附带的HEX文件在调试板中运行一切正常。 


------解决方案--------------------
或许代码真的是不小心误改了。不过很奇怪,如果没有安装keil uVision 2,单纯的安装版本 3 或者 4,都无法编译通过。没试过这种情况。.uv2 结尾的,那就用uv2版本软件编译吧,至于越界问题,可能版本不兼容,芯片选择已经改变,你可以设置 选择更大资源的52单片机试试。呵呵,以前没碰过这么怪的问题,所以,只能说,楼主有时间的话,可以尝试。
  相关解决方案