找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4475|回复: 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; \3 ?3 Q3 {: _8 ^6 F
    SPACE:   XDATA   1 k6 X7 U& t* n  [0 \) O
    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC
5 k* o% S5 R2 |4 {% {    LENGTH:  0008H
8 H, `+ c) h# j*** ERROR L107: ADDRESS SPACE OVERFLOW# ^7 T% b! t. `$ |
    SPACE:   XDATA   
' C, }# c" y& Y* E    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
: j- ~( ^, ?2 W    LENGTH:  0007H
4 L" w4 ]$ o  D7 h# [*** ERROR L107: ADDRESS SPACE OVERFLOW* t' V0 X9 q6 J
    SPACE:   XDATA   
0 y$ X$ Q) }( k+ E, z. x    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI
8 ~- n. W; L4 r2 p5 y& |  {    LENGTH:  0006H* H3 e9 f2 d) ]6 X% H/ T8 }
" O  Q2 P1 \# C: ^5 q0 T$ ?
..........
  m- W5 C8 d0 z0 Q5 p, w' f
+ b$ W' C6 h0 b; e  Z' ?9 ~Program Size: data=18.7 xdata=8244 code=88233
' K# T/ z. l0 f6 ITarget not created
3 h, v5 a- h! S* W0 s; t) t: t* ?$ I* V! a

! _0 M& L  d  o8 c4 P百度之后发现,并不是溢出的问题
3 Q3 u2 D+ A2 {8 Y! v# [$ i. U+ G+ P5 \$ W; Y
原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。  0 `( S3 P5 J( ?* u
首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。0 F, x5 W6 Z+ G2 i

. X4 \5 q) O$ }# g  q3 ~其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?
# P8 k  |. d4 _6 S
; L8 Z! U- T+ ]3 v. _  T这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:
6 n' H0 t% `6 [
% |* f9 G1 `( A5 yProgram Size: data=18.7 xdata=8244 code=88233
, M/ w! Y$ n- U  p) Z% x( b就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)5 I( d# R* R  U; N7 V( \
. _! I) L4 E, R( N) f6 \# a
最后找到,我宏定义了一个参数
& F: i' f' k2 ^" p2 Q1 q4 {; n3 x, f& y) m0 k4 C7 k- ~, y
#define    USER_SIZE_NWK_RRECT                    2 9 r8 e; V: i! E4 t. q3 ~  N
1 I% H' ?. u- {* W0 ^3 g
跟踪它, r6 i# Y8 C/ b# d  Y
$ u  B$ z) \- e6 O
    #if (USER_SIZE_NWK_RRECT)
) }3 F4 ]6 q8 _6 x) E* m        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];
/ c5 [/ _6 p5 R! p" ^然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示
) S) [$ Z0 x5 k% X; P2 f
, V0 K' Z% W& N, [/ m5 J  O& U结论就出来了:
' v' V$ ?5 s+ C1 ?) Z0 d1 v' t4 ^1 v5 t
1、Keil的错误报告不完整。. m* N! p: N1 _9 q5 g. m# N+ D
& P% x% G* p* N$ @* p- K- s
2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。5 x$ k3 H! {" T/ I" Y$ S

3 F. }6 J& _& T8 c) X. v4 o
分享到:  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
! |8 U8 d' I7 ]8 _0 ~' u( J你确定你的keil是破解的不是试用版的?

5 j) |7 p) m6 |7 W5 G# \' J0 r破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20
. ?6 Z/ l# o, P9 @8 f/ g! m破解的,用了挺长时间了,哈哈

. q( p' Y+ w4 m: k* w/ @0 u4 c开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57: D. x5 q, v; D. `7 s4 O  n4 n8 e
开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...
8 d  h* L' x( g( _' B3 f2 `' T/ C
哈哈,没有没有,互相学习,{:soso_e144:}

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
0 k4 @2 F. g. `if(0)
8 o& b9 q  [7 }5 I% B{- T" h9 g& Q0 a2 z
   放没有调用到函数;
7 {& ?; i! Z3 ~& k: }2 Y" o}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:33
; ~& X6 C$ f# |- p/ t( p像这样问题,没有调用到的函数,你可以用一个3 q9 \/ g+ ?3 ?% `& R" d
if(0)' w, Q, g8 _9 F! s
{

% @" T# b# m4 S1 I恩,你这个方法很好,不过用#if 0应该更好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-3 00:57 , Processed in 0.056470 second(s), 32 queries , Gzip On.

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

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

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