[ZLG-ARM] 一个SCF文件讲解

[复制链接]
1903|2
 楼主| reeper 发表于 2009-4-9 15:02 | 显示全部楼层 |阅读模式
散加载描述文件供ARM-ADS链接器使用,用来决定各个代码段和数据段的存储位置,下面为一个添加注释后的.scf文件例子:<br /><br /><br />代码:<br />;YL-LPC2294片内FLASH分散加载文件;Internal&nbsp;Flash&nbsp;256kBytes,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address&nbsp;range:0x00000000~0x0003ffff;Internal&nbsp;SRAM&nbsp;16KBytes,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address&nbsp;range:0x40000000~0x40003fff;External&nbsp;Flash&nbsp;2MBytes,SST39VF1601,&nbsp;&nbsp;&nbsp;Address&nbsp;range:0x80000000~0x401fffff;External&nbsp;SRAM&nbsp;512KBytes,IS61LV25616,Address&nbsp;range:0x81000000~0x81080000ROM_LOAD&nbsp;0x0&nbsp;&nbsp;&nbsp;&nbsp;;ROM_LOAD:Name&nbsp;of&nbsp;the&nbsp;load&nbsp;region.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;0x0:Start&nbsp;address&nbsp;for&nbsp;ROM_LOAD&nbsp;region.{&nbsp;&nbsp;&nbsp;&nbsp;ROM_EXEC&nbsp;0x00000000&nbsp;&nbsp;&nbsp;&nbsp;;ROM_EXEC:Name&nbsp;for&nbsp;the&nbsp;first&nbsp;execute&nbsp;region.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;0x00000000:Start&nbsp;address&nbsp;for&nbsp;the&nbsp;execture&nbsp;region.&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(vectors,&nbsp;+First)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RO)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Place&nbsp;all&nbsp;code&nbsp;and&nbsp;RO&nbsp;data&nbsp;into&nbsp;this&nbsp;exec&nbsp;region,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;and&nbsp;make&nbsp;sure&nbsp;the&nbsp;'vectors'&nbsp;section&nbsp;from&nbsp;'Startup.o'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;be&nbsp;placed&nbsp;first.&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;IRAM&nbsp;0x40000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;The&nbsp;second&nbsp;execute&nbsp;region;start&nbsp;address&nbsp;is&nbsp;0x40000000.&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(+RW,+ZI)&nbsp;;&nbsp;Place&nbsp;all&nbsp;RW&nbsp;and&nbsp;ZI&nbsp;data&nbsp;from&nbsp;Startup.o&nbsp;here.&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;ERAM&nbsp;0x81068000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;The&nbsp;third&nbsp;execute&nbsp;region;Start&nbsp;address:0x81068000.&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RW,+ZI)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;All&nbsp;reset&nbsp;RW/ZI&nbsp;data&nbsp;to&nbsp;be&nbsp;placed&nbsp;here.&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;HEAP&nbsp;+0&nbsp;UNINIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;The&nbsp;fourth&nbsp;execute&nbsp;region;Start&nbsp;address:Follow&nbsp;the&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;end&nbsp;of&nbsp;ERAM&nbsp;region.&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;heap.o&nbsp;(+ZI)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;All&nbsp;ZI&nbsp;data&nbsp;from&nbsp;heap.o&nbsp;to&nbsp;be&nbsp;placed&nbsp;here.&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;STACKS&nbsp;0x40004000&nbsp;UNINIT&nbsp;;The&nbsp;fifth&nbsp;execute&nbsp;region.&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack.o&nbsp;(+ZI)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;All&nbsp;ZI&nbsp;data&nbsp;from&nbsp;stack.o&nbsp;to&nbsp;be&nbsp;placed&nbsp;here.&nbsp;&nbsp;&nbsp;&nbsp;}}<br /><br /><br />一般一个简单的分散加载描述文件包含三部分:Loader&nbsp;region、Execute&nbsp;region、Input&nbsp;section。各部分的格式及定义细节参见文件:ADS_LinkerGuide.pdf<br /><br />
zcying 发表于 2009-4-9 15:05 | 显示全部楼层

我觉得加载这一部分对初学者来说是比较抽象的。

  
zcying 发表于 2009-4-9 15:06 | 显示全部楼层

我在开始弄的时候就犯了很多错误

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

185

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部