DSP程序編寫和和調(diào)試環(huán)境_第1頁
DSP程序編寫和和調(diào)試環(huán)境_第2頁
DSP程序編寫和和調(diào)試環(huán)境_第3頁
DSP程序編寫和和調(diào)試環(huán)境_第4頁
DSP程序編寫和和調(diào)試環(huán)境_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、方法以及程序的重定位等。方法以及程序的重定位等。 TMS320C54x軟件開發(fā)過程軟件開發(fā)過程 匯編語言程序的編輯、匯編和鏈接過程匯編語言程序的編輯、匯編和鏈接過程 COFF的一般概念的一般概念 源程序的匯編源程序的匯編鏈接器的使用鏈接器的使用。C54xC54x應(yīng)用軟件開發(fā)流程應(yīng)用軟件開發(fā)流程 C54xC54x應(yīng)用軟件的開發(fā)可在應(yīng)用軟件的開發(fā)可在TITI公司提供的開發(fā)環(huán)境中進(jìn)公司提供的開發(fā)環(huán)境中進(jìn)行行,用用戶可以用戶可以用C C/C+/C+語言或匯編語言編寫源文件,經(jīng)語言或匯編語言編寫源文件,經(jīng)C C編譯器編譯器、匯編器生成、匯編器生成COFFCOFF格式的目標(biāo)文件,再用鏈接器進(jìn)行鏈接,格式的

2、目標(biāo)文件,再用鏈接器進(jìn)行鏈接,生成在生成在C54xC54x上可執(zhí)行的目標(biāo)代碼,然后利用調(diào)試工具對可上可執(zhí)行的目標(biāo)代碼,然后利用調(diào)試工具對可執(zhí)行的目標(biāo)代碼進(jìn)行仿真和調(diào)試。執(zhí)行的目標(biāo)代碼進(jìn)行仿真和調(diào)試。 當(dāng)調(diào)試完成后,通過當(dāng)調(diào)試完成后,通過HexHex代碼轉(zhuǎn)換工具,將調(diào)試后的可執(zhí)代碼轉(zhuǎn)換工具,將調(diào)試后的可執(zhí)行目標(biāo)代碼轉(zhuǎn)換成行目標(biāo)代碼轉(zhuǎn)換成EPROMEPROM編程器能接受的代碼,并將該代碼固編程器能接受的代碼,并將該代碼固化到化到EPROMEPROM中或加載到用戶的應(yīng)用系統(tǒng)中,以便中或加載到用戶的應(yīng)用系統(tǒng)中,以便DSPDSP目標(biāo)系統(tǒng)目標(biāo)系統(tǒng)脫離計算機(jī)單獨運行。脫離計算機(jī)單獨運行。 C54xC54x應(yīng)

3、用軟件開發(fā)流程應(yīng)用軟件開發(fā)流程 開發(fā)過程的目的是產(chǎn)生一個可以由開發(fā)過程的目的是產(chǎn)生一個可以由C54xC54x目標(biāo)系目標(biāo)系統(tǒng)執(zhí)行的模塊。統(tǒng)執(zhí)行的模塊。C C源文件源文件C C編譯器編譯器匯編匯編源文件源文件匯編器匯編器匯編匯編源文件源文件COFFCOFF目標(biāo)目標(biāo)文件文件鏈接器鏈接器可執(zhí)行的可執(zhí)行的COFFCOFF文件文件宏宏源文件源文件存檔存檔器器宏庫宏庫存檔器存檔器目標(biāo)目標(biāo)文件庫文件庫建庫工具建庫工具運行時運行時支持庫支持庫EPROMEPROM編程器編程器交叉引用交叉引用列表器列表器調(diào)試工具調(diào)試工具TMS320C54xTMS320C54x絕對地址絕對地址列表器列表器HEXHEX代碼代碼轉(zhuǎn)換工具

4、轉(zhuǎn)換工具C54xC54x的開發(fā)工具的開發(fā)工具 TITI公司提供的公司提供的DSPDSP開發(fā)環(huán)境和工具主要包括以下開發(fā)環(huán)境和工具主要包括以下三個部分:三個部分: 代碼生成工具代碼生成工具 代碼調(diào)試工具代碼調(diào)試工具 實時操作系統(tǒng)實時操作系統(tǒng)C54xC54x的開發(fā)工具的開發(fā)工具(1)(1)代碼生成工具:代碼生成工具: C C編譯器編譯器:用來將用來將C/C+C/C+語言源程序自動編譯為語言源程序自動編譯為C54xC54x的匯編語言源程序。的匯編語言源程序。 匯編器匯編器:用來將匯編語言源文件匯編成機(jī)器語用來將匯編語言源文件匯編成機(jī)器語言言COFFCOFF目標(biāo)文件。目標(biāo)文件。 鏈接器鏈接器:將匯編生成

