




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、12/13目錄 T o ”1-3”h z u YPIN l”_Toc341217 1。C54系列基本項目匯編語言及匯編工具介紹 PGEEF_oc3469275 1 HPERLINK ”_4612176” 。1 C54系列基本項目匯編語言 PAERE _Tc3619216 PEN l _Tc319217 1。1.1 DSP程序設計語言簡介 PGEREF_Toc34619217 h 1 HYPERLINK l ”_To36921 1。2C5匯編語言程序的編輯、匯編和鏈接PAERE _Toc419217 h 1 YERLINK l _T34619279” 1。1.3 C54匯編源程序的完整結構PAG
2、RE o3469219 h HYPERLINK l ”_Toc319180” 1。54系列基本項目匯編工具 PAERF _oc3461180 h HPERLN _Toc34692181 。2. C的簡介 PAGERF _Toc34692181 h HPERLINK l ”_Tc462182”2DSP的基本項目操作 PERE T3982h 4 YELNK ”_Tc346191 2.1 源文件的編寫與匯編PAGREF o346192183h 5 HYPERLINK l _To34921” 2.1源文件的編寫 PAGERF oc3461218 h5HYPRLINK l _oc346192185” 2
3、。2源文件復位向量文件PAGEEF_Toc3419215 h 5 RLINK l ”Tc318” 。1。3 文件的匯編 AGRE To34691h 6 PERK _Toc34619187 2。2文件的鏈接PGREF To3612187 7 HYLK ”_Tc3461218.21鏈接命令文件 AGEEF _oc349188 h7HYPERLNK ”_Toc6192189 2.。2鏈接輸出映像文件 PAGER _To34619218 h YPRLIK l Toc3419210 3.課程設計總結 PGEREF_Toc419219h 1HPRLIN Toc4619291 4、參考文獻 PAREF _T
4、46129 h 1HYPERLN ”oc3419292” 、附錄PAEREF _To3419192 121C54系列基本項目匯編語言及匯編工具介紹DP基本項目文件的編寫是DSP系統開發設計中必不可少的一部分,如果說硬件設計是系統基礎的話,那么基本項目文件的設計就是系統的靈魂.DS基本項目文件設計主要包括源文件的編輯、匯編文件的生成,鏈接命令的文件的編寫、鏈接后輸出文件的生成及程序的最終調試。11 C4系列基本項目匯編語言1。1。1 SP程序設計語言簡介DP 的軟件開發一般有三種方法:直接編寫DSP匯編匯編語言源文件;編寫語言程序;混合編寫既有C語言代碼又有匯編語言代碼的的程序。本項目文件的設計
5、主要用第一種設計方法,即直接用DSP匯編語言編寫源程序文件。DSP匯編語言源程序是有代碼和數據組成的,要運行的程序代碼和數據必須放到可由CPU尋址的存儲空間中去,且以代碼塊和數據塊的形式存放,也就是程序的定位,SP程序的定位是在鏈接時借助命令鏈接文件。cmd來實現的。1. C54X匯編語言程序的編輯、匯編和鏈接匯編語言的源程序可以在任何一種文本編輯器中進行,如WOR、EDI、TC等。當匯編語言源程序編寫完成后,還必須經過匯編和鏈接后才能運行.如圖-1給出了匯編語言程序的編輯、匯編和鏈接過程,具體如下:1、編輯利用各種文本編輯器,如OR、EDIT和TC等,可編寫匯編語言源程序.、匯編當匯編語言源
6、程序編寫好以后,可利用C54的匯編器AM500,對一個或多個源程序分別進行匯編,并生成st(列表)文件和bj(目標)文件。、鏈接所謂鏈接,就是利用54的鏈接器L500,根據鏈接器命令文件(c)對已經匯編過的一個或多個目標文件(。bj)進行鏈接,生成存儲器映射文件(。map)和輸出文件(。ut)。4、調試對輸出文件(.ou)進行調試.asm.asm源文件文本編輯器匯編器鏈接器調試程序.obj目標文件.out輸出文件.lst列表文件.map存儲器映射文件16進制轉換程序Hex 500-1-m-o圖11 匯編語言程序的編輯、匯編和鏈接過程示意圖11.3 C54匯編源程序的完整結構在匯編源程序中,以a
7、sm為源程序的擴展名,用“段”來組織程序間的結構。程序一般有數據段、堆棧段和代碼段組成。段整體上分為已初始化段和未初始化段,已初始化段有.text、。dta、.sct,未初始化段有.bs、。sect.各段作用如下所示:.te用于設置可執行代碼段,是已初始化段;。dta用于存放有初值的數據塊,是已初始化段;.sct匯編器偽指令建立的自定義段,常用于定義中斷向量表,是已初始化段;.bss(保留空間段)用于為未初始化變量保留一塊存儲空間,是未初始化段;usec用于為堆棧保留一塊存儲空間,是匯編命令建立的自定義段,是未初始化段;外部符號是指在一個模塊中定義、又可以在另一個模塊中應用的的符號??梢杂脗沃?/p>
8、令.de、.rf或.glbal來定義某些符號為外部符號。def指令在當前模塊中定義,又可以在其他模塊中應用的符號。ef指令在當前模塊中使用在別的模塊中定義的符號.globl指令可以是上面的任一種情況.程序的基本結構有四種:順序結構、分支結構、循環結構和子程序結構。COF目標文件有以下兩種基本類型的段。()初始化段初始化段中包含有數據或程序代碼。它包括.txt段是已初始化段;。data段是已初始化段;ct匯編器偽指令建立的自定義段也是已初始化段.(2)未初始化段在存儲空間中,它為未初始化數據段保留空間,包括:bss是未初始化段;usect匯編命令建立的自定義段也是未初始化段有幾個匯編器偽指令可以
9、用來將數據和代碼的各個部分與相應的段落聯系。匯編的過程中,根據匯編命令用適當的段將各個部分程序代碼和數據聯系在一起,構成目標文件。 54系列基本項目匯編工具CCS 00 (CodCmposr tdio)是公司推出的用于開發DS芯片的集成開發環境,它采用indos風格界面,集編輯、編譯、鏈接、軟件仿真、硬件調試以及實時跟蹤于一體,極大的方便了DSP開發的與設計,是目前使用最廣泛的DSP開發環境之一。.2.1 的簡介C(Coe omposeSto)是一種針對TM30系列DS的集成開發環境.CC有兩種工作模式,即軟件仿真器和硬件在線編程。軟件仿真器模式可以脫離DSP芯片,在PC機上模擬DSP的指令集
10、和工作機制,主要用于前期算法實現和調試。硬件在線編程可以實時運行在DSP芯片上,與硬件開發板相結合進行在線編程和調試應用程序.I公司共有CCS1。10、CS1.20、CS2.、和CCS210等不同時期的版本,針對不同系列的SP芯片分為C2000、300、000、和C000等不同的型號.各種不同版本和型號之間的差異不是很大。通常一種型號的S只適用于一種系列的DP芯片。例如本設計中用的是CCC000它使用于C00系列的DS芯片包括C4X和C55(本處為TMS32V54X)。用戶只需在CCS配置程序中設定SP的類型和開發平臺類型即可。C的組成C的主要組件下圖-2所示:TMS320C54X集成代碼產生
11、工具:它用來對C語言、匯編語言或混合語言編程的DSP源程序進行編譯匯編,并鏈接成可執行的P 程序。主要包括匯編器、鏈接器、C/C+編譯器和建庫工具等.CS集成開發環境:此環境集編譯、匯編、鏈接、軟件仿真、硬件調試和實時跟蹤等功能于一體,包括編輯工具、工程管理工具和調試工具等.PI實時內核插件及其應用程序接口A:他們主要為實時信號處理應用而設計,包括DSPBIOS配置工具、實時分析工具等。實時數據交換的RX插件及其相關應用程序接口AP:他們對目標系統實時監控,實現DS程序與其他應用程序的數據交換。有TI公司以外的第三方提供的應用模塊插件。主機主機Code Composer Studio配置工具c
12、fg.cmdcfg.s54cfg.h54.cbd配置數據庫Code Composer編輯器源文件.c.h.asmDSP/BIOS APICode Composer工程 代碼產生工具編譯器匯編器鏈接器OLE應用使用RTDX插件RTDX插件DSP/BIOS插件RTDX插件Code Composer調試工具主機仿真支持DSPDSP應用系統DSP/BIOS目標系統硬件可執行代碼JTAGRTDX目標系統圖12 CC的主要組件2 。DP的基本項目操作一個工程項目包括源文件、庫文件、鏈接命令文件和頭文件等,它們按照目錄樹的結構組織在工程項目中,工程項目構建(編譯連接)后生產可執行文件。一個典型的工程項目記錄
13、如下信息:源程序文件名和目標庫;編譯器、匯編器和鏈接器選項;有關頭文件。1 源文件的編寫與匯編2.1源文件的編寫*a1。s z=8y-*。megsSTACK.secSTC,0H ;為堆棧分配空間。bsx, ;為變量分配4個字未初始化的空間.ssy,1bssw,。bssz,eftr.aatbe:wor,9 ;變量初始化.txtstrt:#0, SWS ;插入個等待狀態STMACK+0H, ;設置堆棧指針S#x, R1;R1指向xRT#2;移動個數據指針VPle,AR1+;從程序存儲器到數據存儲器LD ,P ;將x地址裝入DLD, DA, 3;A=x*8AD, A;A=x+yUB, A;A-STL
14、A, z;結果給zen: B end。end程序中用。ect用于為名為TACK的堆棧保留一塊10H個字大小的存儲空間,是匯編命令建立的自定義段為未初始化段;用.bs(保留空間段)為未初始化變量x、w、z 各保留一個字的存儲空間,是未初始化段;用。def指令在當前模塊a1.am中定義strt外部符號,使其可以在模塊vcorsasm中應用;數據段data中定義已初始化表tle存儲三個字的空間6,7,9。代碼段text為算法的DSP實現過程.2.源文件復位向量文件*1asm 源文件復位向量文件*.tile”ctos。asmrfstart.ect”。ecrsBtrndVectors.am文件引用了1。
15、am中的標號“tart,這是在兩個文件之間通過.ef和.ef命令來實現的。在1asm中.ref strt是用來定義語句標號star的匯編命令,srt是源程序。text段開始的標號,供其他文件引用。用ect匯編器偽指令建立自定義段“vecto”,用于定義向量表,是已初始化段;B stt為分支轉移指令B的應用,當程序執行到此指令時,跳轉到str處,實現復位功能。分別對兩個源文件a1。am和vector.as進行匯編,生產目標文件a.sm和etos.as.obj。編寫鏈接命令文件a1。am,此命令文件鏈接1。asm和vor.as兩個目標文件(輸入文件),并生成一個映像文件a1.ma及一個可執行的輸出
16、文件.out,標號“ta”是程序的入口。假設目標存儲器的配置如下:程序存儲器 EPROM E000hFFFh(片外)數據存儲器 PRAM 0h-07Fh(片內) DAR 008017h(片內)2。1.3 文件的匯編在編程段沒有絕對定位,每個段都認為是從0地址開始的一塊連續的存儲空間,因此編程時只需用段偽指令來組織程序的代碼和數據,無需關心段的實際定位.但是在匯編時,匯編器根據匯編命令用適當的段將各部分程序代碼和數據連接在一起,構成目標文件.ob。匯編器靠五條命令(。bss、。uect、。e 、dta和。sect)識別匯編語言程序的各個部分.如果匯編語言程序中一個段命令也沒有,那么匯編器把程序中
17、的內容都匯編到。tex段。匯編器第一次遇到新段時,將該段的段程序計數器(SC)置為0,并將隨后程序代碼或數據順序編譯進該段中.匯編器遇到同名段時,將它們合并,然后將隨后程序代碼或數據順序編譯進該段中。當匯編器遇到。tx、.at和set 偽指令時,匯編器停止將隨后的程序代碼或數據順序編譯進當前段中,而是順序編譯進入遇到的段中。當匯編器遇到.bs和.ue偽指令時,匯編器并不結束當前段,而只是簡單的暫時脫離當前段,隨后的程序代碼或數據順序仍將順序編譯進當前段中。.bs和.usct偽指令可以出現在txt、。dta和.sect段中的任何位置,它們不會影響這些段的內容.匯編器為每個段都安排了一個單獨的段程
18、序計數器(SPC)。PC表示一個程序代碼或數據段內的當前地址。最初,匯編器將每個SC置。當代碼或數據被加到一個段內時,相應得SPC值就增加。如果繼續匯編進一個段,則匯編器記住前面的SPC值,并在該點繼續增加SPC值。鏈接器在鏈接時要對每個段進行重新定位。.2文件的鏈接22。1鏈接命令文件鏈接器命令文件含有鏈接時所需要的信息,當多次使用同樣的鏈接信息時,可以放便的調用。在命令文件中可使用兩個十分有用的偽指令MEMOR命令和SECO命令,用來指定實際應用中的存儲器結構和地址的映射。在命令行中不能使用這兩個偽指令.命令文件。cd 由三部分組成:輸入輸出定義、MMORY命令和SECTIS命令。輸入輸出
19、定義這部分包括輸入文件名(目標文件ob、庫文件lib和交叉索引文件.ma)、輸出文件。ou和鏈接器選項。此處輸入文件為1。b和ectos.obj,輸出文件為a1。out和a1map.對應上述匯編語言源文件和向量表文件的鏈接器命令文件a.c如下:a。cmd為:vectrs。oja1.obo a1.utma1。mapesarMEMORY PGE 0: EROG: ig =0 x100, len = 0 x7c ;第0頁程序空間開始地址01400,空間長度070 VECT: origin 0 xf80, len = 0 x8 ;第0頁中斷向量開始地址080,空間長度80 PAGE 1: USERG:
20、 rig = 0 x60, ln = 0 x BOSREG: oigi = xc, en = 0 x IDAT: origi = 0 x0, le = 0 x0 ;第頁數據空間開始地址8,空間長度x380 EDATA: oriin=0 x140, en=08000 ;第1頁擴展數據空間開始地址0 x1400,空間長度08000 EAT1: origin = 94, n = 0 x4c00 ;第1頁擴展數據空間開始地址094,空間長度00ETIONS 。vcors: VECT GE 0 ;中斷向量在第0頁 .sysres: BIOREGSPAGE 1 data: EPRG P text: ERO
21、 AE 0 ;程序代碼在第0頁 .ciit: POG PAGE0 ;初始化變量在第頁 。pint: EPRO PGE 0 ;初始化參數在第0頁 .ssinit: EROG AGE 。st: IDA PGE 1 .bs: IDTA PAG 1 ;非初始化變量在第頁 。far: AAGE1 ;長調函數在第頁此鏈接命令文件鏈接a1。obj和vcts。obj兩個目標文件(輸入文件),并生成一個映像文件a1。map以及一個可執行的輸出文件a1.b,標號“sat”是程序的入口.PGE 0為程序存儲空間,AGE1為數據存儲空間。在程序存儲空間P 0配置有PROM和VECS兩個空間,其中PRO空間的的起始地址
22、為140H,長度為7c00H,并將。text和data兩個段放在該空間中。VCES空間的起始地址為0FFH,長度為80H,并將復位向量段vctrs放在VCES空間。這樣TMSC復位后,首先進入F0,再從F80H復位向量處跳轉到主程序。在a1。cm文件中,有一條命令e stat,是軟件仿真器的入口地址命令,為了在軟件仿真時屏幕上從star語句標號處顯示程序清單,pc且也指向star.2。2.2鏈接輸出映像文件鏈接后生成一個可執行的輸出文件a1.ot和映像文件a。map如下所示:1.map文件*TMS30C4 COFF Liker Veron350 * ink Tue a 5 21:26:5 20
23、OUTPU : 1。uETRYINT SBO:tart” adess: 000403EMRY ONIURION name origin lngt used tris fil - - - - - -PE 0: EPROG 0000100 00007c00 00000 RIX VECT 000ff0 00080 000004 RWIX GE 1: USRRES 000006 0000001c 000 WIX BOSREGS 0000007 0000004 000000 WX IDATA 00000080 000003 00004 RIX EDATA 000040 0800 0000 RIX ETA
24、 0009400 0004c00 000000 RWX CTON ALOIN MAP tput atibuts/sctio ae orin ength inputsectns- - - - -.tos 0 0000f80 000004 0000ff80 000064 veor。b (.vectos)。sregs 1 0000c 000000 UNINITAZED.daa 0 000010 00000003 0000400 03 abc。obj (.data) 000103 000000 veor。ob (。dat).ex 0 0000103 000011 00103 0000 bc。oj (.
25、text) 0001414 00000 vectr.o (ext)。cii 0040 0000000 UNNIALZED.pini 000400 0000 UNIITIALIZED.ysinit 0 0000140 00000000 UNINIIALIZD.stack 1 000080 00000 UINIIALIZED.bs 1 00000080 0000004 UNNTIALIE 0000080 0000004 abcbj (.bss) 000004 0000000 vcr.o (.ss)。fa 00000 000000 UNNITIAIZDSTC 000060 000010 UNINTA
26、LIZED 00060 0000 bcob (STAC)GLLYO:SRTED ALPHETIALL Y Nme adress nm- -000000 .ss0001400 .da0000 .text000080 _bss_0000140 _data_000403 _ata_00004 _end_0044 _etex_000143 _txt_000 _lflags00140 data000084 end011 etxt0001403 trtLOL SMBLS: SORTEYSymo drs ddress nae- -000 _lfla00008 _bss_000080 。s0000084 _e
27、_00084 e00000 。data00000 _da00001403 edaa000103 strt001403 text00001403 _edaa_00140 _tet_0001414 te00114 _eet_1 ymbols上述可執行的輸出文件a1.out裝入目標系統后就可以運行了,系統復位后,c首先指向0F80H,這是復位向量地址,這個地址上有一條str命令,程序馬上跳語句標號,從程序起始地址0E000開始執行主程序。課程設計總結本次課程設計主要是在考察對S匯編語言的應用以及對該軟件的操作的熟練程度,對編譯過程中不同文件的產生及所表示的含義進行理解。從源文件-目標文件可執行目標文件存儲器中可執行的文件的全過程做了全面深入的了解。對采用匯編語言或高級語言編程是采用基于代碼段和數據段的概念有了更深的印象。不再是一條指令或一個個數據,不必為程序代碼制定目標地址,更有利于模塊化編程.在編寫源程序的過程中軟件編譯檢查程序的對錯,有的時候即使已經指出某行出錯了,檢查過語法還不能發現錯誤,符號輸入法切換也不能減少錯誤.找同學幫忙從程序最初開始一步一步分析,需找原因,設置斷點查看參量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 快遞運輸合同協議書格式范本
- 排球場地租賃合同書
- 建筑工地安全合同協議書
- 版事業單位租車合同樣本
- 信用卡額度提升合同
- 版事業單位合同聘用辦法
- 倉儲貨架租賃合同范本
- 蔬菜大棚發展新趨勢:合同農業展望
- 2025短期安保臨時雇傭合同
- 2025芒果水果批發合同
- 校園網站設計論文
- GB/T 17213.4-2015工業過程控制閥第4部分:檢驗和例行試驗
- 《課程與教學論》形考二答案
- 公積金提取單身聲明
- 磷酸鐵鋰生產配方及工藝
- 高處作業吊籃進場驗收表
- 電工電子技術及應用全套課件
- DB33T 1233-2021 基坑工程地下連續墻技術規程
- 《新農技推廣法解讀》ppt課件
- 車載式輪椅升降裝置的結構設計-畢業設計說明書
- 社區家庭病床護理記錄文本匯總
評論
0/150
提交評論