ARM空间分段(lst文件夹下map文件)
来源:互联网 发布:三国群英传7 mac 编辑:程序博客网 时间:2024/06/10 14:29
对于ARM,堆是向上生长的,栈是向下生长的。
局部变量占用栈(stack)空间。
程序中动态申请的如malloc()和new函数申请的内存空间占用堆(heap)空间。
|Image$$RO$$Base|
表示RO输出段运行时起始地址,也可以说是程序代码存放的起始地址,由-ro-base这个参数指定;
|Image$$RO$$Limit|
表示RO输出段运行时存储区域界限,其值可通过|Image$$RO$$Base|+Code sizes+RO Data sizes+4计算得出;
|Image$$RW$$Base|
表示RW输出段运行时起始地址,记得是运行时的地址,而不一定是加载时的存放地址,因为RW输出段在加载时可能是在ROM中并紧跟着RO输出段存放的,当程序运行时才移动(在有些书中说是移动,个人觉得应该只是复制,希望大家能帮我解释一下,谢谢!)到RAM起始地址为|Image$$RW$$Base|的区域,由-rw-base这个参数指定;未指定的话,默认紧跟RO输出段,那么|Image$$RW$$Base|=|Image$$RO$$Limit|;
|Image$$RW$$Limit|
表示RW输出段运行时存储区域界限,其值可通过|Image$$RW$$Base|+RW Data sizes+4计算得出;
|Image$$ZI$$Base|
表示ZI输出段运行时起始地址,它是运行时在RAM中生成的,紧跟着RW输出段存放,其值和|Image$$RW$$Limit|一样;
|Image$$ZI$$Limit|
表示ZI输出段运行时存储区域界限,其值可通过|Image$$ZI$$Base|+ZI Data sizes+4计算得出。
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库函数初始化代码会将连接器生成的符号Image$$ZI$$Limit地址作为堆的基地址。在分散加载时,连接器会将用户的__user_initidl_stackheap()函数代替C库函数默认的堆栈和堆初始化函数,并将其连接到用户的镜像文件中,用户可通过重新实现__user_initial_stackheap()函数来改变堆栈和堆的位置,从而适合自己的目标硬件。
__user_initial_stackheap()可以用C或汇编语言来实现。它必须返回如下参数:
r0—堆基地址;
r1—堆栈基地址;
r2—堆长度限制值(需要的话);
r3—堆栈长度限制值(需要的话)。
当用户使用分散加载功能的时候,必须重新实现一user_initial_staacklaeap(),否则连接器会报错:
Error:L6218E:Undefined symbol Imager$$ZI$$一Limit(referred from sys_stackheap.o)。
注:Image$$ZI$$Limit变量为零初始化段(ZI段)的末地址。未使用分散加载时,堆默认就定位在ZI段的末地址,而栈通常位于RAM的顶端
(2)使用两个存储区
汇编语言如下:
这种方式定义的堆栈和堆分别采用两个不同存储区。堆栈采用向下增长,从地址Ox40000到地址Ox20000;堆采用向上增长,从地址0x28000000到地址0x28080000,如图4所示。
- ARM空间分段(lst文件夹下map文件)
- ARM空间分段(lst文件夹下map文件)
- /boot/grub目录下menu.lst和grub.conf文件
- window文件夹下可以删除的文件以便释放空间
- Keil C51 之LST文件
- Wince500下ARM空间的应用 地址映射 .bib文件分析-相当经典
- bat脚本自动扫描制定文件夹下shp文件,并导入数据库,然后执行空间操作
- 令arm链接器生成map文件
- Wince500下ARM空间的应用
- AIX下如何调整文件夹空间大小
- Windows 下硬盘安装 Ubuntu menu.lst
- /boot/grub/menu.lst 文件详细设置
- mxnet(1)生成RecordIO与lst文件
- 获取文件夹下的文件和文件夹
- 遍历文件夹下所有文件和文件夹
- Qt获取文件夹下文件夹,文件列表
- 遍历文件夹下的文件
- 删除文件夹下的文件
- 禁片,你看了几部?
- 学会消气
- 算术操作类指令
- 谷歌四面受敌 新型搜索Wolfram Alpha向其宣战
- svn合并版本库
- ARM空间分段(lst文件夹下map文件)
- 出来混,迟早要还的
- 豬跟人的區別
- javascript document对象 方法 属性
- 语录:101条伟大的计算机编程名言
- 逻辑操作类指令
- programmer's love !
- 通过select里面的option修改Iframe内容
- 生意就是这样做成的!