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