IAR EWARM中段类型以及功能
CODE 段类型:ROM 中的执行代码
INTVEC 复位和异常向量,必须定位在0x00 -0x3F地址范围内
ICODE 保存启动代码,可位于前32MB 存储器的任意空间
CODE 保存将在ROM中执行的程序代码
DIFUNCT 保存C++中指向内建函数块的代码指针
SWITAB 软件中断向量表
CONST 段类型:ROM中的数据
CODE_ID | 永久保存__ramfunc函数的代码,代码将在初始化期间复制到CODE_I段并在RAM中运行
DATA_ID | 保存位于DATA_I段的初值。初值由启动代码在初始化期间从DATA_ID段复制到DATA_I段
DATA_C | 保存常数数据,包括文字字符串
DATA_AC | 保存const 声明的已定位的初始化对象。对象采用"@"操作符或"#pragma location"给定绝 对地址,不需要由链接器命令文件定义段地址
INITTAB | 保存启动时需要初始化的段地址和段长度表格
DATA 段类型:RAM 中的数据
CODE_I | 保存声明为__ramfunc函数的代码,代码将在初始化期间从CODE_ID段复制,并在RAM中执行
DATA_I | 保存非0初值声明的静态和全局变量。初值由启动代码在初始化期间从DATA_ID段复制得到
DATA_Z |保存无初值或用0初值声明的静态和全局变量,变量由启动代码在初始化阶段清0
DATA_N | 保存位于非易失性存储器中用关键字__no_init 声明的静态和全局变量
CSTACK | 保存用于C/C++程序的堆栈,该段及其长度由链接器命令文件中的如下命令决定:
-Z(DATA)CSTACK + nn = start 其中,nn为规定段长的十六进制数,start为存储器首地址
IRQ_STACK |用于进行IRQ 异常服务堆栈
HEAP | 保存动态分配数据,即C中malloc和free、C++中new和delete函数使用的数据
DATA_AN |保存用关键字__no_init 声明的已定位的对象。不需要由链接器命令文件定义段地址
IAR EWARM中段定位参数
参数 含义
-D |定义文件后面要使用的参数
-Z |以连续方式定位段
-P |以压缩方式定位段
-Q | 自动完成段初始化复制
IAR EWARM中段后缀含义
后缀 | 段类型 | 含义
AC | CONST| 绝对地址定位常数
AN | DATA | 用关键字__no_init声明的绝对地址定位数据
C |CONST | 常数
I |DATA | 初始化值为非0的数据
ID | CONST| 上述数据的初始式
N |DATA | 未初始化的数据
Z |DATA | 初始化值为0的数据