找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4473|回复: 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
7 Z. L" V; \3 ^+ ]# [    SPACE:   XDATA   
7 q8 v2 u4 ^7 B  R$ C. ^    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC; l2 f# W- f! V) H4 |/ X
    LENGTH:  0008H8 s! n: h" a: [" S
*** ERROR L107: ADDRESS SPACE OVERFLOW
/ Q+ y  }9 _' e1 o    SPACE:   XDATA   $ p  q- e6 A; ~& w; E3 `( `6 x7 |
    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
: s* h% k+ c" n/ {7 t    LENGTH:  0007H* H& j7 J( f8 v/ M7 K* J+ D
*** ERROR L107: ADDRESS SPACE OVERFLOW
7 q& z) u9 r; H& R0 a( L* m    SPACE:   XDATA   2 d0 ^" n/ X( m8 T5 H
    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI1 G6 |, I4 P2 |- u1 W9 y
    LENGTH:  0006H
" k3 ]0 V( ^* O" U' B; O) C1 N3 @- d1 U# B/ A' h
..........% H; D3 t' U4 J) t

1 @6 D  j# V: S3 r& \6 OProgram Size: data=18.7 xdata=8244 code=88233# M; M  V% b1 _1 B- p% Z
Target not created$ G  E6 E. \) A7 F' n. g" L2 n

% ^9 j! |* R. \. h# W# a3 C
- D) a0 M9 A, h( h4 p9 g% c百度之后发现,并不是溢出的问题
& T) Z2 C+ w4 ^* v; j; M4 Y6 e; j% h$ E! s
原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。  ! u, z$ v7 C9 {( w' O! x2 x
首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。
# ~" ~# G: e4 N9 t4 z4 W5 E
1 E  F0 q) X* Z- ~+ V$ T& N7 d其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?
# S# Q% c2 Q8 P6 _* X
; O  [* Q; ^  m这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:
9 q' y9 o- r: a# a8 M
! P# O$ K6 T5 @( P5 cProgram Size: data=18.7 xdata=8244 code=88233
! k# a2 |4 o* Q. A. \. o就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)
; W( e: J* y5 F' w& U% O: x; L: D- Q4 E
最后找到,我宏定义了一个参数
# ?) ?, d- y. |6 _0 R
3 m9 H6 O6 |. w/ t2 x& K#define    USER_SIZE_NWK_RRECT                    2 5 u* R3 _6 Q7 u' K

* R& ?7 p& b9 R6 C! D% `跟踪它
& k1 h2 `! p( E" [& d' }) P
3 R; F* [5 _% p+ z, d    #if (USER_SIZE_NWK_RRECT)
4 X. F# j. `% n' D+ m( V; g        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];7 D, D% Z$ n$ ^* i) v9 H  }
然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示
1 f$ ^, G" B+ [' p) S9 G& c$ l
结论就出来了:
1 p( R$ O+ S& {
& H1 k, [/ O" V1、Keil的错误报告不完整。9 x' t) h0 i% h
8 F) L! {6 {7 p- \* K5 C
2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。1 H! K: C6 w' ^. t
2 }% `+ ]. z2 O* h
分享到:  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
- v9 c% |" |3 }& l2 m你确定你的keil是破解的不是试用版的?
; u$ i$ Q7 `2 Z+ F; O
破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20
" D4 v/ V% f9 Q) b破解的,用了挺长时间了,哈哈

2 G: h6 b. [6 N8 Y2 C/ i开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57/ S# T8 a* |' x
开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...

$ l' Y! P+ L: a; l哈哈,没有没有,互相学习,{:soso_e144:}

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
9 z% K' T/ p, I9 Bif(0)- R, R8 O5 r* ]: Q
{
6 }, G7 M$ X3 M  t7 T1 R   放没有调用到函数;% g: }6 ?- a. i+ Q% B  J7 ?
}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:332 L9 W$ k3 K4 M4 S
像这样问题,没有调用到的函数,你可以用一个
4 l2 v/ a" G4 }7 T9 D9 nif(0)
8 @) r; Z4 h  [8 z{

. \" M1 G9 [  h' C8 q, Y恩,你这个方法很好,不过用#if 0应该更好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-2 21:40 , Processed in 0.059349 second(s), 31 queries , Gzip On.

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

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

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