资料介绍
13.4 映像文件存储器映射调整
13.4.1 关于分散加载
映像由域(Regions)和输出段(Output Sections)组成。每个域可以有不同的加载地址和执行地址。
分散加载可以更加方便准确的指定映像存储器映射,为映像组件分组和布局提供了全面控制。它能够描述由载入时和执行时分散在存储器映射中的多个区组成的复杂映像映射。虽然,分散加载可以用于简单映像,但它通常仅用于具有复杂存储器映射的映像。
要构建映像的存储器映射,必须向armlink提供以下信息:
· 分组信息:决定如何将各输入段组织成相应的输出段和域;
· 定位信息:决定各域在存储空间的起始地址。
有两种方法可以配置指定映像文件的分组和定位信息:如果映像文件中地址映射关系比较简单,可以使用命令行选项;如果映像文件中地址映射关系比较复杂的情况,可以使用一个配置文件。使用该配置文件可以告诉链接器相关的地址映射关系。配置文件又叫Scatter文件,是一个文本文件,通过下面的链接选项来实现。
-scatter filename
1.为分散加载定义的符号
当armlink使用Scatter文件创建映像时,它创建一些区相关符号。表13.2概括了这些符号的意义。
表13.2 域相关符号
符 号意 义
Load$$region_name$$Base域的载入地址
Image$$region_name$$Base域的执行地址
Image$$region_name$$Length执行域字节长度(4的倍数)
Image$$region_name$$Limit执行区末尾地址
Image$$region_name$$ZI$$Base执行域中ZI段的执行地址
Image$$region_name$$ZI$$LengthZI输出段的长度(4的倍数)
Image$$region_name$$ZI$$Limit执行域中ZI段的末尾地址
2.使用Scatter文件的优势
链接程序的命令行选项提供了一些对数据和代码布局的控制,但要实现对布局的全面控制命令行输入的指令是远远不够的。在下面一些情况下,就需要使用Scatter文件对映像布局进行控制。
① 需要实现复杂存储器映射
系统中的代码和数据必须放在多个不同存储器区域中,这样连接器必须知道哪个段放在哪个储存器空间的详细信息。这种情况下,最好用Scatter文件实现代码映像的分散加载。
② 系统中存在多种不同类型存储器
许多系统包含多种不同类型存储器,如flash存储器、ROM、SDRAM和快速SRAM。分散载入描述可以将代码和数据放置在最适合的存储器类型中。例如,中断代码可能放在快速SRAM中,以加快中断响应时间,而不频繁使用的配置信息可能放在较慢的flash存储器中。
③ 存储器映射I/O
分散载入描述可以将数据精确定位在内存地址中,而避免数据和内存映射外围地址相冲突。
④ 位于固定位置函数
可以将特定函数放在存储器中的同一个位置,这样即使周围的应用程序已经被修改并重新编译,也可以使具有特定功能的函数地址保持不变。
⑤ 使用符号识别堆和栈
可以为堆和栈的位置定义符号,链接应用程序时可以指定该封闭模块的位置。
随着目前嵌入式系统越来越复杂,系统中可能同时使用flash、ROM和RAM,所以建议在生产系统映像时使用Scatter文件。
3.分散加载命令行选项
可以使用下面的命令行选项使用分散加载文件。
-scatter description_file_name
使用该命令可以使链接器使用命令中给出的description_file_name文件生成最终的映像文件。
4.简单存储器映像举例
例如,一个实际系统的存储器映射如图13.7所示。
图13.7 简单存储器映射
为了实现图13.7的存储器映射,使用图13.8所现实的Scatter文件。
13.4.1 关于分散加载
映像由域(Regions)和输出段(Output Sections)组成。每个域可以有不同的加载地址和执行地址。
分散加载可以更加方便准确的指定映像存储器映射,为映像组件分组和布局提供了全面控制。它能够描述由载入时和执行时分散在存储器映射中的多个区组成的复杂映像映射。虽然,分散加载可以用于简单映像,但它通常仅用于具有复杂存储器映射的映像。
要构建映像的存储器映射,必须向armlink提供以下信息:
· 分组信息:决定如何将各输入段组织成相应的输出段和域;
· 定位信息:决定各域在存储空间的起始地址。
有两种方法可以配置指定映像文件的分组和定位信息:如果映像文件中地址映射关系比较简单,可以使用命令行选项;如果映像文件中地址映射关系比较复杂的情况,可以使用一个配置文件。使用该配置文件可以告诉链接器相关的地址映射关系。配置文件又叫Scatter文件,是一个文本文件,通过下面的链接选项来实现。
-scatter filename
1.为分散加载定义的符号
当armlink使用Scatter文件创建映像时,它创建一些区相关符号。表13.2概括了这些符号的意义。
表13.2 域相关符号
符 号意 义
Load$$region_name$$Base域的载入地址
Image$$region_name$$Base域的执行地址
Image$$region_name$$Length执行域字节长度(4的倍数)
Image$$region_name$$Limit执行区末尾地址
Image$$region_name$$ZI$$Base执行域中ZI段的执行地址
Image$$region_name$$ZI$$LengthZI输出段的长度(4的倍数)
Image$$region_name$$ZI$$Limit执行域中ZI段的末尾地址
2.使用Scatter文件的优势
链接程序的命令行选项提供了一些对数据和代码布局的控制,但要实现对布局的全面控制命令行输入的指令是远远不够的。在下面一些情况下,就需要使用Scatter文件对映像布局进行控制。
① 需要实现复杂存储器映射
系统中的代码和数据必须放在多个不同存储器区域中,这样连接器必须知道哪个段放在哪个储存器空间的详细信息。这种情况下,最好用Scatter文件实现代码映像的分散加载。
② 系统中存在多种不同类型存储器
许多系统包含多种不同类型存储器,如flash存储器、ROM、SDRAM和快速SRAM。分散载入描述可以将代码和数据放置在最适合的存储器类型中。例如,中断代码可能放在快速SRAM中,以加快中断响应时间,而不频繁使用的配置信息可能放在较慢的flash存储器中。
③ 存储器映射I/O
分散载入描述可以将数据精确定位在内存地址中,而避免数据和内存映射外围地址相冲突。
④ 位于固定位置函数
可以将特定函数放在存储器中的同一个位置,这样即使周围的应用程序已经被修改并重新编译,也可以使具有特定功能的函数地址保持不变。
⑤ 使用符号识别堆和栈
可以为堆和栈的位置定义符号,链接应用程序时可以指定该封闭模块的位置。
随着目前嵌入式系统越来越复杂,系统中可能同时使用flash、ROM和RAM,所以建议在生产系统映像时使用Scatter文件。
3.分散加载命令行选项
可以使用下面的命令行选项使用分散加载文件。
-scatter description_file_name
使用该命令可以使链接器使用命令中给出的description_file_name文件生成最终的映像文件。
4.简单存储器映像举例
例如,一个实际系统的存储器映射如图13.7所示。
图13.7 简单存储器映射
为了实现图13.7的存储器映射,使用图13.8所现实的Scatter文件。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式软件开发入门
- 嵌入式软件开发的特点、设计流程、嵌入式软件的结构
- 嵌入式软件开发需要懂的硬件基础
- 嵌入式软件开发做什么?嵌入式开发培训学哪些
- 嵌入式软件开发是什么?
- 嵌入式软件开发环境
- 嵌入式软件开发基础实验报告数码管显示
- FPGA中嵌入式块存储器的设计
- 嵌入式通信软件开发设计 0次下载
- 基于嵌入式软件开发中构件技术的研究 6次下载
- ARM嵌入式软件开发 64次下载
- Eclipse嵌入式软件开发平台 55次下载
- 嵌入式芯片的存储器映射 101次下载
- 嵌入式软件开发与Embedded-GIS 36次下载
- 嵌入式软件开发系列教程 (很多本书)
- 嵌入式软件开发和软件开发的区别 1738次阅读
- 如何为嵌入式软件开发选择编译器 751次阅读
- 嵌入式软件架构设计之程序分层 1024次阅读
- 汽车SoC嵌入式存储器的优化诊断策略 701次阅读
- 基于UML嵌入式软件开发环境的自动取款机系统的应用方案 3608次阅读
- 采用嵌入式相变存储器的BEOL e-NVM解决方案 1515次阅读
- 详解嵌入式软件开发到FPGA开发 6329次阅读
- 嵌入式软件开发编程规范介绍 4206次阅读
- 嵌入式软件开发的这些编程规范你了解吗 3809次阅读
- 嵌入式软件工程师职业规划必知 6346次阅读
- 嵌入式开发和底层开发有什么区别 1.5w次阅读
- 关于嵌入式软件开发测试的十大秘诀 2257次阅读
- 学嵌入式开发入门_学嵌入式开发需要看哪些书籍 2.4w次阅读
- 嵌入式存储器的主要设计标准分析及IP选用指南 1508次阅读
- 嵌入式存储器的设计方法和策略 1790次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多