超详细的CMD文件讲解(DSP28035)

CMD文件,又称链接器配置文件,用于指导TI DSP28035程序的链接过程。主要内容包括MEMORY伪指令定义存储器模型,如PAGE0和PAGE1的内存分配,以及SECTIONS伪指令指定各段如.text、.data、.bss的位置。通过MEMORY和SECTIONS,可以精细控制程序在芯片内存中的布局,确保代码、数据正确加载和运行。
摘要由CSDN通过智能技术生成

一、 CMD文件基本概念及语法
CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件。从其名称可以看出,该文件的作用是指明如何链接程序的。
那么我们知道,在编写TI DSP程序时,是可以将程序分为很多段,比如text、bss等,各段的作用均不相同。实际在片中运行时,所处的位置也不相同。比如text代码一般应该放在flash内,而bss的变量应该放在ram内。等等。但是对于不同的芯片,其各存储器的起止地址都是不一样的,而且,用户希望将某一段,尤其是自定义段,放在什么存储器的什么位置,这也是链接器不知道的。为了告诉链接器,即将使用的芯片其内部存储空间的分配和程序各段的具体存放位置,这就需要编写一个配置文件,即CMD文件了。
所以,CMD文件里面最重要的就是两段,即由MEMORY和SECTIONS两个伪指令指定的两段配置。简单的说,MEMORY就是用来建立目标存储器的模型,而SECTIONS指令就是根据这个模型来安排各个段的位置。
MEMORY 伪指令
MEMORY 用来建立目标存储器的模型,SECTIONS 指令就可以根据这个模型来安排各个段的位置,MEMORY 指令可以定义目标系统的各种类型的存储器及容量。MEMORY 的语法如下:
MEMORY
{
PAGE 0 : name1[(attr)] : origin = constant,length = constant
name1n[(attr)] : origin = constant,length = constant
PAGE 1 : name2[(attr)] : origin = constant,length = constant
name2n[(attr)] : origin = constant,length = constant
PAGE n : namen[(attr)] : origin = constant,length = constant
namenn[(attr)] : origin = constant,length = constant
}
PAGE 关键词对独立的存储空间进行标记,页号 n 的最大值为 255,实际应用中一般分为两页,PAGE0 程序存储器和 PAGE1 数据存储器。name 存储区间的名字,不超过 8 个字符,不同的 PAGE 上可以出现相同的名字(最好不用,免的搞混),一个 PAGE 内不许有相同的 name。attr 的属性标识,为 R 表示可读;W 可写 X 表示区间可以装入可执行代码;I 表示存储器可以进行初始话,什么属性代码也不写,表示存储区间具有上述的四种属性,基本上我们都选择这种写法。下面为例子:
MEMORY
{
PAGE 0 :
BEGIN : origin = 0x000000, length = 0x000002
RAMM0 : origin = 0x000050, length = 0x0003B0
PAGE 1 :
RAMM1 : origin = 0x000480, length = 0x000380
RAML2 : origin = 0x008C00, length = 0x000400
}
SECTIONS 伪指令
SECTIONS 指令的语法如下:
SECTIONS
{
.text: {所有.text 输入段名} load=加载地址 run =运行地址
.cinit: {所有.data 输入段名} load=加载地址 run =运行地址
.bss: {所有.bss 输入段名} load=加载地址 run =运行地址
.other: {所有.other 输入段名} load=加载地址 run =运行地址
} 例如: .text : > RAML0L1, PAGE = 0
SECTIONS 必须用大写字母,其后的大括号里是输出段的说明性语句,每一个输出段的说明都是从段名开始,段名之后是如何对输入段进行组织和给段分配存储器

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值