一.TI DSP .CMD c语言字符常量有哪些文件的编写
CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间.
所以不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同.所以要根据你的
芯片进行修改.
分两部分.MEMORY和SECTIONS.
MEMORY是用来指定芯片的rom和ram的大小和划分出几个区间.
SECTIONS是将输出段定位到所定义的存储器中。
1>    MEMORY指定存储空间
MEMORY
{
PAGE 0: 
  name 0 [attr]  : origin = constant, length = constant   
PAGE n: 
      name n [attr]  : origin = constant, length = constant   
}
PAGE n:标示存储空间,n<255;PAGE 0为程序存储空间;PAGE 1为数据存储空间
name:存储空间名称
attr:存储空间属性:只读R,只写W,可包含可执行代码X,可以被初始化I。
orgin:用来定义存储空间的起始地址
Lenth:用来定义存储空间的长度
2>    SECTIONS分配段
  SECTIONS
{
name            : [property,property,……]
}
name:输出段的名称
property:输出段的属性:
  load=allocation(强制地址或存储空间名称)同>allocation:定义输出段将会被装载到哪里。
  run= allocation(强制地址或存储空间名称)同>allocation:定义输出段将会在哪里运行。
注:CMD文件中只出现一个关键字load或run时,表示两者的地址时表示两者的地址时重合的。
  PAGE = n,段位于那个存储页面空间。
例如:
/****************************************************************************/
/******** Specify the memory configuration **********************************/
/****************************************************************************/
MEMORY
{
PAGE 0: VECS: origin = 00000h, length = 00040h
LOW: origin = 00040h, length = 03FC0h
SARAM: origin = 04000h, length = 00800h
B0: origin = 0FF00h, length = 00100h
PAGE 1: B0: origin = 00200h, length = 00100h
B1: origin = 00300h, length = 00100h
B2: origin = 00060h, length = 00020h
SARAM: origin = 08000h, length = 00800h
}
/*--------------------------------------------------------------------------*/
/* SECTIONS ALLOCATION */
/*--------------------------------------------------------------------------*/
SECTIONS
{
.text :  > LOW PAGE 0
.cinit :  > LOW PAGE 0
.switch :  > LOW PAGE 0
.const : > SARAM PAGE 1
.data : > SARAM PAGE 1
.bss :  > SARAM PAGE 1
.stack :  > SARAM PAGE 1
.sysmem :  > SARAM PAGE 1
}
再例如:
//.cmd文件
ex411.obj          //输入文件
-o hello.out        //链接器选项
-m hello.map    //链接器选项
-stack 100        //链接器选项   
-l rts2xx.lib
MEMORY
{
  PAGE 0: VECT:origin=0x8000,length 0x040
  PAGE 0: PROG:origin=0x8040,length 0x6000
  PAGE 1: DATA:origin=0x8000,length 0x400
}
SECTIONS
{
.vextors >VECT PAGE 0
.text    >PROG PAGE 0
.bss    >DATA PAGE 1
.const  >DATA PAGE 1
}
存储模型:c程序的代码和数据如何定位
系统定义
.cinit    存放程序中的变量初值和常量
.const  存放程序中的字符常量、浮点常量和用const声明的常量
.switch 存放程序中switch语句的跳转地址表
.text    存放程序代码
.bss      为程序中的全局和静态变量保留存储空间
.far      为程序中用far声明的全局和静态变量保留空间
.stack    为程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果
.sysmem 用于程序中的malloc 、calloc 、和realoc 函数动态分配存储空间。
二.DSP CMD文件的编写
1.      COFF格式
1>    通用目标文件格式(Common Object File Format)是一种流行的二进制可执行文件格式,二进制可执行文件包括库文件(lib),目标文件(obj)最终可执行文件(out)。,现今PC机上的Windows95NT4.0以后的操作系统的二进制文件格式(PE)就是在COFF格式基础上的进一步扩充。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。