DM642学习:CMD、GEL文件

在创建ccs工程的时候,cmd文件和gel文件很是重要,如不能配置好会出现一些莫名其妙的问题。函数

1. CMD文件:spa

      不一样的DSP芯片内集成的存储器大小各异,但其配置方式是相似的。你们可经过查阅DSP芯片的数据手册,了解芯片内部存储空间大小。在实际的配置过程当中,可根据开发程序的实际代码,正确的划分程序和数据空间中各段的大小,使其空间配置达到最优ci

      CMD主要是用来分配rom和ram空间用的,它告诉连接程序怎样计算地址和分配空间.因此不一样的芯片就有不一样大小的rom和ram.放用户序的地程方也不尽相同.因此要根据芯片进行修改.分两部分.MEMORY和SECTIONS.开发

MEMORY    
{ cmd

  PAGE 0 ..........
  PAGE 1.........
}it

SECTIONS
{
  .vectors .................
  .reset .................
  ................
}变量

     MEMORY是用来指定芯片的rom和ram的大小和划分出几个区间.PAGE 0 对应rom,PAGE 1对应ram。PAGE里包含的区间名字与其后面的参数反映了该区间的起始地址和长度.配置

     SECTIONS:在程序里添加段名.XXXX(如.vectors.)用来指定该段名如下,另外一个段名以上的程序(属于PAGE0)或数据(属于PAGE1)放到“>”符号后的空间名字所在的地方。程序

MEMORY
{
call

 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
{

  .text   : { } > LOW PAGE 0            存放程序代码
  .cinit   : { } > LOW PAGE 0      存放程序中的变量初值和常量  
  .switch  : { } > LOW PAGE 0       存放程序中switch语句的跳转地址表   
  .const     : { } > SARAM PAGE 1       量存放程序中的字符常量、浮点常量和用const声明的常   
  .data       : { } > SARAM PAGE 1    
  .bss         : { } > SARAM PAGE 1   为程序中的全局和静态变量保留存储空间 
  .stack    : { } > SARAM PAGE 1   为程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果 
  .sysmem : { } > SARAM PAGE 1    用于程序中的malloc 、calloc 、和realoc 函数动态分配存储空间.text可执行代码 

}

2. GEL文件:

相关文章
相关标签/搜索