8773|18

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

[跪求达人指点] 无极折磨 之: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文件在调试板中运行一切正常。

最新回复

txRCwBogPv8Dn0p8KH0Hx 顶啊顶啊 5gV90F5G1RpaQo2uEIPhs icMHNwVUl14dEE98xnKsn 顶起来!  详情 回复 发表于 2010-4-22 14:44
点赞 关注

回复
举报

74

帖子

0

TA的资源

禁止访问

沙发
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

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

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
。.uv2 结尾的,那就用uv2版本软件编译吧,至于越界问题,可能版本不兼容,芯片选择已经改变,你可以设置 选择更大资源的52单片机试试。呵呵,以前没碰过这么怪的问题,所以,只能说,楼主有时间的话,可以尝试。
=====================================================================
首先谢谢·~~

选片也是按照用户手册来选的。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
代码,工程文件,HEX文件的最后修改日期是同一天。
估计自带的HEX文件编译出来以后,代码是没有修改过的。

---虽然这个并不可以证明代码是否真的没有改了。


另外,如果只安装 keil uVision 3
会有这样的错误:
keil uvision3 for toolset undefined ....
Path....


搜索了网上的几种解决方法,除了 修改注册表 那个方法没有使用以外,
其他的重新安装,使用其他版本或者其他人的tool.ini等都用过了,没有效果。

安装了版本2 以后,就没有这个问题了。

 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

6
 
会不会和 TOOL.INI有关?
为什么如果不按照版本2,版本3,版本4都编译不过?
和keil uVision 无关?


如何验证。。。?

QQ 79526162
有兴趣讨论或者需要代码或者有其他问题的,请加我。
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

7
 
难道你按照的keil uVision3是arm版本的MDK,应该不会啊,按照的时候会提示选择选C51还是ARM的,,关于TOOL.INI的问题,试过,是这样的,在同一操作系统下,我安装了keil uVision2,同时安装了ARM版本的keil uVision3 ,又名MDK,假如你用MDK打开51prj就会出现TOOL.INI的配置问题。。。。。。。。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
上面有误;

难道你安装的keil uVision3是arm版本的MDK,应该不会啊,安装的时候会提示选择选C51还是ARM的,,关于TOOL.INI的问题,试过,是这样的,在同一操作系统下,我安装了keil uVision2,同时安装了ARM版本的keil uVision3 ,又名MDK,假如你用MDK打开51prj就会出现TOOL.INI的配置问题,不知道和你现在的问题同不同。。。。。。。。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
难道你按照的keil uVision3是arm版本的MDK


============================================

兄弟你这一提,我觉得应该是。
反正我发现版本3的  C51.EXE 是在 /keil/arm/bin/下面的。。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
这个是单纯的版本4 编译时候的错误提示,版本3 好像也类似。

版本4 C51.EXE 的位置在 C:\Keil\C51\BIN
==========================
linking...
LX51 LINKER/LOCATER V4.41 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1995 - 2009
@.\BUILD_~1\SERIAL~1\Rels\..\SERIAL~1.LNP ".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\serialappl.obj",
".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\conhandle.obj",
".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\UART_buf_io.obj",
"..\..\Z-Wave\rf_freq\ZW_rf_030x_US.obj",
"..\..\Z-Wave\lib\controller_static_nosuc_norep_ZW030x\zw_controller_static_nosuc_norep_ZW030xs.lib"
TO ".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\..\serialapi_controller_static_nosuc_norep_ZW030x_US"
PRINT(".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\list\..\serialapi_controller_static_nosuc_norep_ZW030x_US.map") DW (13,16,25) NOOL CLASSES(IDATA(D:0-D:0xff),XDATA(X:0-X:0x7ff),CODE(C:0-C:0x7fff))
SEGMENTS(?CO?ZW_RF020X_FTBL (C:0X7F80))
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE
    SEGMENT: ?PR?_COMMANDHANDLER?ZW_CONTROLLER
    LENGTH:  0008EBH   
*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS
    CAUSE:   JUMP TARGET OUT OF RANGE
    ADDRESS: 063BAH
*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS
    CAUSE:   JUMP TARGET OUT OF RANGE
    ADDRESS: 06736H
******************************************************************************
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 79CBH BYTE (1522%) *
******************************************************************************
Program Size: data=255.5 xdata=1984 const=108 code=32716
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE
    SEGMENT: ?PR?_COMMANDHANDLER?ZW_CONTROLLER
    LENGTH:  0008EBH   
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 peasant_lee 的回复:
晕,哈哈,罪魁祸首浮出水面了,哈哈,那楼主你就安装的时候选择C51。。。。。。


弱弱的问。。。。。。要怎么选择的呢》?
我记得有这样一个选项:
eval version    or     full version

我选择了后者。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
下面提供版本4下的 完整的LOG。


Build target 'Release'
compiling serialappl.c...
compiling conhandle.c...
assembling UART_buf_io.a51...
linking...
LX51 LINKER/LOCATER V4.41 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1995 - 2009
@.\BUILD_~1\SERIAL~1\Rels\..\SERIAL~1.LNP ".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\serialappl.obj",
".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\conhandle.obj",
".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\UART_buf_io.obj",
"..\..\Z-Wave\rf_freq\ZW_rf_030x_US.obj",
"..\..\Z-Wave\lib\controller_static_nosuc_norep_ZW030x\zw_controller_static_nosuc_norep_ZW030xs.lib"
TO ".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\Rels\..\serialapi_controller_static_nosuc_norep_ZW030x_US"
PRINT(".\build_prj\serialapi_controller_static_nosuc_norep_ZW030x_US\list\..\serialapi_controller_static_nosuc_norep_ZW030x_US.map") DW (13,16,25) NOOL CLASSES(IDATA(D:0-D:0xff),XDATA(X:0-X:0x7ff),CODE(C:0-C:0x7fff))
SEGMENTS(?CO?ZW_RF020X_FTBL (C:0X7F80))
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE
    SEGMENT: ?PR?_COMMANDHANDLER?ZW_CONTROLLER
    LENGTH:  0008EBH   
*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS
    CAUSE:   JUMP TARGET OUT OF RANGE
    ADDRESS: 063BAH
*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS
    CAUSE:   JUMP TARGET OUT OF RANGE
    ADDRESS: 06736H
******************************************************************************
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 79CBH BYTE (1522%) *
******************************************************************************
Program Size: data=255.5 xdata=1984 const=108 code=32716
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE
    SEGMENT: ?PR?_COMMANDHANDLER?ZW_CONTROLLER
    LENGTH:  0008EBH   
*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS
    CAUSE:   JUMP TARGET OUT OF RANGE
    ADDRESS: 063BAH
*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS
    CAUSE:   JUMP TARGET OUT OF RANGE
    ADDRESS: 06736H
*** ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
    LIMIT:   0800H BYTES
Target not created
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

13
 
代码超了,,,,
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

14
 
eval version or full version,这个没参考,看你按照的文件,,我加你QQ
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
佩服,hoho
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

16
 
补充一下,上面提及的版本4的错误信息,是由于没有使用破解补丁,导致的2K限制,发生的。

使用了补丁以后,可以编译通过,不过,运行效果还是不行。。。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

17
 
越走越费解。。。。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

18
 
N
顶啊顶啊
f



Q
顶起来!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

19
 
txRCwBogPv8Dn0p8KH0Hx
顶啊顶啊
5gV90F5G1RpaQo2uEIPhs



icMHNwVUl14dEE98xnKsn
顶起来!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表