找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4470|回复: 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
* K6 c8 \+ C1 Z0 v1 a    SPACE:   XDATA   
# u& z. I& [, h6 w; F    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC
  `& p; I# [' o1 O9 D$ G5 M) L    LENGTH:  0008H
4 j3 Q* F. h) y! W*** ERROR L107: ADDRESS SPACE OVERFLOW
6 S% D7 Z/ L) \1 i. ]- B% x    SPACE:   XDATA   
8 G2 t/ a/ h$ a, n4 C6 \    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
7 w  h% l* N# ~) p8 \' a    LENGTH:  0007H; @3 @. L1 C6 S! B- K3 v
*** ERROR L107: ADDRESS SPACE OVERFLOW
5 J* v. ?5 {8 N* G$ P    SPACE:   XDATA   
* @6 A8 F7 F  t: T% e    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI
; h( N" i, N/ z* Z% j% z! t' ]    LENGTH:  0006H; t6 F# @( c( U& ^

+ Y6 b- T4 d0 o+ h3 F........../ h8 x. {1 q8 ?( E) |0 X
& i2 i0 o, o$ @. Y
Program Size: data=18.7 xdata=8244 code=882335 v9 T8 x/ C3 I% R$ u2 m; r4 n
Target not created/ C8 L& k* E; W3 L4 ~; A' e
5 N1 L0 d! J* C3 o" e: Z
. \; d5 c: I! ]% W4 h8 v
百度之后发现,并不是溢出的问题8 O2 q# G( _# h, A7 H

  c* j; Z9 @& H  Y原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。  0 I7 U# E- M5 p2 |6 E( B7 ?$ s  ^
首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。
* k) f' C: _0 v( t; ^
& h  ]9 A9 ^" [' t其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?7 n- ~5 a! M0 t' m
0 R4 Q/ z0 V: \$ ?0 ~
这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:2 j( @" o( v% d$ {/ Y# ~

0 f7 x' J$ }. M$ |0 V. R# DProgram Size: data=18.7 xdata=8244 code=88233) Z% x/ m( p3 _4 j( G; r
就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)
* H, }6 m4 K4 k3 k* B/ E3 [7 w1 |; u' }; U
最后找到,我宏定义了一个参数
5 |! P% y: g3 s  r4 _9 Z& B
$ c1 E* b. d; {( G- N1 B5 p7 @#define    USER_SIZE_NWK_RRECT                    2 & U: c9 K) l' Z4 Z

$ F: W6 O; O) V/ a跟踪它% L- |' ^# {% B$ m- p- w
6 X' Y/ \, |8 X) h( `* b8 V, z
    #if (USER_SIZE_NWK_RRECT)
$ Z0 i( r/ {, J/ T        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];
# S& ~8 p7 v+ K5 Y然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示$ T- R" M& e- }9 j- Q0 @

" M( q, W# h- _! d: M- i8 g结论就出来了:
( o' n9 ?+ ?+ J9 z
4 D. _. e! N/ a' B# ]1、Keil的错误报告不完整。
  b# V' t" v6 T% k. {
. v. c2 \8 Q5 l8 U, s2 n2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。' v& @; R' N/ T
: h; V. E- T" |3 u  O) X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:338 L' \7 B0 E, w4 ~0 m
像这样问题,没有调用到的函数,你可以用一个  Y) C  Y2 `6 ~; N: l, P& d
if(0), d6 n3 u7 O7 b! j1 X
{

3 J( T5 R+ ?/ d4 V2 _; a# o- g  B恩,你这个方法很好,不过用#if 0应该更好吧

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
* k7 C' N0 ?. oif(0)
! A  z! u9 e3 D{: U, W! [- g) E0 c( I6 [
   放没有调用到函数;1 y# G; h* `+ t+ t# L
}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57
6 p( B% d' f- F7 y% D8 y2 I2 O开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...
, ~2 Y3 n7 t( U% C# a# m* |/ z
哈哈,没有没有,互相学习,{:soso_e144:}

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20" V  j; E& m6 b- r" ^  T
破解的,用了挺长时间了,哈哈

1 C2 q7 ^: V" e1 E开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
3#
 楼主| 发表于 2013-9-22 10:20 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:005 k* h3 ]) P/ h  j% n! M
你确定你的keil是破解的不是试用版的?
; E# C# f. K6 v% \6 x$ r# ~. P, }
破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
2#
发表于 2013-9-22 10:00 | 只看该作者
你确定你的keil是破解的不是试用版的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-10 07:50 , Processed in 0.076682 second(s), 32 queries , Gzip On.

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

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

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