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文件:

相關文章
相關標籤/搜索