|
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
|
|