1、链接文件的注释以#开头
2、每个段以以下形式表示:
+seg <section> <options>
1)、section部分的含义:
.text:代码区
.fconst:大的常量
.const:常量
.data:在long addressing range内存中的初始化数据
.bss:在long range内存中的未初始化数据
.bsct:在最开始256字节(也成为short range或short addressing range)中的初始化数据
.ubcst:在short range内存中的未初始化数据
.fdata:大的变量
.eeprom:在eeprom中的任何变量
.bit:位变量,一般用于存放_Bool型变量
2)、options部分的含义:
-a seg1:当前段(segment)跟在段seg1之后,段名seg1可以使用-n指定
-b addr:设置段的物理开始地址addr
-e addr:设置段的物理结束地址addr
-m size:设置此段的最大值
-it:使用此段作为主描述或自动初始化数据的拷贝映像
-id:初始化此段
-ib:不初始化此段
-ik:标示此段为校验段
-ic:标示此段可以移动
-n name:设置输出的段名,最长15个字符
+def:定义符号名
3)如果没有使用-b设定开始地址,段bsct、text从0开始,段data跟在bsct后面,段bss跟在data后面。
4)变量放置的区域
使用const定义的变量存放在.const部分,.const部分占用flash空间,具体可以参考map文件,里面有具体的起始、结束地址及占用空间的大小,一般占用flash空间。
一般局部变量存放在stack空间。
对于static定义的变量,无论此变量是全局变量还是局部变量,如果初始化了则放在.data部分,如果未初始化则放在.bss部分。