IAR命令连接器文件xcl格式说明:
例如:
1. 把函数MACDeviceInit放到自己定义的段里面
-Z(CODE)CODE=_..X_BOOT_BASE_ADD-_..X_BOOT_END_ADD
改成
-Z(CODE)MY_SECTION=_..X_BOOT_BASE_ADD-_..X_BOOT_END_ADD
定义
void MACDeviceInit(void) @ "MY_SECTION"
2. 修改中断地址
// Ignore linker warnings for placing the INTVEC at 0x5000
-we18=i
-Z(CODE)INTVEC=0x5000
//
相关文档介绍:
-c CPU类型
-D 说明始末地址或段大小
-Z 按顺序段定位并分配空间
常用的段说明:
段名 功 能 说 明 段类型 属性
INTVEC 保存Reset 和异常向量,含跳转到cstartup 或中断服务程序的指令。必须在0x00-0x3F 地址范围内。 CODE 只读
ICODE 保存启动代码,位于能被INTVEC 中的转移指令达到的前32MB 字节内。 CODE 只读
DIFUNCT 包含指向C++建构模块的指针。该模块在调用main 之前由cstartup 执行。 CODE 只读
SWITAB 保存软件中断向量表 CODE 只读
CODE 保存程序代码,可以在ROM 中执行。 CODE 只读
CODE_I 上电后保存声明为_ramfunc的程序代码,掉电后丢失。初始化时从CODE_ID(ROM)拷贝到CODE_I中,然后在RAM中执行。DATA 读/写
CODE_ID 永久性保存声明为_ramfunc 的程序代码。这些代码初始化时从CODE_ID拷贝到CODE_I 中(RAM),然后在RAM 中执行。CONST 只读
INITTAB 保存需要在启动时初始化的段地址和段长度表格。 CONST 只读
DATA_ID 保存DATA_I 段中变量的初值,这些值在系统初始化时由cstartup 从DATA_ID 拷贝到DATA_I。 CONST 只读
DATA_C 保存常数数据,包括文字字符串 CONST 只读
CHECKSUM 保存段的校验和 CONST 只读
DATA_I 保存声明为非零初值的静态全局变量,其初值开始在DATA_ID中,系统初始化时由cstartup从DATA_ID 拷贝到DATA_I。DATA 读/写
DATA_Z 保存声明初值为零或没有声明初值的静态全局变量 DATA 读/写
DATA_N 保存非易失存储器中,用_no_init 关键字声明的静态全局变量 DATA 读/写
CSTACK C/C++内部数据堆栈(用户模式) DATA 读/写
SVC_STACK 操作系统堆栈(管理模式,用于具有特权的操作系统任务) DATA 读/写
ABT_STACK 数据访问中止模式堆栈(用于虚拟存储器及存储器保护) DATA 读/写
UND_STACK 未定义指令中止模式堆栈(支持硬件协处理器软件仿真) DATA 读/写
FIQ_STACK 快中断模式堆栈(用于高速数据传输或通道处理) DATA 读/写
IRQ_STACK 中断模式堆栈(用于通用中断处理) DATA 读/写
HEAP 堆(Heap)是C\C++中为malloc 和 free 或new 和delete 保留的动态分配存储空间。 DATA 读/写
-P 把离散的存储器空间分配给