找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4474|回复: 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! ~# h& a2 x/ y. X2 F) S* q
    SPACE:   XDATA   " a; V. x  Y2 V* Y
    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC
4 T( o4 s2 Z2 v    LENGTH:  0008H8 v" Q1 S, F3 O5 I+ T" T" d7 ]
*** ERROR L107: ADDRESS SPACE OVERFLOW
- K+ r& e& b5 [, `    SPACE:   XDATA   * T1 v" o7 ?7 [9 [0 ^. L* r! H9 m
    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
& J" o+ C3 A2 u, k+ t    LENGTH:  0007H) _5 H4 A# d6 K" J( C
*** ERROR L107: ADDRESS SPACE OVERFLOW5 Y( r! p. H( q
    SPACE:   XDATA   
( J$ n+ d+ {3 B, C  M# N; D: V    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI$ h; T1 ^) [+ D$ D  _' g
    LENGTH:  0006H7 Y$ ~7 ^: W4 p3 R! ^1 ]
- h' V& Y' b' B4 P
..........& ?: R# {2 M, P8 t6 D: _' _- t

; |4 a: M, e& a+ U+ l# @Program Size: data=18.7 xdata=8244 code=882331 e# W0 J( j  Q  Z3 h
Target not created+ a$ s. ~" T( c9 `2 s
; w* ]$ l8 L( S* f0 \2 }9 j
' o2 r6 n$ i5 U( @9 Q
百度之后发现,并不是溢出的问题
% `! |7 o' h9 |' e9 i7 H# Q7 t# x6 Q; R4 @$ X" T4 E8 }% d4 @
原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。  
# F- }( H3 w( H首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。
' T) T$ v$ q7 m8 V; [' `0 o4 V- l. a1 j  x$ ?+ T
其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?. H% N, h% F- J) N" \- w1 ~% a

4 x+ E% c! t+ G0 {. G1 ^这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:
8 Q% q. l& y4 r* U4 e
9 y! i7 X6 I; RProgram Size: data=18.7 xdata=8244 code=88233
( f7 ?& L( L/ x% t% }3 V就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先), e6 z( l) V# Y' }9 H, a
! O; f5 [3 U% l1 e9 w4 Z) H
最后找到,我宏定义了一个参数
. S' \1 q. j( s  `  h* x, m4 s
( B( T  Z$ M0 E! k#define    USER_SIZE_NWK_RRECT                    2
9 Q; s# ?: q, d/ O6 n$ {& \! f) d1 l- `- E  f: j. c! S$ u" }! ^8 i
跟踪它
% b" {8 {2 W" U9 [4 X2 b' P" p/ P: L5 D, U4 u' q" C
    #if (USER_SIZE_NWK_RRECT)! w. g- G5 Q9 d1 b
        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];
3 q( J1 C: q$ v7 C然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示
; q$ G3 K! e& c3 m$ q
" [3 u8 M. z" u- Q1 J$ \结论就出来了:0 v+ x2 P4 g( ]  T$ p+ C
, |. t) @: J! z9 s
1、Keil的错误报告不完整。5 H1 T. ?) f" c! p$ o
5 |3 }" u: u4 K' r' }" R
2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。& ]( _/ U7 A- V( ]1 X  D( n
) w2 N2 ?* m0 c( n. w9 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:33) H4 s+ I$ y: ?5 N
像这样问题,没有调用到的函数,你可以用一个
( n- U) N' t4 ]% G5 k1 M6 ^0 A8 S+ wif(0)* t7 t; d: P: C8 |% [( ~) \+ q
{

( X# |9 i  ]. v) L  z. m. \恩,你这个方法很好,不过用#if 0应该更好吧

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
* r/ [2 Y/ {. ]if(0)
8 e: ~2 S$ o4 G2 ?9 y. V5 u2 O{: R: \5 q, p4 p7 t/ v3 `: f! |
   放没有调用到函数;! S/ ?- ^) O- M9 }- U% n8 O
}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57
, [; ^0 G* ~7 h' C* v开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...
6 q( ?! @8 V! T$ `- w
哈哈,没有没有,互相学习,{:soso_e144:}

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20
; h! `. W. b/ l8 F9 m! D' q破解的,用了挺长时间了,哈哈

" ]" ~) x" `) s0 ~2 [开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
3#
 楼主| 发表于 2013-9-22 10:20 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:00+ G8 X" D" h4 p1 a, j: b
你确定你的keil是破解的不是试用版的?

2 f4 A8 _0 g5 t8 L) n9 @破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

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

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-2 23:49 , Processed in 0.058577 second(s), 32 queries , Gzip On.

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

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

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