|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
*** ERROR L107: ADDRESS SPACE OVERFLOW
/ Z, @! ^) f9 ]& w; m Y SPACE: XDATA
- Z$ J4 o0 Y, j* p5 s7 r SEGMENT: ?XD?_ZSYS_ADC_CALIB_GET?ADC) W B3 @+ N6 s5 r& T5 y4 P8 T3 j7 g
LENGTH: 0008H. h$ G0 H, Y* B/ ]
*** ERROR L107: ADDRESS SPACE OVERFLOW9 ^; B* U# X7 ~" N; O
SPACE: XDATA
, C) m0 p! h8 u g SEGMENT: ?XD?_VSEARCHMAPBYIEEEADDR?Z_USERSTACKAPI
2 c% r) c, G6 A; N& z, r% S LENGTH: 0007H- }6 |- x% D1 A& r' U# ^. a
*** ERROR L107: ADDRESS SPACE OVERFLOW
: B) E2 M$ ^! l+ f SPACE: XDATA / \ Q) B' K1 H, s, V
SEGMENT: ?XD?_VUSERADDRINDICATION?Z_USERSTACKAPI3 i( B p2 I) V- j* s
LENGTH: 0006H
+ P& h) q! K L/ s6 K5 @
" x0 y& p# F$ A U& H' x& I/ d..........9 R, G4 {! N% b5 y" K
" o% V2 K* T) I& iProgram Size: data=18.7 xdata=8244 code=882335 u0 ?& _8 c/ |$ H/ Y0 X! L1 q
Target not created3 q" u- O6 U- d" B5 g
8 I1 F) P) k& p& j. X8 K
. b: C- i" G% |" @" G$ L百度之后发现,并不是溢出的问题
% G4 C6 o9 @+ [
2 [! i4 f/ X8 M4 R6 j原来不是data空间溢出的问题,而是我有些子程序定义了没调用,导致keil无法合理分配空间,从而溢出。 3 v8 Y& l& t$ |! t5 v2 M
首先,我说了我不能任意使用外部存贮空间,所以决不能让编译器将一些临时变量放入idata or xdata。
7 S" X1 ^# G$ T0 B+ u* X w4 c" p7 J1 Y3 o8 J4 p2 }* t
其次,data 空间可以达到256,见错误提示,data空间只使用了18.7而决无错误。这就有疑问了,那么我的错误出现在哪里呢?; |1 g$ {: P! l( I, ^, L$ A, k$ O
4 k) n3 W% D6 _
这就是Keil的问题了。当编译失败时,它不能给出完整正确的报告。所以它给出的:$ j1 u* Y x% W' h
' ]$ z: L4 L/ J1 G+ sProgram Size: data=18.7 xdata=8244 code=88233
2 P2 x8 M- d8 y i' a+ j就是不可信的。实际上我的data空间已经远不止18.7了。(所以下次看是否是真的溢出,可观察这个参数先)6 z2 ~* Q! r% O1 `8 z
1 b0 t: [1 U: w' g$ B( ]6 ^
最后找到,我宏定义了一个参数
; q# S) K! s7 v* k* c. g1 {3 n; i+ A, x9 g% N
#define USER_SIZE_NWK_RRECT 2 ! ]( B2 J$ c3 }8 R" j: P: P y
U& k. v; C$ Y h% g# q
跟踪它
& b4 d f' Z, S/ d k$ O- M& T
3 W" z7 d: [6 E L( Q #if (USER_SIZE_NWK_RRECT)
0 F% k9 J7 a/ h# O NS_RRECT MEMORY_RRECT[USER_SIZE_NWK_RRECT];
" ]0 i3 {& V }: d; R* k然后再跟踪 MEMORY_RRECT,发现这个参数没有被调用 , 将2改成0即可解决错误提示% r' P; g+ u- t
$ I- r' \) |7 g% g/ i6 p结论就出来了:- O- k3 f3 I* D& ^ M& g
" h5 v8 z& Y- L8 K
1、Keil的错误报告不完整。! f$ x) a: k' N' a' G4 N
( V t. h3 J# M4 ~( q- H* X" _ s
2、在Keil里最好不要留下定义而未使用的变量或函数,编译器无法合理的为之分配空间,而导致空间溢出。
& M; H0 j- H2 L$ z5 H1 S) a
9 {4 D& l; A- b6 ~; v" r8 v |
|