找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4471|回复: 6
打印 上一主题 下一主题

KEIL编译提示OVERFLOWED溢出的解决方法

[复制链接]

42

主题

723

帖子

2653

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2653
跳转到指定楼层
1#
发表于 2013-9-7 14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
*** ERROR L107: ADDRESS SPACE OVERFLOW
4 u9 a9 S0 b+ G0 ~+ O    SPACE:   XDATA   ; {/ F$ g. ?# m; U, Q0 a
    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC2 C1 I5 Z8 d+ l0 I! X8 `
    LENGTH:  0008H& a9 B9 }$ j1 f4 l) ~8 F
*** ERROR L107: ADDRESS SPACE OVERFLOW
4 q/ J0 s( ~! S" u    SPACE:   XDATA   
# y4 k* y9 I1 I! V    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI! h! ?! h4 m9 ^4 R% ?& P: ^7 P
    LENGTH:  0007H- V5 A! C& N/ Y* s3 {# |' y5 n
*** ERROR L107: ADDRESS SPACE OVERFLOW( r. P' \- R* S* O# w' m
    SPACE:   XDATA   
) d6 Q: N1 T% o/ N! d    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI3 M4 M; b0 S6 n
    LENGTH:  0006H
$ Q4 c/ o9 z$ T4 `7 G+ N1 C. u3 E8 s6 p1 I* l( w( x) z  b6 C* m
..........( @7 Y$ l0 _# u
) c: i2 g  u5 [: v* V: X
Program Size: data=18.7 xdata=8244 code=88233  f, M4 [$ }. |6 T. A/ T
Target not created5 V8 q) {% \$ z* u& V# ?
, u5 k+ W2 D# T

& `) y" S* P5 `8 Q0 M; K百度之后发现,并不是溢出的问题
# V5 L& f' O& p0 O% W8 ^. ~
# {# R; `' L7 c原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。  
5 R; z7 G8 D! m. W% G首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。% B+ o1 |2 R# a
( v0 o" L2 M$ H  G( d+ o* Y) m4 Y
其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?. e, E# l$ R) t- F1 t* q
) }+ A1 X( I. O$ J$ F- V& `. e) |
这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:8 p5 x( A  F( Q# o+ W% _# q
$ p- b% B5 D9 e# ]; W( U/ h
Program Size: data=18.7 xdata=8244 code=882337 K0 ^9 J1 y, A- q' [1 r
就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)5 J) s; S# a+ |+ N# |

. Y! X  _* i* o: n/ f6 E最后找到,我宏定义了一个参数
8 I7 o/ [& f2 ]3 R1 i1 e- n0 ^
#define    USER_SIZE_NWK_RRECT                    2 7 c8 y  h5 j0 A3 G* C" ?

: x6 `' y" `# V3 \2 K! l0 Y' V跟踪它# Q" P8 b; E5 z$ T: z% Y
; B! B) m8 K+ r
    #if (USER_SIZE_NWK_RRECT)
5 d) L2 K5 j8 X7 ]. r        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];2 k2 b4 F/ [. T
然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示
9 G) q5 R( v& t/ v% g
# O9 M, y2 T# x6 ^3 K结论就出来了:5 o6 E) j2 d+ ?/ a6 |- s
0 h. B5 ]0 z8 i) ~6 [* l9 Z
1、Keil的错误报告不完整。. q* u8 i% P; g4 X/ K
+ d1 r2 o- i! r8 a+ m# ?7 K
2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。/ K9 t9 |. O6 ?+ ^. Q. W* q+ Q
' T3 M% G, I* {" e1 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
2#
发表于 2013-9-22 10:00 | 只看该作者
你确定你的keil是破解的不是试用版的?

42

主题

723

帖子

2653

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2653
3#
 楼主| 发表于 2013-9-22 10:20 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:00& Y6 C0 P, m! _, G* [
你确定你的keil是破解的不是试用版的?
1 }1 E" O5 S5 v: S, H5 L$ q# j9 o
破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20" m2 s: \4 V7 l6 L
破解的,用了挺长时间了,哈哈

- W0 ^5 i! m( [7 L开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57
2 n9 D) w* K9 b& z$ P/ h# R开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...

! P5 S. f) t4 K  M. q哈哈,没有没有,互相学习,{:soso_e144:}

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
) z7 P- _; c0 b* Z. qif(0)
# a% v' y/ }: p0 P8 j{. e9 a' E3 k: h. O+ m
   放没有调用到函数;
# N& M  A9 Q7 L7 c5 X}

42

主题

723

帖子

2653

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:33
2 N. z, m6 _) b, t! m% j像这样问题,没有调用到的函数,你可以用一个
( ?1 w5 K! D2 gif(0), _, H* L  ?( V0 s/ n0 b
{

2 v% l8 \- e- s恩,你这个方法很好,不过用#if 0应该更好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-13 07:56 , Processed in 0.059780 second(s), 31 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表