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

提交評論