找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4472|回复: 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+ l. a4 |' E7 E
    SPACE:   XDATA   
. d" c) ~: S8 w7 A# I" b/ P    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC
4 S8 K+ a% u. v: U    LENGTH:  0008H
2 S6 _0 j" I8 O*** ERROR L107: ADDRESS SPACE OVERFLOW# |0 b1 ^) y" t/ |5 ~5 W
    SPACE:   XDATA   
2 b( a6 Q: c) Y/ n- m: U! b/ L    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
8 ]' f. g- ]+ \9 P8 T    LENGTH:  0007H
( j6 T3 o" g* T3 u7 C3 w6 f*** ERROR L107: ADDRESS SPACE OVERFLOW
4 f, M' m; p: {5 c6 E    SPACE:   XDATA   
3 v$ }+ N/ O: L- E+ Y6 \" G% @    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI  n* G$ Y8 G9 C) m
    LENGTH:  0006H
1 _/ C- m, E( h6 |: i+ r( p9 T) I. o" P, g7 f1 O* Z# @
..........6 V! K8 V3 E; Z+ E/ }
" n+ y8 [; _& m
Program Size: data=18.7 xdata=8244 code=882333 h/ Q1 U1 v+ q' L
Target not created
# v( p1 L  ]3 I/ f
  l! C( k. ^- p! {- E+ }7 U
1 v# y. J9 P# W& J5 [百度之后发现,并不是溢出的问题
5 K+ Y" K2 t9 Q2 r! Y6 A
% A; I+ Y8 c  K- q原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。    Z* U! j) B5 e
首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。' N* v( `8 o8 E1 M3 v5 o. q, P1 d

3 j0 [1 S# \1 }  J其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?" c5 \$ Q" w& k8 F1 p) S6 K
$ Y  L, b; _! p, a/ X( s
这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:- u# p. h  l9 @( f: |

7 d4 S9 Y$ s! X; ?0 w/ EProgram Size: data=18.7 xdata=8244 code=88233
( z  X3 H$ \$ U就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)( Z$ t" w3 i. J1 G. R: |0 [" x
4 M8 N1 ^3 P) ~
最后找到,我宏定义了一个参数7 u0 u& j! o( i' }1 z2 r

0 A7 y: Y8 h( ?/ F- Q9 y* f#define    USER_SIZE_NWK_RRECT                    2
7 @$ i( E5 o) g1 [8 l; a# C3 m* ^" s) F5 f* I: ~8 y
跟踪它/ C+ n2 o+ E4 J

3 v: K: w) h0 ]5 `9 D8 ^# n    #if (USER_SIZE_NWK_RRECT)
1 {" D- W1 m  S! k5 T$ S1 d. e        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];
% W+ z+ Z& ^* M! e7 X; S8 Y然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示1 C. e! \( K; s9 a9 q: ?9 N, y
% p2 \" z: V- R2 y7 S
结论就出来了:8 d4 K) I3 p* K1 y. G

1 h: E# I# N7 g2 v" Y1、Keil的错误报告不完整。  T: _0 I- F; H7 _& N6 U! l

' Z" ?1 m3 r8 R2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。
2 a- ~" p7 P; [2 B; `6 z) ]4 o, w% W; |2 s# m# D& q& s" L/ V
分享到:  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
' O- }# q2 s' v$ O你确定你的keil是破解的不是试用版的?
- W4 I- j% M+ h: N- N- b, g3 \
破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20
) S, Y4 @2 N( M" [% k9 Y8 V破解的,用了挺长时间了,哈哈
0 L9 d4 U% V* s4 `* M2 s' a
开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57& V* z6 k/ I! I/ Z5 n' s0 B
开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...
2 j' |) y5 T% \$ F. y3 j, c9 J
哈哈,没有没有,互相学习,{:soso_e144:}

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
- q4 h* C; X2 i$ i& tif(0)) Z4 f4 d+ C9 m) }6 m$ b: K0 v
{$ ^/ m( L/ S- D
   放没有调用到函数;& c) m2 {( h1 {' o" V
}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:33
4 L* g- D( B$ Z3 B5 c' X, P像这样问题,没有调用到的函数,你可以用一个7 t3 z" A2 s$ E( c
if(0)! d' A: s2 R; J% f& u- a: U; t
{
3 L3 D/ A: C: I* Q' o* J9 l
恩,你这个方法很好,不过用#if 0应该更好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-2 18:58 , Processed in 0.058895 second(s), 31 queries , Gzip On.

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

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

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