DSP的CMD文件详解(整理版)(精)_第1页
DSP的CMD文件详解(整理版)(精)_第2页
DSP的CMD文件详解(整理版)(精)_第3页
DSP的CMD文件详解(整理版)(精)_第4页
DSP的CMD文件详解(整理版)(精)_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP的CMD文件详解(整理版)(精)2{}{torset}3{rsVECSPAGEVECSPAGE}{VECS:origin=00000h,length=00040horiginhlengthFChSARAMorigin=04000h,length=00800hriginFFhlengthhoriginhlengthhoriginhlengthhoriginhlengthh4SARAMoriginhlength00h}{OWPAGELOWPAGEhLOWPAGEconst:{}>SARAMPAGE1.data:{}>SARAMPAGE1.bss:{}>SARAMPAGE1stack:{}>SARAMPAGE1sysmem:{}>SARAMPAGE1}5-c-ohello.outhellomapstack100-lrts2xx.lib{CToriginxlengthxOGoriginxlengthxTAoriginxlengthx}{orsVECTPAGEOGPAGE.bss>DATAPAGE1.const>DATAPAGE1}6constconstswitch放程bss间.far为程序中用far声明的全局和静态变量保留空间CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称7oprogout作指令,用来指定输出文件IONSotherlink.cmd头的话,链接器是不会从被调用的其他命令Y{8stantlengthconstantginconstantlengthconstantPAGEnameattroriginonstantnconstantlengthconstantPAGEnnamenattroriginonstantnamennattroriginconstantlengthconstant字,不超过8个字符,不同的PAGE上可以出现相同的名字(最好不用,免的搞{AGEVECSoriginxlengthxPAGEPROGoriginxlengthxPAGEBoriginxlengthx9engthxxlengthx}{SECTIONS必须用大写字母,其后的大括号里是输出段的说明性语句,每一个输出段的说明都是从段名开始,段名之后是如何对输入段进行组织和给段分配存储S{xtfileobjtextfiletextfiletextcinit}通常情况下两个地址是相同的,可以认为输出段只有一个地址,这时就可以不加“run=运行地址”这条语句了;但有时需要将两个地址分开,比如将程序加载到FLASHRAM4、CCS中的案例{PAGEVECSoriginhlength=40hPVECS:origin=40h,length=70hPROG:originbhlength=7F50hPAGEMMRSoriginhlength=05FhB2:origin=0060h,length=020hB0:origin=0200h,length=100hB1:origin=0300h,length=100hSARAMorigin0800h,length=0800hEXT:origin=8000h,length=8000h}{VECSPAGEvectorsVECSPAGEpvecsPVECSPAGE0.text:{}>PROGPAGE0PROGPAGE.bss:{}>SARAMPAGE1const{}>SARAMPAGE1.stack:{}>B1PAGE1}1>通用目标文件格式(CommonObjectFileFormat)是一种流行的二进制可执行文件格式,二进制可执行文件包括库文件(lib),目标文件(obj)最终可执行文件(out)。,现今PC机上的Windows95和NT4.0以后的操作系统的二进制文件格式(PE)就是在COFF格式基础上的进一步扩充。写操作系统和编译器a.data常数数据(比如对变量的初始化数据)3>C语言的段未初始化块(data):.switchswitch语句产生的常数表格(program/低64K数据空间).pinitTablesforglobalconstructors(C++(programtprogram.const全局和静态的const变量初始化值和字符串常数,(data).econst长.const(可定位到任何地方)(data)3>自定义段(C语言)#pragmaDATA_SECTION(函数名或全局变量名,"用户自定义在数据空间的段名pragmaCODESECTION空间的段名3、连接命令文件(CMD){tantlengthconstanttantlengthconstant}{perty}load=allocation(强制地址或存储空间名称)同>allocation:定义输出段将会run=allocation(强制地址或存储空间名称)同>allocation:定义输出段将会在由关键字const限定的全局变量(const限定的局部变量不产生)初始化值,和出现在表达式(做指针使用,而用来初始化字符串数组变量不产生)中的字符串量时,其初始值会产生.const段,而全局时不产SECTION-c-ohello.outhellomapstack100-lrts2xx.lib{CToriginxlengthxOGoriginxlengthxTAoriginxlengthx}{orsVECTPAGEE.bss>DATAPAGE1.const>DATAPAGE1}.const存放程序中的字符常量、浮点常量和用const声明的常量bss间.far为程序中用far声明的全局和静态变量保留空间t}读)、W(只写)、X(存储器可以包含可执行代码)、I(存储器可以被初始化)。md{rsVECSPAGEVECSPAGE}(1)被初始化的Section(包含数据表和可执行代码).pinit:它包括全局构造器(C++)初始化的变量表,要求放在程序页t(2)未被初始化的Section(为程序运行中创建和存放的变量在存储器中保留bss,C导入路径把数据从.cinit节复制出去然后存在.bss节中.要求放在低地址的数据页.ebbsC全局变量和静态变量保留{PAGEVECSoriginhlengthh程序复位length=00100h//DRAMB1块Borigin=00060h,length=00020h//DRAMB2块SARAM:origin=00800h,length=00800h//SRAM块IONS{resetVECSPAGEctorsVECSPAGEecsPVECSPAGEOGPAGE}}{PAGE包含的区间名字与其后面的参数反映了该区间的起始地址和长度.SECTIONS里添加下面的段名如.vectors.用来指定该段名以下,另一{tvectortableetcode}{ECSoriginhlengthhLOWoriginhlengthFChSARAMoriginhlengthhBorigin=0FF00h,length=00100hPAGEBoriginhlengthhBoriginhlength0hBoriginhlengthhSARAMorig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论