5、的、可重新定位的將匯編生成的、可重新定位的COFFCOFF目目標(biāo)模塊組合成一個可執(zhí)行的標(biāo)模塊組合成一個可執(zhí)行的COFFCOFF目標(biāo)模塊。目標(biāo)模塊。 文檔管理器文檔管理器:允許用戶將一組文件(源文件或允許用戶將一組文件(源文件或目標(biāo)文件)集中為一個文檔文件庫。目標(biāo)文件)集中為一個文檔文件庫。 C54xC54x的開發(fā)工具的開發(fā)工具 助記符指令助記符指令代數(shù)式指令翻譯器代數(shù)式指令翻譯器:用來將包含用來將包含助記符指令的匯編語言源文件轉(zhuǎn)換成包含代數(shù)式指助記符指令的匯編語言源文件轉(zhuǎn)換成包含代數(shù)式指令的匯編語言源文件。令的匯編語言源文件。 建庫實用程序建庫實用程序:用來建立用戶自己使用的、并用來建立用戶自

6、己使用的、并用用C/C+C/C+語言編寫的支持運行的庫函數(shù)。語言編寫的支持運行的庫函數(shù)。 十六進(jìn)制轉(zhuǎn)換程序十六進(jìn)制轉(zhuǎn)換程序:可以很方便地將可以很方便地將COFFCOFF目標(biāo)目標(biāo)文件轉(zhuǎn)換成文件轉(zhuǎn)換成TITI、IntelIntel、MotorolaMotorola等公司的目標(biāo)文件等公司的目標(biāo)文件格式。格式。 (1)(1)代碼生成工具:代碼生成工具:C54xC54x的開發(fā)工具的開發(fā)工具(2)(2)代碼調(diào)試工具:代碼調(diào)試工具: C/C/匯編語言源碼調(diào)試器:匯編語言源碼調(diào)試器:與軟件仿真器、評與軟件仿真器、評價模塊、軟件開發(fā)系統(tǒng)、軟件仿真器等配合使用。價模塊、軟件開發(fā)系統(tǒng)、軟件仿真器等配合使用。 軟件仿

7、真器:軟件仿真器:是一種模擬是一種模擬DSPDSP芯片各種功能并芯片各種功能并在非實時條件下進(jìn)行軟件調(diào)試的調(diào)試工具,它不需在非實時條件下進(jìn)行軟件調(diào)試的調(diào)試工具,它不需目標(biāo)硬件支持,只需在計算機(jī)上運行。目標(biāo)硬件支持,只需在計算機(jī)上運行。 初學(xué)者工具初學(xué)者工具DSKDSK:是是TITI公司提供給初學(xué)者進(jìn)行公司提供給初學(xué)者進(jìn)行DSPDSP編程練習(xí)的一套廉價的實時軟件調(diào)試工具。編程練習(xí)的一套廉價的實時軟件調(diào)試工具。 C54xC54x的開發(fā)工具的開發(fā)工具(2)(2)代碼調(diào)試工具:代碼調(diào)試工具: 軟件開發(fā)系統(tǒng)軟件開發(fā)系統(tǒng)SWDSSWDS:是一塊是一塊PCPC插卡,可提供插卡,可提供低成本的評價和實時軟件開

8、發(fā),還可用來進(jìn)行軟件低成本的評價和實時軟件開發(fā),還可用來進(jìn)行軟件調(diào)試,程序可在調(diào)試,程序可在DSPDSP芯片上實時運行。芯片上實時運行。 可擴(kuò)展的開發(fā)系統(tǒng)仿真器可擴(kuò)展的開發(fā)系統(tǒng)仿真器( (XDS510)XDS510):可用來可用來進(jìn)行系統(tǒng)級的集成調(diào)試,是進(jìn)行進(jìn)行系統(tǒng)級的集成調(diào)試,是進(jìn)行DSPDSP芯片軟硬件開發(fā)芯片軟硬件開發(fā)的最佳工具。的最佳工具。 評價模塊評價模塊EVMEVM板:板:是一種低成本的開發(fā)板,可是一種低成本的開發(fā)板,可進(jìn)行進(jìn)行DSPDSP芯片評價、性能評估和有限的系統(tǒng)調(diào)試。芯片評價、性能評估和有限的系統(tǒng)調(diào)試。 .asm源文件源文件.obj目標(biāo)文件目標(biāo)文件.out輸出文件輸出文件.

