没有合适的资源?快使用搜索试试~ 我知道了~
arm7 文件的分散加载,介绍了memb.c的里面每句代码的意思
资源推荐
资源详情
资源评论
在ADS LPC2200的启动模板中有一个scf文件夹,其中有mem_a.scf、mem_b.scf、mem_c.scf这3个文件,这3个文件是ADS的分散加载机制,其目的是将代码段和数据段分别定位到制定地址上。可以在Arm Linker中选择加载路径。
分散装在技术概述:
分散装在技术可以把用户的应用程序分割成多个RO(只读)运行域和RW(可读写)运行域(关于域的概念大家可以在网上查查),并且给它们制定不同的地址。一个嵌入式系统中,Flash、16位RAM、32位RAM都可以存在于系统中,所以,将不同功能的代码定位在特定的位置会大大地提高系统的运行效率。下面是最为常用的2种情况:
一、32位的RAM运行速度很快,因此就把中断服务程序作为一个单独的运行域,放在32位的RAM,使它的响应时间达到最快。
二、程序在RAM中运行,其效率要远远高于在ROM中运行,所以将启动代码(Boot loader)以外的所有代码都复制在RAM中运行,可以提高运行效率。
分散装在技术主要完成了2个基本的功能:
如何分散。就是如何将输入段组成输出段和域。
如何装载。就是确定装载域和灭个运行域在存储空间里的地址是多少。
域可以分为装载域和运行域
装载域描述运行前输出段和域在ROM/RAM里的分布状态,运行域描述了运行时输出段和域在ROM/RAM里的分布状态。大多数情况下,映像文件哎执行前把它装载到ROM里,而当运行时,域里的有些输出段(比如RW类型的输出段)必须复制到RAM里,程序才能正常运行,所以,在装载和运行时,RW类的输出段处在不同的位置(地址空间)。
Scatterfile分散加载文件:
在scatterfile中可以为每一个代码或数据区在装载和执行时指定不同的存储区域地址,Scatlertoading的存储区块可以分成二种类型:
装载区:当系统启动或加载时应用程序的存放区。
执行区:系统启动后,应用程序进行执行和数据访问的存储器区域,系统在实时运行时可以有一个或多个执行块。
映像中所有的代码和数据都有一个装载地址和运行地址(二者可能相同也可能不同,视具体情况而定)。
scatter文件语法
scatter文件是一个简单的文本文件,包含一些简单的语法。
My Region 0x0000 0x1000
{
;the context of region
}
标题
每个块由一个头标题开始定义,头中至少包含块的名字和起始地址,如(0x0000),另外还有最大长度等其他一些属性选项(注:这些属性是可选的,如0x1000)。
内容
块定义的内容包括在紧接的一对花括号内,依赖于具体的系统情况。
一个加载块必须至少含有一个执行块;实践中通常有多个执行块。
一个执行块必须至少含有一个代码或数据段;这些通常来自源文件或库函数等的目标文件;通配符号*可以匹配指定属性项中所有没有在文件中定义的余下部分。
有以下几种属性:
RO:只读的代码段和常量
RW:可以读写的全局变量和静态变量
ZI:RW段中要被初始化为零的变量。
Scatterfile中的定义要按照系统冲定向后的存储器分布情况进行,在引导程序完成初始化任务后,应该把主程序转移到RAM中运行以加快系统的运行速度。
LPC2200分散加载文件分析:
ROM_LOAD 0x80000000 (1)
{
ROM_EXEC 0x80000000 (2)
My Region 0x0000 0x1000
{
;the context of region
}
标题
每个块由一个头标题开始定义,头中至少包含块的名字和起始地址,如(0x0000),另外还有最大长度等其他一些属性选项(注:这些属性是可选的,如0x1000)。
内容
块定义的内容包括在紧接的一对花括号内,依赖于具体的系统情况。
一个加载块必须至少含有一个执行块;实践中通常有多个执行块。
一个执行块必须至少含有一个代码或数据段;这些通常来自源文件或库函数等的目标文件;通配符号*可以匹配指定属性项中所有没有在文件中定义的余下部分。
有以下几种属性:
RO:只读的代码段和常量
RW:可以读写的全局变量和静态变量
ZI:RW段中要被初始化为零的变量。
Scatterfile中的定义要按照系统冲定向后的存储器分布情况进行,在引导程序完成初始化任务后,应该把主程序转移到RAM中运行以加快系统的运行速度。
LPC2200分散加载文件分析:
ROM_LOAD 0x80000000 (1)
{
ROM_EXEC 0x80000000 (2)
剩余5页未读,继续阅读
资源评论
jinanxuexin
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功