有關ccs的project中cmd文件詳解詳細說明_第1頁
有關ccs的project中cmd文件詳解詳細說明_第2頁
有關ccs的project中cmd文件詳解詳細說明_第3頁
有關ccs的project中cmd文件詳解詳細說明_第4頁
有關ccs的project中cmd文件詳解詳細說明_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、cmdC2000 系 CMD 文件的配置理解近來群里問 CMD 問題的朋友較多,工程上因為 CMD 配置較差引起重新學了下 CMD 的理論寫了些心得與網友共享,還請批評指教。確實不少,CMD 的專業(yè)名稱叫器配置文件,是存放器的配置信息的,簡稱為命令文件,其中比較關鍵的就是 MEMORY 和SECTIONS 兩個偽指令的使用,常常令人困惑,系統(tǒng)出現也經常與它們的不當使用有關,我將重點講解。CCS 是從 DOS 系統(tǒng)下DSP繼承的開發(fā)環(huán)境。CCS令文件是 DOS 命令文件經過很長時間的引申發(fā)展了,已經變得非常了簡潔(不知道TI 文檔有沒有詳細 CMD 配置說明)。我學 CMD 是從 DOS 里的東

2、西開始的,所以也從DOS 環(huán)境下的 CMD 說起:1 命令文件的組成命令文件的開頭部分是要的各個子目標文件的名字,這樣器就可以根據子目標文件名,將相應的目標文件成一個文件;接下來就是器的操作指令,這些指令用來配置器,接下來就是 MEMORY 和SECTIONS 兩個偽指令的相關語句,必須大寫。MEMORY,用來配置目標結合下面的典型 DOS 環(huán)境器,SECTIONS 用來指定段的存放位置。令文件 link.cmd 來做一下說明:file.obj/子目標文件名 1file2.obj/子目標文件名 2file3.obj/子目標文件名 3- o prog.out/連接器操作指令,用來指定輸出文件-

3、m prog.m/用來指定 MAP 文件MEMORY 略 SECTIONS 略 otherlink.cmd本命令文件 link.cmd 要調用的 otherlink.cmd 等其則文件的名字要放到本命令文件最后一行,令文件,因為放開頭的話,器是不會從被調用的其令文件中返回到本命令文件。2 MEMORY 偽指令MEMORY 用來建立目標器的模型,SECTIONS 指令就可以根據這個模型來安排各個段的位置,MEMORY 指令可以定義目標系統(tǒng)的各種類型的器,及容量。MEMORY 的語法如下:MEMORYPAGE 0 : name1(attr) : origin = constant,length =

4、 constantname1n(attr) : origin = constant,length = constantPAGE 1 : name2(attr) : origin = constant,length = constantname2n(attr) : origin = constant,length = constantPAGE n : namen(attr) : origin = constant,length = constantnamenn(attr) : origin = constant,length = constantPAGE對獨立的空間進行標記,頁號 n 的最大值為

5、 255,實際應用中一般分為兩頁,PAGE 0 程序器和 PAGE 1 數據器。name區(qū)間的名字,不超過 8 個字符,不同的 PAGE 上可以出現相同的名字(最好不用,免的搞混),一個 PAGE 內不許有相同的 name。attr 的屬性標識,為 R 表示可讀;W 可寫 X 表示區(qū)間可以裝入可執(zhí)行代碼;I 表示器可都選以進行初始話,什么屬性代碼也不寫,表示擇這種寫法。區(qū)間具有上述的四種屬性,基本上origin:略。length:略。下面是我經常用的 2407 的簡單寫法大家參考,程序從 0 x060 是要避開加密位,不從 0 x0044開始更可靠一點,此例中的同名的頁可以只寫第一個,其后省略

6、,但寫上至少安全一點:MEMORYPAGE 0: VECS: origin = 0 x0000,length 0 x40PAGE 0: PROG: origin = 0 x0060,length 0 x6000PAGE 1: B0: origin = 0 x200,length 0 x100PAGE 1: B1: origin = 0 x300,length 0 x100PAGE 1: DATA: origin = 0 x0860,length 0 x07803 SECTIONS 偽指令SECTIONS 指令的語法如下:SECTIONS.text:.data:.bss:所有.text 輸入所有

7、.data 輸入所有.bss 輸入load加載地址 run =運行地址load加載地址 load加載地址load加載地址run =運行地址 run =運行地址run =運行地址.other: 所有.other 輸入SECTIONS 必須用大寫字母,其后的大括號里是輸出段的說明性語句,每一個輸出段的說明都是從開始,之后是如何對輸入段進行組織和給段分配器的參數說明:以.text 段的屬性語句為例,“所有.text 輸入”這段內容用來說明連接器輸出段的.text段由哪些子目標文件的段組成,舉例如下SECTIONS.text:file1.obj(.text) file2(.text) file3(.t

8、ext,cinit)略指明輸出段.text 要file1.obj 的.text 和 file2 的.text 還有 file3 的.text 和.cinit。在 CCS 的SECTIONS 里通常只寫一個中間沒有內容的“ ”就表示所有的目標文件的相應段接下來說明“l(fā)oad加載地址 run =運行地址”兩個地址:一個是加載地址,一個是運行地址。通常情況下兩個地址是相同的,可以認為輸出段只有一個地址,這時就可以不加“run =運行地址”這條語句了;但有時需要將兩個地址分開,比如將程序加載到 FLASH,然后放到 RAM 中高速運行,這就用到了運行地址和加載地址的分別配置了,如下例所示:.const

9、 :略 load = PROGrun = 0 x0800器為每個輸出段都在目標器里分配常量加載在程序區(qū),配置為在 RAM 里調用?!發(fā)oad加載地址”的幾種寫法需明一下,首先“l(fā)oad”關鍵字可以省略,“”可以寫成“”, “加載地址”可以是:地址值、區(qū)間的名字、PAGE所以大家見到“.text: 0 x0080”這樣的語句可千萬不要奇怪?!皉un =運行地址”中的“ = ”可以用“”其它的簡化寫法就沒有了。大家不要亂用。等,4 CCS 中的案例在 CCS 中令文件好像簡化了不少,少了很多東西,語句也精簡了好多,首先不用指定輸入器的目標文件,CCS 會自動默認處理,其次器的配置命令也和DOS 的

10、環(huán)境不同,需要了解的請找TI 文檔吧!下面是劉和平例子,大家來看看是不是可以很精確的理解了呢!不懂的大家繼續(xù)在本帖-stack 40!/*/*/*/空間 F2407*/命令文件*/MEMORYPAGE 0 :VECS : origin =0h , length = 40h/*程序復位 */模塊中斷向量PVECS : origin =40h , length = 70h/*PROG : origin =0b0h , length = 7F50h*/* 在片 FLASH */PAGE 1 :MMRS : origin =0h , length =05Fh/* MMRS*/B2 : origin =

11、 0060h , length = B0 : origin = 0200h , length =B1 : origin = 0300h , length =020h100h100h/* DARAM B2/* DARAM B0/* DARAM B1塊塊塊*/*/*/SARAM: origin = 0800h , length =0800h/* SARAM 塊*/EXT : origin = 8000h , length =8000h/*外部器*/*/* SECTIONS ALLOCATION*/*/SECTIONS.reset: VECSPAGE 0/*復位中斷向量表*/.vectors : VECSPAGE 0 /

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論