IAR切BANK--命令连接器文件xcl格式说明
IAREWARM中段后缀含义
后缀 |
段类型 |
含义 |
AC |
CONST |
绝对地址定位常数 |
AN |
DATA |
用关键字__no_init声明的绝对地址定位数据 |
C |
CONST |
常数 |
I |
DATA |
初始化值为非0的数据 |
ID |
CONST |
上述数据的初始式 |
N |
DATA |
未初始化的数据 |
Z |
DATA |
初始化值为0的数据 |
ROM用于保存CONST和CODE段,而RAM用于保存DATAS段。
CODE段类型:ROM 中的执行代码
CONST段类型:ROM中的数据
DATA段类型:RAM 中的数据
常用的段说明:
段名 |
功 能说 明 |
段类型 |
属性 |
INTVEC |
保存Reset 和异常向量,含跳转到cstartup 或中断服务程序的指令。必须在0x00-0x3F 地址范围内 |
CODE |
只读 |
ICODE |
保存启动代码,位于能被INTVEC 中的转移指令达到的前32MB 字节内。 |
CODE |
只读 |
DIFUNCT |
包含指向C++建构模块的指针。该模块在调用main 之前由cstartup 执行。 |
CODE |
只读 |
SWITAB |
保存软件中断向量表 |
CODE |
只读 |
CODE |
保存程序代码,可以在ROM 中执行。 |
CODE |
只读 |
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 |
只读 |
CODE_I |
上电后保存声明为_ramfunc的程序代码,掉电后丢失。初始化时从CODE_ID(ROM)拷贝到CODE_I中,然后在RAM中执行。 |
DATA |
读/写 |
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 |
读/写 |
IAR EWARM中段定位参数
参数 |
含义 |
c |
CPU类型 |
D |
定义文件后面要使用的参数,例如说明始末地址或段大小 |
Z |
以连续方式定位段 |
P |
以压缩方式定位段 |
Q |
自动完成段初始化复制 |
-D
-Dsymbol=value
作用:
使用-D选项可以定义一些纯粹的符号,一般用于声明常数。
参数:
symbol是未在其它地方定义过的外部符号,value是symbol所代表的值。例如:
-D_BANK_LEN=0x800
-D_BANK_START=0x1800
-D_BANK_STEP=0x10000
-D_BANK_NUM=0x40
就定义了2个标识了ROM起始和结束地址的符号,这样以后关于ROM地址的配置都可以直接使用这2个符号,使得配置文件的可读性增强。
在//前面必需有空格
/*前面可有可无空格
=前后都不能有空格在
_BANK_STEP紧挨着-D
-Z
-Z[@][(SPLIT-)type]segments[=|#]range[, range]…
作用:
使用-Z命令的目的是规定segments在存储空间中占据的位置和区间。如果链接器发现某个segment没有使用-Z,-b或者-P中的任何一个命令进行定义,则会报错。
参数:
@ 使用@参数,表示为segments分配空间时不考虑任何已经被使用的地址空间。这适用于当某些segments的地址空间需要发生重叠的情形。【可选】
type 参数type规定了segments的存储类型,默认为UNTYPED。表1列举了IAR的ARM C/C++编译器所支持的segments类型。【可选】
segments:参数segments列出了参与链接的一个或多个segment,中间可用逗号分隔。,这些segments在存储空间中的顺序和被列出的先后顺序一致。在segment名后面添加‘+nnnn’,可以让XLINK为该segment所分配的空间增加nnnn字节。
= | #;规定了segments在存储空间中如何分配,其中”=“从指定范围的起始处开始为segments分配空间,而”#“从指定范围的结尾处开始为segments分配空间。如果这两个参数都没有出现,则segments会被分配在当前最后一个有确定链接地址的segment后面;如果当前没有任何segment被链接,则被分配在0地址。
-Z(CODE)MAKECODE_CONST=0xFF0000-0xFF00FF
-Z(XDATA)ECHO_BUF=0xa4400:+0x2000
-P
-P(CODE)BT_ON_SEG,BT_ON_CONST,RF_SEG=[_BANK_START:+_BANK_LEN]*_BANK_NUM+_BANK_STEP
用,分割相同的段
-Q
-Qsegment=initializer_segment
作用:
自动设置segment的拷贝初始化。链接器会产生一个新的initializer_segment(如CODE_ID),其内容与segment(如CODE_I)完全一致。相关的符号表和调试信息都会和segment相关联(如CODE_I)。initializer_segment的内容(通常在ROM中)必须在初始化阶段被复制到segment(通常在RAM中)。
-c
-cprocessor
作用:
规定目标处理器的类型。如-carm。
IAR切BANK--命令连接器文件xcl格式说明相关推荐
- 设计所需的各种输出格式(包括整数、实数、字符串等),用一个文件名format.h把这些信息都包括到此文件内,另编写一个文件,用文件包含命令验证可以使用这些格式
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p241 习题7 16.设计所需的各种输出格式(包括整数.实数.字符串等),用一个文件名"fo ...
- linux indent命令: 调整C原始代码文件的格式
linux indent命令: 调整C原始代码文件的格式 介绍: indent命令可辨识C的原始代码文件,并加以格式化,以方便程序员阅读. 语法: indent [参数][源文件] indent [参 ...
- ubuntu 文件权限命令详解使用格式和方法
为什么80%的码农都做不了架构师?>>> 在 Ubuntu Linux 中用源码文件安装软件时经常都会用到chmod命令来更改文件的权限使其在安装时有执行的权限.由于 Ubun ...
- linux中哪个命令可以压缩部分文件,可以使用Linux解压缩命令,解压缩任意格式的压缩文件。...
可以使用Linux解压缩命令,解压缩任意格式的压缩文件. 答:错 铁碳合金相图上的共晶线是 答:ECF 中国大学MOOC: 冲击电流计主要用来测量 答:短时间放电脉冲所迁移的电量 脊髓全长有两处膨大, ...
- 【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )
文章目录 一.7z 文件压缩格式简介 二.7z 命令使用说明 1.压缩命令 2.解压命令 三.7z 命令示例 1.配置 7z 命令环境变量 2.压缩 3.解压缩 四.参考资料 一.7z 文件压缩格式简 ...
- linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理
简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...
- xdg-open命令打开文件夹或其他格式文件
xdg-open命令智能打开各种格式的文件 具体方法 linux环境 windows环境 具体方法 linux环境 在linux中,通常用命令行打开文本文件,比如用命令gedit.more.cat.v ...
- 命令行 网络打印 ps格式文件
命令行 网络打印 ps格式文件 今天下载了一个ps格式的文件,它是PostScript的缩写.PostScript是Adobe公司开发的一种可编程打印控制语言.用word打开,一堆乱码,不想太麻烦找其 ...
- gz文件解压命令 linux_linux常用命令和文件上传(FZ)、解压、配置环境变量(JDK)
第141次(Linux) 学习主题:Linux 学习目标: 掌握Linux常用命令 一.Linux常用命令 1-cd命令 change directory – 切换目录 特殊目录符号 :当前目录 –' ...
最新文章
- java web项目调用rest接口404
- php从入门到精通19天笔记,传智播客-PHP从入门到精通(19天)-video
- python array笔记
- 电脑常见问题_电脑知识,每日一课,计算机常用维修小技巧
- usb类调用失败解释
- GC之G1垃圾收集器
- unity3d 大地图接壤_架空世界地图制作指南(六)气候带
- 奥尼尔的话剧《榆树下的欲望》
- Java 11即将发布的功能–启动单文件源程序
- voms下的反射大师_VOMS旧版
- Spring中AOP开发步骤
- 奇怪的微信内置浏览器IOS版和Anroid 版
- js和php中几种生成验证码的方式
- 盈建科弹性板6计算_盈建科(300935):国内建筑结构设计软件行业的领先企业...
- OpenGL——颜色混合 glBlendFunc函数
- Sqlserver 2005 配置 数据库镜像:Mirror 的注意事项!!!!!!!!!
- 高阶篇:4.2)DFMEA设计失效模式和失效后果分析-总章
- 正则 负数 python_如何系统的自学 Python?“从新手到大师”的百天之路(上)
- AI健身房真的存在?比炒概念更可怕的是VENTO已经做出来了
- 知止而后有定,定而后能静,静而后…
热门文章
- DBA_Oracle Table Partition表分区概念汇总(概念)
- 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)
- Oracle Row cache lock图解
- 期待flash三剑客
- leetcode950. 按递增顺序显示卡牌
- 有抱负/初级开发人员的良好习惯-避免使用的习惯
- python:对list去重
- 系统优化-----sysctl.conf文件内核设置参数详解
- MySQL之——GROUP BY分组取字段最大值
- 【Python】python文件名和文件路径操作