环境:
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单片机试试。呵呵,以前没碰过这么怪的问题,所以,只能说,楼主有时间的话,可以尝试。