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部分。
本文介绍了链接文件中注释的写法规范及各段的含义与配置选项,包括代码区、常量区、数据区等不同内存区域的划分与管理方式,并解释了变量如何根据其类型和定义被分配到不同的内存区域。
6432

被折叠的 条评论
为什么被折叠?



