解析 IAR 的 ILINK 链接器 icf 配置文件
本篇介绍介绍 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 Con&guration File(*.icf)来分配和定位这些 sections。“
2.简单的概括 icf 的文件,其主要包括以下几个内容,即:
(1)可编址的存储空间(memory);
(2)不同的存储地址区域(region);
(3)不同的地址块(block);
(4)section 的初始化与否;
(5)section 在存储空间的放置。
上面几点内容,如果你对照实际 icf 文件都会找得到,建议大家尝试下,会让你受益匪浅的。
3.对于 icf 文件使用的常用命令,在网上早已有人贴出来了,随意即可搜到,这里省去麻烦,我也贴出来
自己学的时候记下来的命令用法,建议通读一遍:
(1)de&ne [ exported ] symbol name = expr;
作用:指定某个符号的值。
参数:
exported 导出该 symbol,使其对可执行镜像可用
name 符号名