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[@][(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格式说明相关推荐

  1. 设计所需的各种输出格式(包括整数、实数、字符串等),用一个文件名format.h把这些信息都包括到此文件内,另编写一个文件,用文件包含命令验证可以使用这些格式

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p241 习题7 16.设计所需的各种输出格式(包括整数.实数.字符串等),用一个文件名"fo ...

  2. linux indent命令: 调整C原始代码文件的格式

    linux indent命令: 调整C原始代码文件的格式 介绍: indent命令可辨识C的原始代码文件,并加以格式化,以方便程序员阅读. 语法: indent [参数][源文件] indent [参 ...

  3. ubuntu 文件权限命令详解使用格式和方法

    为什么80%的码农都做不了架构师?>>>    在 Ubuntu Linux 中用源码文件安装软件时经常都会用到chmod命令来更改文件的权限使其在安装时有执行的权限.由于 Ubun ...

  4. linux中哪个命令可以压缩部分文件,可以使用Linux解压缩命令,解压缩任意格式的压缩文件。...

    可以使用Linux解压缩命令,解压缩任意格式的压缩文件. 答:错 铁碳合金相图上的共晶线是 答:ECF 中国大学MOOC: 冲击电流计主要用来测量 答:短时间放电脉冲所迁移的电量 脊髓全长有两处膨大, ...

  5. 【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )

    文章目录 一.7z 文件压缩格式简介 二.7z 命令使用说明 1.压缩命令 2.解压命令 三.7z 命令示例 1.配置 7z 命令环境变量 2.压缩 3.解压缩 四.参考资料 一.7z 文件压缩格式简 ...

  6. linux中文件权限 组,linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [] -R 或者--recursive 递归处理,表示将指定目录下的所有文件 ...

  7. xdg-open命令打开文件夹或其他格式文件

    xdg-open命令智能打开各种格式的文件 具体方法 linux环境 windows环境 具体方法 linux环境 在linux中,通常用命令行打开文本文件,比如用命令gedit.more.cat.v ...

  8. 命令行 网络打印 ps格式文件

    命令行 网络打印 ps格式文件 今天下载了一个ps格式的文件,它是PostScript的缩写.PostScript是Adobe公司开发的一种可编程打印控制语言.用word打开,一堆乱码,不想太麻烦找其 ...

  9. gz文件解压命令 linux_linux常用命令和文件上传(FZ)、解压、配置环境变量(JDK)

    第141次(Linux) 学习主题:Linux 学习目标: 掌握Linux常用命令 一.Linux常用命令 1-cd命令 change directory – 切换目录 特殊目录符号 :当前目录 –' ...

最新文章

  1. java web项目调用rest接口404
  2. php从入门到精通19天笔记,传智播客-PHP从入门到精通(19天)-video
  3. python array笔记
  4. 电脑常见问题_电脑知识,每日一课,计算机常用维修小技巧
  5. usb类调用失败解释
  6. GC之G1垃圾收集器
  7. unity3d 大地图接壤_架空世界地图制作指南(六)气候带
  8. 奥尼尔的话剧《榆树下的欲望》
  9. Java 11即将发布的功能–启动单文件源程序
  10. voms下的反射大师_VOMS旧版
  11. Spring中AOP开发步骤
  12. 奇怪的微信内置浏览器IOS版和Anroid 版
  13. js和php中几种生成验证码的方式
  14. 盈建科弹性板6计算_盈建科(300935):国内建筑结构设计软件行业的领先企业...
  15. OpenGL——颜色混合 glBlendFunc函数
  16. Sqlserver 2005 配置 数据库镜像:Mirror 的注意事项!!!!!!!!!
  17. 高阶篇:4.2)DFMEA设计失效模式和失效后果分析-总章
  18. 正则 负数 python_如何系统的自学 Python?“从新手到大师”的百天之路(上)
  19. AI健身房真的存在?比炒概念更可怕的是VENTO已经做出来了
  20. 知止而后有定,定而后能静,静而后…

热门文章

  1. DBA_Oracle Table Partition表分区概念汇总(概念)
  2. 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)
  3. Oracle Row cache lock图解
  4. 期待flash三剑客
  5. leetcode950. 按递增顺序显示卡牌
  6. 有抱负/初级开发人员的良好习惯-避免使用的习惯
  7. python:对list去重
  8. 系统优化-----sysctl.conf文件内核设置参数详解
  9. MySQL之——GROUP BY分组取字段最大值
  10. 【Python】python文件名和文件路径操作