找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4477|回复: 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
$ G- z" z. T  n6 M: g$ t8 V/ N, x    SPACE:   XDATA   " h" N! D4 V. W% O+ ~% P/ w) ^
    SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC
. x% d6 a3 p7 S1 b- i    LENGTH:  0008H; B8 M, x2 Q3 e: S( V! i
*** ERROR L107: ADDRESS SPACE OVERFLOW! ~) h3 R6 b6 g/ y6 V" B; f: Z' t
    SPACE:   XDATA   
5 n/ R( C# T, z! \& E    SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
3 Z! T; F8 i: ^2 }% Z    LENGTH:  0007H
7 {" X  P0 u! l8 N6 C1 Z* `*** ERROR L107: ADDRESS SPACE OVERFLOW( O! Z1 ]2 L) `) Q- t6 H
    SPACE:   XDATA   
1 h9 Q. ~2 e4 Q8 z: H    SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI
) b& o% p! ]  W2 a/ `    LENGTH:  0006H2 d7 D# |7 Q8 \# R4 d
  Q' u  o4 A0 A9 ^% T
..........
$ a. n3 z: }$ |1 B4 j$ n
" E& l9 x9 c4 v5 ?" i/ rProgram Size: data=18.7 xdata=8244 code=882334 U6 h* o+ T# C$ J1 X
Target not created9 {7 o; {3 o9 {: @% E: J. e# w
* n5 I4 f- D- I) t6 j. g8 V

0 V& f  g0 }! L9 f- _* v- @百度之后发现,并不是溢出的问题$ y; A% t7 p( o9 Z$ [
$ z  H$ W' h" b' F. L8 j
原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。  
6 ^6 x9 W; t1 M' r$ F$ ^首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。
8 q/ K! n2 e% u7 [$ s8 k
2 r1 W+ J% A1 r- O! p2 U! X% L5 `* B( J其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?
1 c# `! T6 i4 b6 X: e  ?9 t* L! T: E8 h& T
这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:
; [" |; ~0 D1 \4 p7 G, y
' G4 h$ i) s* F* D4 ZProgram Size: data=18.7 xdata=8244 code=88233
1 d* d; N3 Z6 C; j( F& Q( C就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)
+ k9 t! o7 A1 \4 E: q. ?( J5 I* j# Q. @- k' R- h% i( c: a  N  s
最后找到,我宏定义了一个参数
4 p  s! c7 L9 K: p5 P2 v& l" R9 h3 L, @- |2 l4 s
#define    USER_SIZE_NWK_RRECT                    2
: G  x5 d' Q" E& a7 ~( \& n$ T  O1 V* ^( P: b" I. F
跟踪它
; O6 ?( v" ^: @; O2 N; y
' X3 I+ ]# x. }! P    #if (USER_SIZE_NWK_RRECT)0 A6 e+ {; e- {
        NS_RRECT     MEMORY_RRECT[USER_SIZE_NWK_RRECT];
+ \, i# U% D1 q5 `# @然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示; h- i+ k$ e& `1 K( ~' U% L$ H+ L
1 A" B5 D. j3 D
结论就出来了:
3 l3 a" k1 ^6 G3 W
( g! U' H( h, h" G" h1、Keil的错误报告不完整。
1 i4 ~" [1 \$ _; K+ y, y: v7 Q! m2 L3 D8 y
2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。( B! q. d& N; v0 R6 N9 z

( U% `. e4 H4 g
分享到:  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:004 R4 a1 z  `6 u' o$ m
你确定你的keil是破解的不是试用版的?
7 ^* P; v$ b: g3 A
破解的,用了挺长时间了,哈哈

3

主题

39

帖子

155

积分

二级会员(20)

Rank: 2Rank: 2

积分
155
4#
发表于 2013-9-22 10:57 | 只看该作者
myl593799546 发表于 2013-9-22 10:20' x# Y- [5 i: }$ s- u: d. M
破解的,用了挺长时间了,哈哈

1 K' e; ]: P( l+ i# P% @% f开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪!{:soso_e121:}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
5#
 楼主| 发表于 2013-9-22 11:26 | 只看该作者
春雨过天晴 发表于 2013-9-22 10:57
! A6 f  W2 e2 p  i3 g% b5 S5 I  [开始没有细看你的分析和结论 以为是那种没破解的限制编译空间呢,后来仔细看了下,学习了。丢人了,快闪 ...
* ~6 ~* d8 M+ ^
哈哈,没有没有,互相学习,{:soso_e144:}

2

主题

97

帖子

684

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
684
6#
发表于 2013-11-15 01:33 | 只看该作者
像这样问题,没有调用到的函数,你可以用一个
! W) ^* _' K5 ]4 uif(0)
7 ~0 \8 C& }/ n+ }& S: }. B" ?{( }8 x  ^9 E6 h
   放没有调用到函数;
( e- R$ b, Z" u6 {. e' I% G}

42

主题

723

帖子

2653

积分

四级会员(40)

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

积分
2653
7#
 楼主| 发表于 2013-11-15 09:20 | 只看该作者
天才小痴 发表于 2013-11-15 01:33
  L: ^3 w" ~& u3 x8 o$ b像这样问题,没有调用到的函数,你可以用一个
) c1 e- \" S+ V1 I) t5 ^/ sif(0)) K) D8 n7 S6 O% ~( A- b/ `) a* Q, v
{

9 ^7 `# P( n; k0 J恩,你这个方法很好,不过用#if 0应该更好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-3 01:55 , Processed in 0.058677 second(s), 31 queries , Gzip On.

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

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

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