EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在用RVCT3.1工作编写ARM程序的时候,出现了一个连接错误:Error: L6915E: Library reports error: scatter-load file declares no heap or stack regions and __user_initial_stackheap is not defined.在网上找了一些资料,原因是使用了自定了的scat文件后,编译器没有没有定义ImageZI$ W7 L: a( |7 M; h! i( L% I- F
Limit,默认提供的__user_initial_stackheap()函数会用到这个值,此时有两个解决办法:
[ g7 G. [2 J; v3 n1.改写scat文件,定义ZI段,并将*(+ZI)数据放入该段. 2.覆盖系统默认提供 的__user_initial_stackheap()函数,比如可以这样做:
% q' }8 e4 ?7 k! l) ]# {; B" w[plain]view plaincopy
! J- A2 A& M* U4 ], rprint?9 w+ `" |: I P& F1 v0 I
" t4 X2 L- A! [' J0 g
- /*
- *默认提供的__user_initial_stackheap()函数会用到ImageZI. C9 P2 X9 o) C6 z! ~+ m3 {
Limit这个值, - *因为在使用Scat时这个值在默认情况下不被定义,所以要覆盖同名的库函数
- */
- __value_in_regsstruct__initial_stackheap__user_initial_stackheap(unsignedi0,unsignedi1,unsignedi2,unsignedi3)
- {
- struct__initial_stackheapconfig;
- config.heap_base=i1;
- config.heap_limit=i1;
- config.stack_base=i1;
- config.stack_limit=0;
- returnconfig;
- }
0 n% d! J2 a; [5 C1 x
# F- @; z( k5 v3 X9 R) r9 T3 L此外,还要加上#include ,连接的时候加上--keep __user_initial_stackheap否则还会提示该函数没有定义. 0 P- }, s6 m5 g9 R% t+ K
|