- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解析IAR的ILINK链接器icf配置文件
五一来了,三天小假期终于可以让大家歇一歇了(估计好多人都已经在规划着五一出行计划了或者已经在旅途中了),校园里一下子冷清了不少。记得去年12月份曾经写过一篇“写在圣诞节之简单破解飞思卡尔HCS12系列Flash空间限制“的文章,当时还颇受欢迎来,至今仍保持着我博客的点击记录,哈哈,所以今天再续写一篇五一特别篇(嘿嘿,最近看海贼王看的,也出个特别篇,哈哈,丰富下俺博客的艺术形式),希望不要石沉大海的好。? ? 劳动节嘛,自然劳动最光荣,呵呵,所以我还是变回技术宅,钻进实验室捣鼓下技术吧,顺便写写心得体会、工程经验之类的给大家分享分享(所以劳动人民是最美丽滴啊,呼呼)。这里首先得说声抱歉了,好像月初有网友要求写篇有关kinetis的DMA功能的介绍,也答应了尽量本月份就写出来,不过主要是更新从零入手系列很麻烦,每写一篇的时候我都需要仔细斟酌,保证质量(毕竟不能砸了招牌嘛,嘿嘿),而且本月也的确有些忙,所以这个月底就不更新了,下个月会更新出来,敬请期待哦,哈哈。? ? 本篇介绍介绍IAR的icf配置文件,其实这算是一篇知识深入扩展,初手在用IAR简单开发一款片子的时候很少有人去关心该配置文件的,因为该配置文件一般在用IAR新建工程选型目标芯片的时候系统自动添加了(当然kinetis的官方例程里给出的配套的配置文件需要另行自己添加了),会觉得这是IDE系统的事。但是如果你是要做深入研究或者说真正掌握了解一款片子,而不是雾里看花知其然而不知其所以然,那么配置文件则是你的必修内容,怎么样,好奇了吧,呵呵,下面深入了解一番吧,进入正题:1.首先说说什么是icf文件(即ILINK链接器的配置文件)的作用,其实在IAR5.x之前,IAR是采用的叫XLINK的链接器(它相应的配置文件为xcl文件),5.x之后才采用了新版ILINK链接器,所以咱们开发Kinetis的IAR6.x自然也采用的是ILINK链接器,配置文件为icf文件,咳咳,如果有人问什么是链接器,先谷歌一下补补,我这里就引用IAR官方手册里的一句话简要说明一下什么是链接器及其相应配置文件的作用吧:”EWARM 5.xx 中的链接器称为ILINK。ILINK 可以从 ELF/DWARF 格式的目标文件中提取代码和数据,?并生成可执行的输出镜像。对于 ELF/DWARF 格式而言,基本的链接单元是section,section 的类型有code和data,属性可以是readonly (ro),readwrite (rw)和zeroinit (zi)。ILINK 根据 ILINK Configuration File(*.icf)来分配和定位这些sections。“2.简单的概括icf的文件,其主要包括以下几个内容,即:(1)可编址的存储空间(memory);(2)不同的存储地址区域(region);(3)不同的地址块(block);(4)section的初始化与否;(5)section在存储空间的放置。上面几点内容,如果你对照实际icf文件都会找得到,建议大家尝试下,会让你受益匪浅的。3.对于icf文件使用的常用命令,在网上早已有人贴出来了,随意即可搜到,这里省去麻烦,我也贴出来自己学的时候记下来的命令用法,建议通读一遍:(1)define [ exported ] symbol name = expr;作用:指定某个符号的值。参数:exported 导出该symbol,使其对可执行镜像可用name 符号名expr 符号值举例:define symbol RAM_START_ADDRESS = 0 ?/* ?定义 RAM 起始地址 ?*/?define symbol RAM_END_ADDRESS ?= 0x4000FFFF; ?/* ?定义 RAM 结束地址 ?*/-------------------------------------------------------------------(2)define memory name with size = expr [, unit-size];作用:定义一个可编址的存储地址空间(memory)。参数:name memory的名称expr 地址空间的大小unit-size expr的单位,可以是位(unitbitsize),缺省是字节(unitbytesize)举例:define memory MEM with size = 4G;-----------------------------------------------------------------(3)define region name = region-expr;作用:定义一个存储地址区域(region)。一个区域可由一个或多个范围组成,每个范
文档评论(0)