嵌入式软件开发之: 映像文件存储器映射调整

时间:2013-09-30来源:网络

3.-reloc -split选项的替换

使用-split选项生成的映像由两个加载域和三个执行域组成。

使用以下的链接选项重新分割并定位加载域。

· -reloc

组合使用-reloc -split生成具有两个加载域的映像,并且使加载域具有RELOC属性。

· -ro-base address1

指定包含RO输出段的域的载入地址和执行地址。

· -ro-base address2

指定包含RW输出段的域的载入地址和执行地址。

· -split

将默认的单一加载域(包含RO和RW输出段的加载域)分成两个加载域。一个载入域包含RO输出段,另一个包含RW输出段。

下面的例子显示了与使用-ro-base 0x8000 -rw-base 0x040000 -split等效的Scatter文件。

LOADREG1 0x8000 ;指定第一个加载域的起始地址为0x8000

{

ROM +0

{

*(+RO)

}

}

LOADREG2 0x040000 ;第二个加载域的起始地址为0x40000

{

RAM_RW +0

{

*(+RW) ;放置所有的RW段

}

RAM_ZI +0

{

*(+ZI)

}

}

使用上例中的Scatter文件创建的内存映像有两个加载域,分别为LOADREG1和LOADREG2,它们的起始地址分别为0x8000和0x040000。

该映像文件有三个执行域,分别为ROM、RAM_RW和RAM_ZI,它们分别包含RO、RW和ZI输出段。ROM的执行地址是0x8000。

RAM_RW执行域与ROM不相邻。其执行地址是0x040000。

执行域RAM_ZI紧随RAM_RW域放置。

可以使用-reloc选项和-split选项配合使用,指定两个加载域具有RELOC属性。

下面的例子显示与使用-ro-base 0x8000 -rw-base 0x040000 -reloc -split等效的Scatter文件。

LOADREG 0x010000 RELOC

{

ROM + 0

{

* (+RO)

}

}

LOADREG 0x040000 RELOC

{

RAM_RW + 0

{

* (+RW)

}

RAM_ZI +0

{

* (+ZI)

}

}

1 2 3 4 5 6 7 8 9

关键词: 嵌入式软件 映像文件 存储器映射 分散加载

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版