scatter 文件语法
来源:互联网 发布:sql中replace函数用法 编辑:程序博客网 时间:2024/05/20 13:14
scatter file文件可以灵活的分配可执行文件中各文件链接的位置,甚至具体到各.o文件的ro rw 内容的具体连接位置。更加具体的可以看上一篇的内容
scatterfile的语法不是很复杂,这里通过两个实例来介绍下,第一个实例算是一个最简单的分配
1 简单的内存映射
MEMORY 0x0000 0x8000
{
ROM 0x0000 0x8000
{
*(+RO)
}
RAM 0x10000 0x6000
{
*(+RW, +ZI)
}
}
MEMORY(下载区域名称) 0x0000(下载区域起始地址) 0x8000(下载区域最大字节数)
{
ROM(第一执行区域名称) 0x0000(第一执行区域起始地址) 0x8000(第一执行区域最大字节数,如果编译的结果RO的疮毒大于此值会报警告强编译选项下会报错误)
{
*(+RO(代码与只读数据))
}
RAM(第二执行区域名称) 0x10000(第二执行区域起始地址) 0x6000(第二执行区域最大字节数)
{
*(+RW(读写变量), +ZI(未初始化变量))
}
}
2 复杂内存映射
MEMORY_1 0x0000
{
ROM_1 0x0000
{
program1.o(+RO)
}
DRAM 0x18000 0x8000
{
program1.o (+RW, +ZI)
}
}
MEMORY_2 0x4000
{
ROM_2 0x4000
{
program2.o(+RO)
}
SRAM 0x8000 0x8000
{
program2.o (+RW, +ZI)
}
}
MEMORY_1 0x0000(下载区域一起始地址,后面的长度的限制参数缺省意味着不指定,这样容易在编译时没有警告执行文件的内存不足造成溢出)
{
ROM_1 0x0000(第一执行区域开始地址)
{
program1.o(+RO) (program1.o内的Code与RO data 放在第一执行区域,这样就可以指定特定的文件的编译出的部分更加灵活的存放)
}
DRAM 0x18000(第二执行区域开始地址) 0x8000(第二执行区域最大字节数)
{
program1.o (+RW, +ZI) (program1.o内的RW data与 ZI data 放在第二执行区域)
}
}
MEMORY_2 0x4000(下载区域二起始地址,不指定先知长度面临与第一段同样的风险)
{
ROM_2 0x4000
{
program2.o(+RO) (program2.o内的Code与RO data 放在第一执行区域)
}
SRAM 0x8000 0x8000
{
program2.o (+RW, +ZI) (program2.o内的RW data与 ZI data 放在第二执行区域)
}
}
BNF 符号与语法
" :由引号赖标示的符号保持其字面原意,如A”+”B标示A+B。
A ::= B :定义A为B。
[A] :标示可选部分,如A[B]C用来标示ABC或AC。
A+ :用来标示A可以重复任意次,如A+可标示A,AA,AAA, …
A* :同A+。
A | B :用来标示选择其一,不能全选。如A|B用来标示A或者B。
(A B) :标示一个整体,当和|符号或复杂符号的多次重复一起使用时尤其强大,如(AB)+(C|D)标示ABC,ABD,ABABC,ABABD, …
PI: 位置独立。
OVERLAY: 覆盖。
ABSOLUTE: 绝对地址。
FIXED: 固定地址,下载地址与执行地址具有该地址指示确定。
UNINIT: 未初始化数据。
RELOC:无法明确指定执行区域具有该属性,而只能通过继承前一个执行区或父区域获得。
- scatter 文件语法
- Scatter文件编写
- Scatter文件编写
- scatter file 文件编写
- ADS1.2 Scatter文件解析
- 怎样修改MTK Scatter 文件
- 怎样修改MTK Scatter 文件
- Scatter文件的编写、分析
- 【Cortex-M0】19.6 scatter文件
- Scatter文件的编写、分析
- ARM映像文件与SCATTER
- scatter
- scatter
- Scatter文件的编写及分析
- Scatter文件的编写及分析
- Scatter文件的编写及分析
- Scatter文件的编写及分析(转)
- Scatter文件的编写及分析
- 关于64位UBUNTU硬盘安装方式详解,和提示找不到"vmlinuz"的分析
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- 配置IIS7.5的过程
- C语言的谜题
- ASP.NET之如何用代码读取数据1
- scatter 文件语法
- 分页模板
- POJ 1061 青蛙的约会 解题报告(模线性方程)
- Ubuntu下安装配置tftp
- ios修改导航栏title
- 组合输出
- TCP SOCKET
- 不用加减乘除做加法与不用新的变量交换两个变量的值
- Lucene研究笔记