|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
*** ERROR L107: ADDRESS SPACE OVERFLOW
" v, e/ P- \: u* X; ` SPACE: XDATA
- V- h T# D* v/ g SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC
- ^ Z3 s& l1 K; Z7 }; D& H w m LENGTH: 0008H* Y& ~$ t/ C6 {
*** ERROR L107: ADDRESS SPACE OVERFLOW' S; P% H8 o7 W& Z0 B
SPACE: XDATA 3 C' ?" z( k6 E/ q/ M0 K
SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
8 H& [/ z6 f$ c6 H" i8 j6 c LENGTH: 0007H! |+ Q! r: R, r+ N2 r6 z O
*** ERROR L107: ADDRESS SPACE OVERFLOW
3 b) M# _4 f/ a SPACE: XDATA O# h: N2 r9 T% B" J5 n
SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI! l) k' n5 T3 s r- L& ^/ S
LENGTH: 0006H& h+ Z4 b' K; j' Q
& |% g! U9 R a) E$ ]
..........4 U- J0 A8 R" s
7 J3 |6 M' z; C3 EProgram Size: data=18.7 xdata=8244 code=88233( E* d o. M+ H) w {8 i, K/ O1 }
Target not created# k0 r2 A& k, |: M+ B8 u$ o
3 @2 [% l3 e4 G+ ?9 o! P: s# i z; U( C
百度之后发现,并不是溢出的问题
5 S; W1 X& S( v! w6 J L; w' c+ y/ |. O4 o/ p2 `+ c+ p. j' A. i
原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。
$ {8 Y7 H3 @& h8 p6 y+ `1 O首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。
1 _+ r8 m) c$ a0 m1 J/ J# Y
2 @* s/ s) x! E其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?
/ L: e' t$ v+ |0 z3 {( G
! \$ a G; V$ K- Z这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:
4 R& X) ~: |* t$ Y- |4 ]1 {; O1 c7 T
/ I$ `3 D9 C' g! f$ @Program Size: data=18.7 xdata=8244 code=88233" m* _) L- ?! U7 C
就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)1 _0 b4 a: a$ q4 a
$ k5 s" O+ w1 I i0 E最后找到,我宏定义了一个参数& i1 p) h2 M! Z2 |. N* Y) B
$ r& {% O1 t5 w: L8 d! ?#define USER_SIZE_NWK_RRECT 2
* W$ s: v5 f' O( ~
) _( v; c L# y5 U/ R跟踪它
. h6 J; K m0 v% K) U* [* J' s8 C" M! ~7 Z0 W" ~) T
#if (USER_SIZE_NWK_RRECT)
0 ^, `1 ^. n. C/ _! P6 }, F& k, y s NS_RRECT MEMORY_RRECT[USER_SIZE_NWK_RRECT];
2 G7 Z$ r/ ] x$ F& J( `. v然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示
% U1 ] R6 o0 |' f/ L# V9 k, N5 `) s* w: M' q
结论就出来了:
n% P, ~2 X! t! a8 ]( ?- j. T& _
1、Keil的错误报告不完整。
7 v0 L6 y! H/ U9 l( z4 n5 O
$ }' y# ]9 y3 [% q2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。
' V# t: e/ N7 T* `; d. S# y3 M. f: u- a5 d0 I( ]
|
|