网站大量收购独家精品文档,联系QQ:2885784924

ScatterFile分散加载文件及其应用.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ScatterFile分散加载文件及其应用

分散加载文件及其应用 分散加载能够将加载和运行时存储器中的代码和数据描述在被称为分散加载描述文件的一个文本描述文件中,以供连接时使用。 (1)分散加载区 分散加载区域分为两类: ? 加载区,包含应用程序复位和加载时的代码和数据。 ? 执行区,包含应用程序执行时的代码和数据。应用程序启动过程中,从每个加载区可创建一个或多个执行区。 映象中所有的代码和数据准确地分为一个加载区和一个执行区。 (2)分散加载文件示例 ROM_LOAD 0x0000 0x4000 { ??? ROM_EXEC 0x0000 0x4000; Root region ??? { ??????? * (+RO); All code and constant data ??? } ??? RAM 0x10000 0x8000 ??? { ??????? * (+RW, +ZI); All non-constant data ??? } } ??? (3)分散加载文件语法 load_region_name? start_address | +offset? [attributes] [max_size] { ??? execution_region_name? start_address | +offset? [attributes][max_size] ??? { ??????? module_select_pattern? [( ??????????????????????????????????? (+ input_section_attr | input_section_pattern) ??????????????????????????????????? ([,] + input_section_attr | , input_section_pattern)) * ?????????????????????????????? )] ??? } }? load_region:?????? 加载区,用来保存永久性数据(程序和只读变量)的区域; execution_region:? 执行区,程序执行时,从加载区域将数据复制到相应执行区后才能被正确执行; load_region_name:? 加载区域名,用于“Linker”区别不同的加载区域,最多31个字符; start_address:???? 起始地址,指示区域的首地址; +offset:?????????? 前一个加载区域尾地址+offset 做为当前的起始地址,且“offset”应为“0”或“4”的倍数; attributes:??????? 区域属性,可设置如下属性: ??????????????????? PI?????? 与地址无关方式存放; ??????????????????? RELOC??? 重新部署,保留定位信息,以便重新定位该段到新的执行区; ??????????????????? OVERLAY? 覆盖,允许多个可执行区域在同一个地址,ADS不支持; ??????????????????? ABSOLUTE 绝对地址(默认); max_size:????????? 该区域的大小;? execution_region_name:执行区域名; start_address:???? 该执行区的首地址,必须字对齐; +offset:?????????? 同上; attributes:??????? 同上; ??????????????????? PI????????? 与地址无关,该区域的代码可任意移动后执行; ??????????????????? OVERLAY???? 覆盖; ??????????????????? ABSOLUTE??? 绝对地址(默认); ??????????????????? FIXED?????? 固定地址; ??????????????????? UNINIT????? 不用初始化该区域的ZI段; module_select_pattern: 目标文件滤波器,支持通配符“*”和“?”; ??????????????????????? *.o匹配所有目标,* (或“.ANY”)匹配所有目标文件和库。 input_section_attr:??? 每个input_section_attr必须跟随在“+”后;且大小写不敏感; ??????????????????????? RO-CODE 或 CODE ??????????????????????? RO-DATA 或 CONST ??????????????????????? RO或TEXT, selects both RO-CODE and RO-DATA ??????????????????????? RW

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档