9、 cmd鏈接命鏈接命令文件令文件. lst列表文件列表文件. map存儲器存儲器映像文件映像文件- - o- - m- - l常用的匯編命令:常用的匯編命令: asm500 %1 s 1 x 常用的匯編器命令:常用的匯編器命令: lnk500 %1.cmd lnk500:lnk500: %1.cmd:%1.cmd: 鏈接命令文件名,該文件須鏈接命令文件名,該文件須指明指明目標(biāo)文件、目標(biāo)文件、輸入文件、輸出文件、輸入文件、輸出文件、鏈接選項和存儲器配置要求等。鏈接選項和存儲器配置要求等。 常用的匯編器命令:常用的匯編器命令: lnk500 %1.cmd lnk500:lnk500: %1.cmd

10、:%1.cmd: 鏈接命令文件名,該文件須鏈接命令文件名,該文件須指明指明目標(biāo)文件、目標(biāo)文件、輸入文件、輸出文件、輸入文件、輸出文件、鏈接選項和存儲器配置要求等。鏈接選項和存儲器配置要求等。 目標(biāo)文件目標(biāo)文件目標(biāo)存儲器目標(biāo)存儲器.bss.data.textRAME2PROMROM作用:偽指令也稱匯編偽指令,僅僅在匯編的過程中起作用,它們?yōu)閰R編程序(asm)和鏈接程序(link)提供控制和管理信息,但并不產(chǎn)生代碼。目的:增加程序編寫的靈活性,增強(qiáng)匯編語言的功能,提高匯編系統(tǒng)的性能。 定義段的偽指令(6條).bss:未初始化變量段,用于為未初始化的變量在.bss段內(nèi) 保留空間.text:程序代碼段

11、,通常用于包含可執(zhí)行程序代碼。.data:初始化數(shù)據(jù)段,用于包含已初始化的數(shù)據(jù),如表格數(shù)據(jù)等。.sect:自定義初始化段,可為程序或數(shù)據(jù)??芍囟ㄎ弧?usect:自定義未初始化段,在未初始化命名段內(nèi)保留空間。.asect: 建立具有決對地址的初始化段。不建議使用。 初始化常數(shù)的偽指令.byte:把1個或多個8位數(shù)值放入當(dāng)前段連續(xù)的字中,后面跟參數(shù),由“,”分開;.word和.int:把1個或多個16位數(shù)值存儲在當(dāng)前段連續(xù)的字中;.long:把1個或多個32位數(shù)值存儲在當(dāng)前段連續(xù)的2個字中;.string:將1個或多個字符串中的8位字符存放在當(dāng)前段中,一次存儲兩個字符,為空時放0(NULL);

12、主要應(yīng)用于初始化數(shù)據(jù)存儲器,而不需要指令賦值。引用其它文件的偽指令.copy和.include:告訴匯編器開始從其他文件中讀取源說明,讀完之后再恢復(fù)從當(dāng)前文件讀取源語句,.include包含的引用文件在LIST文件中不出現(xiàn)(不同于.copy);.def:指示在當(dāng)前模塊中定義且可以被其他模塊使用的符號;.ref:識別在當(dāng)前模塊中使用但在其它模塊定義的符號;.global:聲明外部符號,該符號在鏈接時可以被其它模塊使用;對于已定義的符號起.def的作用,對于未定義的符號起.ref作用。條件匯編偽指令.if/.elseif/.else/.endif: 指示匯編器根據(jù)表達(dá)式結(jié)果的真或假來匯編代碼的某些

13、段;.loop/.break/.endloop: 根據(jù)表達(dá)式的值來重復(fù)地匯編代碼塊;匯編時的符號偽指令.set和.equ:把常量值賦給符號;.asg:把字符串賦給替代符號(在匯編時遇到該符號時,匯編器會把常量值或字符串嵌入到匯編結(jié)果中);.end:指示匯編器中止匯編; 例子: FP .set #20h; FP .equ #20h; ADD FP; .asg ar0, FP; .asg *+, INC; mar INC, FP 頭文件及命令文件1個完整的DSP匯編語言文件一般要包含3種基本文件:(1)用于定義外設(shè)控制寄存器的映射地址、用戶定義的端口寄存器地址和相關(guān)常量的頭文件,如F2407REG

