局部变量占用栈(stack)空间。
程序中动态申请的如malloc()和new函数申请的内存空间占用堆(heap)空间。
|ImageRO
CODE 是 RO-CODE同义词,也是.text同义词
CONST是RO-DATA同义词,也是.constdata同义词
DATA是RW-DATA同义词,也是.data同义词
ZI是.bss的同义词
Total RO Size (Code + RO Data) 12216 ( 11.93kB)
Total RW Size (RW Data + ZI Data) 292 ( 0.29kB)
Total ROM Size (Code + RO Data + RW Data) 12412 ( 12.12kB)
应用程序的堆栈(stack)和堆(heap)是在C库函数初始化过程中建立起来的,在ADSl.2或更新版本中,在缺省状态下C库函数初始化代码会将连接器生成的符号ImageZI
__user_initial_stackheap()可以用C或汇编语言来实现。它必须返回如下参数:
r0—堆基地址;
r1—堆栈基地址;
r2—堆长度限制值(需要的话);
r3—堆栈长度限制值(需要的话)。
当用户使用分散加载功能的时候,必须重新实现一user_initial_staacklaeap(),否则连接器会报错:
Error:L6218E:Undefined symbol ImagerZI
(2)使用两个存储区
汇编语言如下:
这种方式定义的堆栈和堆分别采用两个不同存储区。堆栈采用向下增长,从地址Ox40000到地址Ox20000;堆采用向上增长,从地址0x28000000到地址0x28080000,如图4所示。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』