14、S.H,用.include引用;(2)實現(xiàn)要DSP完成的匯編語言工程文件,擴(kuò)展名為.asm;(3)用于文件鏈接的命令文件,擴(kuò)展名為.cmd,該文件實現(xiàn)對程序存儲空間和數(shù)據(jù)存儲空間的分配。頭文件;C2xx Core Registers;IMR.set0004h; Int MaskIFR.set0006h; Int FlagWSGR.set0FFFFh ; Wait State Control (IO space mapped);Digital I/O;PADATDIR.set07098h ; I/O port A Data & DirectionPBDATDIR.set0709Ah ; I/O

15、port B Data & DirectionPCDATDIR.set0709Ch ; I/O port C Data & DirectionPDDATDIR.set0709Eh;I/O port D Data & Direction reg.PEDATDIR.set07095h ; I/O port D Data & DirectionPFDATDIR.set07096h ; I/O port D Data & Direction;-; Constant defines;-B0_SADDR.set00200h;Block B0 start addressB0_EADDR.set002FFh;

16、Block B0 end addressB1_SADDR.set00300h;Block B1 start addressB1_EADDR.set003FFh;Block B1 end addressB2_SADDR.set00060h;Block B2 start addressB2_EADDR.set0007Fh;Block B2 end address;External Data Space Registers;EXTDATA.set8000h;-; M A C R O - Definitions;-SBIT0.macroDMA,MASK; Clear bit MacroLACCDMAA

17、ND#(0FFFFh-MASK)SACLDMA.endmSBIT1.macroDMA,MASK; Set bit MacroLACCDMAOR#MASKSACLDMA.endmKICK_DOG.macro;Watchdog reset macroLDP#WD_KEY7SPLK#05555h,WD_KEYSPLK#0AAAAh,WD_KEY.endm匯編代碼(工程文件)的格式 由匯編語言編寫的程序采用ASCII碼文件存儲,每一行代碼都包括標(biāo)號、指令、操作數(shù)和注釋; 標(biāo)號:指令 操作數(shù) ;注釋 其中,標(biāo)號用來定義一行代碼或變量,它代表一條指令或數(shù)據(jù)的存儲地址,標(biāo)號后面的冒號是可選的。標(biāo)號必須滿足的

18、條件:標(biāo)號的第一個字母必須是字母或下劃線后跟一個字母;標(biāo)號的第一個字母必須寫在文件的第一列;標(biāo)號最多可包含32個字母。 指令包括偽指令和匯編語言指令,偽指令一般用來在匯編過程中定義數(shù)據(jù)結(jié)構(gòu)或控制匯編的流程,偽指令以原點開頭(.);匯編語言命令是有效的CPU指令。 操作數(shù)由常數(shù)、符號和表達(dá)式構(gòu)成,操作數(shù)之間必須用逗號分開。 注釋用于對代碼進(jìn)行說明,一般應(yīng)遵循:使用分號(;)開始時,注釋可在任一列開始;使用星號(*)開始時,注釋必須從文件的第一列開始;* *axis transformationconstants*SQRT3inv.set093Dh;1/SQRT(3) 4.12 formatSQR

19、T32.set0DDBh ;SQRT(3)/2 4.12 formatADR_start_stack .set079h.bssKi_isd,22ext_control:ldp#ctrl_nlarar1,#Kp_isq命令文件 實現(xiàn)對程序空間和數(shù)據(jù)空間的分配,常用到2個偽指令:MEMORY命令:描述系統(tǒng)實際的硬件資源SECTIONS命令:描述“段”如何定位MEMORY語法:MEMORY PAGE0: name0: origin=cons. , length=cons. ; PAGE1: name1: origin=cons. , length=cons. ;PAGE 標(biāo)識存儲空間origin 規(guī)

20、定存儲器起始地址name 命名存儲器范圍length 規(guī)定存儲器長度/*-*/* Memory Specifications */*-*/MEMORYPAGE 0: VECS: o=0000h, l=0040h /* reset&int vectors */PROG:o=0040h, l=07fc0h /* 32K prog space*/B0: o=0FF00h, l=0100h /* when CNF=1 */PAGE 1: MMRS:o=0000h, l=005Fh/* MMRS */B2:o=0060h, l=0020h/* DARAM B2 */B0B1: o=0200h, l=02

21、00h/* DARAM B0+B1 */SECTIONS 語法:SECTIONS .段名n 存儲器名x 存儲器空間(頁p)SECTIONS/* Program sections */vectors: VECSPAGE 0 /* Res/int vectors */.text: PROGPAGE 0 /* Code */.data: PROGPAGE 0 /* Init tables */* Variable sections */.mmrs: MMRSPAGE 1 /* Memory Mapped Regs */.bss block(0 x80) B0B1PAGE 1 /* .bss variables */r

溫馨提示

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

評論

0/150

提交評論