專題三DSP的開發(fā)環(huán)境與工具v2016_第1頁
專題三DSP的開發(fā)環(huán)境與工具v2016_第2頁
專題三DSP的開發(fā)環(huán)境與工具v2016_第3頁
專題三DSP的開發(fā)環(huán)境與工具v2016_第4頁
專題三DSP的開發(fā)環(huán)境與工具v2016_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第三章第三章 DSP的開發(fā)的開發(fā)環(huán)境與工具環(huán)境與工具 教材教材 :3.1節(jié),節(jié),3.3節(jié),節(jié),3.4節(jié),節(jié),3.5節(jié)節(jié),3.6節(jié),節(jié),4.4.7小節(jié)小節(jié)DSP開發(fā)環(huán)境和工具的重要性開發(fā)環(huán)境和工具的重要性u如何提高開發(fā)速度,降低開發(fā)難度,是如何提高開發(fā)速度,降低開發(fā)難度,是所有開發(fā)者所共同關心的。所有開發(fā)者所共同關心的。uDSPDSP的硬軟件開發(fā)環(huán)境如何,開發(fā)工具的的硬軟件開發(fā)環(huán)境如何,開發(fā)工具的功能是否豐富,使用是否方便,其所得功能是否豐富,使用是否方便,其所得結(jié)果的效果怎樣,等等,已經(jīng)成為該結(jié)果的效果怎樣,等等,已經(jīng)成為該DSPDSP是否為用戶所接受、從而得到推廣使用是否為用戶所接受、從而

2、得到推廣使用得重要指標之一。得重要指標之一。DSP的開發(fā)環(huán)境和工具的開發(fā)環(huán)境和工具u集成開發(fā)環(huán)境集成開發(fā)環(huán)境CCS(編譯器,連接器,(編譯器,連接器,優(yōu)化優(yōu)化C編譯器,轉(zhuǎn)換工具等)編譯器,轉(zhuǎn)換工具等)uCMD內(nèi)存定位文件內(nèi)存定位文件uDSP/BIOSu實時操作系統(tǒng)實時操作系統(tǒng)u其它工具:其它工具:C6Run,C6Accel,C6Flo,XDC等工具等工具DSP開開發(fā)發(fā)流流程程圖圖每個每個DSP系列都提供代碼生成工具系列都提供代碼生成工具uC編譯器編譯器(C compiler):將將C源程序代碼編譯源程序代碼編譯成為成為320系列對應匯編語言源代碼。編譯系列對應匯編語言源代碼。編譯包中包括一個包

3、中包括一個分析器分析器、一個、一個優(yōu)化器優(yōu)化器(optimizer)和一個內(nèi)部列表公用程序和一個內(nèi)部列表公用程序(interlist utility)等)等。u匯編器匯編器(assembler):將匯編語言源文件轉(zhuǎn):將匯編語言源文件轉(zhuǎn)變?yōu)榛诠媚繕宋募袷剑ㄗ優(yōu)榛诠媚繕宋募袷剑–OFF)的)的機器語言目標文件。機器語言目標文件。每個每個DSP系列都提供代碼生成工具系列都提供代碼生成工具u連接器(連接器(linker):將目標文件連接起來:將目標文件連接起來產(chǎn)生一個可執(zhí)行模塊。它能調(diào)整并解決產(chǎn)生一個可執(zhí)行模塊。它能調(diào)整并解決外部符號參考。連接器的輸入是可重新外部符號參考。連接器的輸入是可

4、重新定位的定位的COFF目標文件和目標庫文件。目標文件和目標庫文件。3-3 3-3 段的定義段的定義(.9小節(jié))小節(jié))u為了有效利用為了有效利用DSP的內(nèi)部或外部存儲器,的內(nèi)部或外部存儲器,目標文件中的代碼和數(shù)據(jù)被存放在不同目標文件中的代碼和數(shù)據(jù)被存放在不同的段中。的段中。u這些數(shù)據(jù)段或代碼段在內(nèi)存中可以是分這些數(shù)據(jù)段或代碼段在內(nèi)存中可以是分開的,也可以是連續(xù)的。開的,也可以是連續(xù)的。u在生成的在生成的OUT文件中包括三個缺省段:文件中包括三個缺省段:u匯編器和連接器允許創(chuàng)建、命名和連接匯編器和連接器允許創(chuàng)建、命名和連接已經(jīng)命名的段已經(jīng)命名的段。告訴連接器可以使用的存儲器告訴連

5、接器可以使用的存儲器u存儲器指令(存儲器指令(memory directive) 定義定義目標系統(tǒng)的存儲器圖。用戶可以給部分目標系統(tǒng)的存儲器圖。用戶可以給部分存儲器命名,定義它的起始地址和長度。存儲器命名,定義它的起始地址和長度。u段指令(段指令(sections directive) 告訴連接告訴連接器如何將輸入段合并到輸出段中,及將器如何將輸入段合并到輸出段中,及將這些輸出段放在存儲器的什么地方。用這些輸出段放在存儲器的什么地方。用戶可以用連接器的戶可以用連接器的SECTIONS指令指定指令指定子段,如不特別指定,子段將和同基段子段,如不特別指定,子段將和同基段名的段合并在一起。名的段合并

6、在一起。在代碼中三個缺省段在代碼中三個缺省段u.text 包括可執(zhí)行代碼包括可執(zhí)行代碼u.data 包括已經(jīng)初始化了的數(shù)據(jù)包括已經(jīng)初始化了的數(shù)據(jù)u.bss 為未初始化變量保存空間為未初始化變量保存空間u還可以在匯編語言中自己定義的用于存還可以在匯編語言中自己定義的用于存放 代 碼 的 段 , 如放 代 碼 的 段 , 如 . s e c t ( 代代碼),碼), .usect 、 .buffer (數(shù)據(jù))等(數(shù)據(jù))等內(nèi)存定位內(nèi)存定位CMD控制文件例子控制文件例子MEMORYMEMORY PAGE 0: PROG: origin = 1800h, length = 800h PAGE 0: PR

7、OG: origin = 1800h, length = 800h PAGE 4: PROG: origin = 0200h, length = 100h PAGE 4: PROG: origin = 0200h, length = 100h PAGE 1: DATA: origin = 0c00h, length = 100h PAGE 1: DATA: origin = 0c00h, length = 100h PAGE 2: DATA: origin = 0d00h, length = 200h PAGE 2: DATA: origin = 0d00h, length = 200h PA

8、GE 3: DATA: origin = 0f00h, length = 100h PAGE 3: DATA: origin = 0f00h, length = 100h SECTIONSSECTIONS .text PROG PAGE 0 .text PROG PAGE 0 .vect PROG PAGE 4 .vect PROG PAGE 4 .bss DATA PAGE 1 .bss DATA PAGE 1 .data DATA PAGE 2 .data DATA PAGE 2 .buffer DATA PAGE 3 .buffer DATA PAGE 3 內(nèi)存定位內(nèi)存定位CMD控制文件

9、說明控制文件說明u其中,包含兩個部分:其中,包含兩個部分:MEMORY和和SECTIONS。在。在MEMORY中,主要說中,主要說明目標系統(tǒng)中哪些存儲器可以使用,它明目標系統(tǒng)中哪些存儲器可以使用,它們的起始地址是多少,大小如何。們的起始地址是多少,大小如何。u在在SECTIONS部分中,主要完成段的具部分中,主要完成段的具體地址的分配。例如,我們將體地址的分配。例如,我們將.text段存段存放在放在1800h開始的程序空間中,將開始的程序空間中,將.bss段段存放在存放在c00h開始的數(shù)據(jù)空間中,將開始的數(shù)據(jù)空間中,將.vect段存放在程序空間的段存放在程序空間的200h開始的地方。開始的地方

10、。內(nèi)存定位內(nèi)存定位CMD文件另一例子文件另一例子asmlnk.objasmlnk.objasmlnk1.objasmlnk1.obj-m asmlnk.map-m asmlnk.map-o asmlnk.out-o asmlnk.outMEMORYMEMORY PAGE 0: IPROG: origin = 0 x880, len = 0 x1f80 PAGE 0: IPROG: origin = 0 x880, len = 0 x1f80 VECT: origin = 0 x800, len = 0 x80 VECT: origin = 0 x800, len = 0 x80 PAGE 1:

11、 USERREGS: origin = 0 x60, len = 0 x1c PAGE 1: USERREGS: origin = 0 x60, len = 0 x1c BIOSREGS: origin = 0 x7c, len = 0 x4 BIOSREGS: origin = 0 x7c, len = 0 x4 IDATA: origin = 0 x80, len = 0 x780 IDATA: origin = 0 x80, len = 0 x780 定位定位CMD控制文件另一例子控制文件另一例子SECTIONSSECTIONS .vect: VECT PAGE 0 .vect: VEC

12、T PAGE 0 .sysregs: BIOSREGS PAGE 1 .sysregs: BIOSREGS PAGE 1 .gblinit: IPROG PAGE 0 .gblinit: IPROG PAGE 0 .bios: IPROG PAGE 0 .bios: IPROG PAGE 0 .text: IPROG PAGE 0 .text: IPROG PAGE 0 .cinit: IPROG PAGE 0 .cinit: IPROG PAGE 0 .pinit: IPROG PAGE 0 .pinit: IPROG PAGE 0 .sysinit: IPROG PAGE 0 .sysin

13、it: IPROG PAGE 0 .bss: IDATA PAGE 1 .bss: IDATA PAGE 1 .far: IDATA PAGE 1 .far: IDATA PAGE 1 .const: IDATA PAGE 1 .const: IDATA PAGE 1 .switch: IDATA PAGE 1 .switch: IDATA PAGE 1 .sysmem: IDATA PAGE 1 .sysmem: IDATA PAGE 1 .sysheap: IDATA PAGE 1 .sysheap: IDATA PAGE 1 定位定位CMD文件可以包含參數(shù)文件可以包含參數(shù)u在上個例子中,

14、我們將連接器使用的參在上個例子中,我們將連接器使用的參數(shù)添加到內(nèi)存定位數(shù)添加到內(nèi)存定位CMD文件中,這樣整文件中,這樣整個連接器命令可以簡化為(以個連接器命令可以簡化為(以C5000系列系列為例,使用為例,使用LNK500):):C:C54XLNK500 asmlnk.cmd優(yōu)化優(yōu)化C C編譯器的使用編譯器的使用uTMS320 DSP的的C編譯器主要有編譯器主要有代碼分析代碼分析工具工具、優(yōu)化器優(yōu)化器、匯編代碼生成器匯編代碼生成器、匯編、匯編工具和連接工具組成,其中匯編工具和工具和連接工具組成,其中匯編工具和連接工具與匯編語言共享。連接工具與匯編語言共享。u編譯分為兩個階段:編譯分為兩個階段:

15、第一階段分析代碼,第一階段分析代碼,第二階段產(chǎn)生匯編語言源程序。第二階段產(chǎn)生匯編語言源程序。完成第完成第一階段后,還可以選擇一種優(yōu)化途徑。一階段后,還可以選擇一種優(yōu)化途徑。使用使用CL500編譯編譯C程序程序u下面是一些常用的選項:下面是一些常用的選項:-g: 允許使用允許使用C代碼級的調(diào)試。代碼級的調(diào)試。-k: 保留生成的匯編源程序。保留生成的匯編源程序。-ss: 產(chǎn)生產(chǎn)生C的注釋匯編源程序。的注釋匯編源程序。-z: 允許調(diào)用連接程序。允許調(diào)用連接程序。-o: 完成優(yōu)化完成優(yōu)化使用使用CL500編譯編譯C程序例子程序例子u使用使用CL500編譯并連接,生成編譯并連接,生成function.o

16、ut文件(使用文件(使用lnk.cmd內(nèi)存映射內(nèi)存映射定位文件)。同時使用優(yōu)化器,以及標定位文件)。同時使用優(yōu)化器,以及標準的準的C語言庫語言庫rts.lib。u在集成開發(fā)環(huán)境在集成開發(fā)環(huán)境CCS中,可以通過工程中,可以通過工程文件添加或選擇使用的參數(shù)文件添加或選擇使用的參數(shù) !由!由CCS自自動生成動生成CL500命令的命令行參數(shù)。命令的命令行參數(shù)。cl500 -o function.c -z lnk.cmd -o function.out -cl500 -o function.c -z lnk.cmd -o function.out -l rts.libl rts.lib使用優(yōu)化編譯器后的

17、效果?使用優(yōu)化編譯器后的效果?u這段程序很簡單,主要完成一個乘累加這段程序很簡單,主要完成一個乘累加運算,結(jié)果放在變量運算,結(jié)果放在變量sumsum中。為了便于比中。為了便于比較優(yōu)化器的效果,我們在編譯時加入較優(yōu)化器的效果,我們在編譯時加入-ss-ss參數(shù),以保留參數(shù),以保留C C與匯編源代碼。與匯編源代碼。u先看不使用優(yōu)化器的情況:先看不使用優(yōu)化器的情況: sum=0;sum=0; for(k=0;k20;k+) for(k=0;k20;k+) sum+=ik sum+=ik* *jk;jk;-;-; 12 | for(k=0;k20;k+) ; 12 | for(k=0;k20;k+) ;

18、-;- ST #0, ST #0,* *SP(2) ; |12| SP(2) ; |12| SSBX SXM ; SSBX SXM ; LD #20,A ; |12| LD #20,A ; |12| SUB SUB * *SP(2),A ; |12| SP(2),A ; |12| BC L2,ALEQ ; branch occurs ; |12| BC L2,ALEQ ; branch occurs ; |12| L1: L1: ;-;-; 13 | sum+=ik; 13 | sum+=ik* *jk; jk; ;-;- MVDK MVDK * *SP(2),SP(2),* *(AR1) ;

19、 |13| (AR1) ; |13| LD LD * *SP(3),A ; |13| SP(3),A ; |13| LD LD * *AR1(_j),T ; |13| AR1(_j),T ; |13| MAC MAC * *AR1(_i), A ; |13| AR1(_i), A ; |13| STL A, STL A,* *SP(3) ; |13| SP(3) ; |13| ADDM #1, ADDM #1,* *SP(2) ; |13| SP(2) ; |13| LD #20,A ; |13| LD #20,A ; |13| SUB SUB * *SP(2),A ; |13| SP(2),

20、A ; |13| BC L1,AGT ; branch occurs |13| BC L1,AGT ; branch occurs |13| L2:L2:使用優(yōu)化編譯器后的效果?使用優(yōu)化編譯器后的效果?u請注意觀察第請注意觀察第1212和第和第1313行乘累加運算的行乘累加運算的實現(xiàn)。在未使用優(yōu)化的情況時,編譯器實現(xiàn)。在未使用優(yōu)化的情況時,編譯器使用最普通的方法實現(xiàn)該運算,即先完使用最普通的方法實現(xiàn)該運算,即先完成一次乘法,然后累加,再進行循環(huán)控成一次乘法,然后累加,再進行循環(huán)控制判斷。當然,整個運算結(jié)果是正確的,制判斷。當然,整個運算結(jié)果是正確的,只是多消耗時間。只是多消耗時間。u如果在編譯

21、時使用優(yōu)化參數(shù),例如使用如果在編譯時使用優(yōu)化參數(shù),例如使用- -o2o2,完成全局優(yōu)化,其效果將大大不同。,完成全局優(yōu)化,其效果將大大不同。 例如:例如:cl500 a.c -ss -o(或或-o2)使用優(yōu)化參數(shù)后的效果使用優(yōu)化參數(shù)后的效果;-;-; 10 | sum=0; ; 10 | sum=0; ; 12 | for(k=0;k20;k+) ; 12 | for(k=0;k20;k+) ;-;- LD #0,A ; |10| LD #0,A ; |10| RPT #19 ; loop starts |6| RPT #19 ; loop starts |6| L1: L1: ;-;-; 1

22、3 | sum+=ik; 13 | sum+=ik* *jk; jk; ;-;- MAC MAC * *AR3+, AR3+, * *AR2+, A, A ; |13| AR2+, A, A ; |13| ; loop ends |13| ; loop ends |13| L2: L2: 使用優(yōu)化編譯器后的效果使用優(yōu)化編譯器后的效果u再觀察第再觀察第1212和第和第1313行,這次完成乘累加行,這次完成乘累加運算使用了運算使用了MACMAC指令,并且使用了單指令指令,并且使用了單指令循環(huán)操作,從而大大提高了運算效率。循環(huán)操作,從而大大提高了運算效率。u同時,優(yōu)化器還對數(shù)組變量同時,優(yōu)化器還對數(shù)

23、組變量i,ji,j直接使用直接使用不同的輔助寄存器尋址,進一步提高了不同的輔助寄存器尋址,進一步提高了程序運行效率。程序運行效率。u有關優(yōu)化器的更詳細的介紹、技巧,請有關優(yōu)化器的更詳細的介紹、技巧,請參考參考TITI提供的優(yōu)化編譯器手冊和相關技提供的優(yōu)化編譯器手冊和相關技術(shù)文檔。術(shù)文檔。3-5 C6Run3-5 C6Run工具工具u TI為簡化ARM+DSP這種雙核中DPS程序的開發(fā)工作, C6Run(C6EZRun)應運而生。 u利用C6Run工具,不需要任何其它的編譯工作或者軟件框架做支持,就可以輕松完成ARM+DSP雙核平臺的C語言程序開發(fā)。uC6Run工具是將DSP執(zhí)行的代碼編譯并重新

24、封裝成為ARM可執(zhí)行的文件,或者是ARM可鏈接的庫文件。分為兩個小工具,分別是C6RunLib和C6RunApp。3-6 C6Accel3-6 C6Accel工具的使用工具的使用u C6Accel也稱C6EZAccel ,ARM開發(fā)人員可以在ARM+DSP的異構(gòu)雙核處理器上,方便地使用DSP端已封裝優(yōu)化好的軟件。u從圖(下頁)上可以看出,C6Accel和Codec Engine二者之間的關系。C6Accel封裝在Codec Engine之上,相對于Codec Engine,更方便于開發(fā)人員使用C6AccelC6Accel與與CECE的關系的關系3-7 C6Flo3-7 C6Flo工具工具u德州

25、儀器(TI)的C6Flo是一款免費的圖形軟件開發(fā)工具,可與TI的CCS IDE或基于DSP的開發(fā)工具配合使用。uC6Flo提供了一個直觀的拖放界面,可用于創(chuàng)建系統(tǒng)方框圖。圖中的塊可以表示從優(yōu)化的DSP算法到外設I/O驅(qū)動程序等各種內(nèi)容。u該工具可對系統(tǒng)方框圖進行解析,并自動生成結(jié)構(gòu)清晰、評價良好的C代碼。這些工具最終曇花一現(xiàn)uTI網(wǎng)站上都會有下面類似的提示:uC6Accel development tool is no longer being developed. For new designs, please consider RCM, or other alternatives such

26、 as SysLink, Codec Engine IUNIVERSAL support, or OpenCL. C6Accel is available for download as-is without future feature/bugfix updates.What is RCM?uThe Remote Command Message (RCM) SW framework provides a client/server implementation for executing functions on a remote processor. RCM provides both c

27、lient (RcmClient) and server (RcmServer) related APIs.uhttp:/ is OpenCL?uOpenCL stands for Open computing Language and is a way to execute code on a multi-core system, even with different core types.uTI is currently working on OpenCL for the C6000 CPU family. At the time of this writing (June 2012),

28、 the software has not been released.uIf you are interested, please post a message to the E2E suport forums so that we may contact you and discuss your use cases.3-8 XDC3-8 XDC工具(工具(3.63.6節(jié))節(jié))uXDC工具根據(jù)一套Build指令,生成可執(zhí)行的文件,用于實時的嵌入式系統(tǒng)。u它包括開發(fā)API的工具和標準、靜態(tài)配置工具和打包工具。XDC最大的好處在于,標準化了傳遞過程,簡化了在應用程序中在目標平臺下引用其他包的過程

29、。u基于XDC的應用開發(fā),具有獨立于硬件的標準接口、支持離線配置以便優(yōu)化存儲器的使用和性能的提高,并支持定制的開發(fā)環(huán)境里的自動操作的特點。XDCXDC工具工具- -特點特點u和其他編譯工具(如gmake)一樣,XDC工具可以根據(jù)編譯指令生成可執(zhí)行文件或者庫,可以編譯任何相關文件,并且可以同時為多種目標板作編譯,所編譯的源文件可以為C、C+、匯編和庫文件。XDC有其自身的特點和優(yōu)勢。XDCXDC工具工具- -特點特點u由于RTSC包可以保持文件相關和版本信息,當使用RTSC包作為源文件時,XDC工具可以自動進行文件相關和版本檢查。u只要為應用程序提供一個簡單的配置腳本,XDC工具就可以生成代碼,

30、這在應用程序使用多個包文件時顯得尤為重要,可以極大地簡化諸如Davinci Engine和DSP服務器之類的復雜應用程序的編譯。 uCCS自帶或TI網(wǎng)站下載!3-10 3-10 系統(tǒng)集成與調(diào)試工具系統(tǒng)集成與調(diào)試工具TI DSP有那些開發(fā)工具有那些開發(fā)工具?uTI公司為公司為TMS320系統(tǒng)的集成與調(diào)試系統(tǒng)的集成與調(diào)試所提供的工具包括所提供的工具包括:軟仿真器(軟仿真器(Simulator)-軟件仿真器軟件仿真器DSP入門套件(入門套件(DSK,DSP Starter Kit)標準評估模塊(標準評估模塊(EVM)擴展開發(fā)系統(tǒng)擴展開發(fā)系統(tǒng)XDS(eXtended Development Syste

31、m)-硬件仿真器需軟件配合使用硬件仿真器需軟件配合使用 集成開發(fā)軟件集成開發(fā)軟件CCS(Code Composer Stdio)3-10-1 3-10-1 軟仿真器軟仿真器(SimulatorSimulator)u軟仿真器是一個軟件程序,使用主機的處軟仿真器是一個軟件程序,使用主機的處理器和存儲器來仿真理器和存儲器來仿真TMS320 DSP,從而,從而進行軟件開發(fā)和非實時的程序驗證。進行軟件開發(fā)和非實時的程序驗證。u可以在沒有目標硬件的情況下作可以在沒有目標硬件的情況下作DSP軟件軟件的開發(fā)和調(diào)試。的開發(fā)和調(diào)試。u它可以直接使用由它可以直接使用由TMS320宏匯編器宏匯編器/連接連接器或器或A

32、NSI C編譯器所產(chǎn)生的目標代碼編譯器所產(chǎn)生的目標代碼(.out)文件為輸入文件為輸入。軟仿真器軟仿真器的主要特性的主要特性u在主機上執(zhí)行用戶的在主機上執(zhí)行用戶的DSP程序。程序。u修改和檢查寄存器,進入時初始化寄存器。修改和檢查寄存器,進入時初始化寄存器。u顯示和修改數(shù)據(jù)和程序存儲器:在任何時顯示和修改數(shù)據(jù)和程序存儲器:在任何時候可以修改整個塊。候可以修改整個塊。u設置斷點:添加指令,讀寫內(nèi)存,數(shù)據(jù)總設置斷點:添加指令,讀寫內(nèi)存,數(shù)據(jù)總線或程序總線上的數(shù)據(jù)類型,出錯條件。線或程序總線上的數(shù)據(jù)類型,出錯條件。u跟蹤累加器、程序計數(shù)器、輔助寄存器等。跟蹤累加器、程序計數(shù)器、輔助寄存器等。軟仿真器

33、軟仿真器的主要特性的主要特性u單步執(zhí)行指令。單步執(zhí)行指令。u在用戶指定的時間產(chǎn)生中斷。在用戶指定的時間產(chǎn)生中斷。u用文件的方式快速存儲和調(diào)用仿真參數(shù)。用文件的方式快速存儲和調(diào)用仿真參數(shù)。u反匯編能力,以便對源語句作編輯和重反匯編能力,以便對源語句作編輯和重匯編。匯編。u存儲器的內(nèi)容可以同時顯示為十六進制存儲器的內(nèi)容可以同時顯示為十六進制的的16-bit值和匯編后的源代碼。值和匯編后的源代碼。C6RunC6Run工具實現(xiàn)工具實現(xiàn)DSPDSP代碼的運行代碼的運行u先使用C6000 CG TOOLS工具,把DSP端的C文件編譯成C6000 OBJ文件,使用LINK工具生成一個完整的DSP應用程序,并

34、自動添加與ARM的接口函數(shù)。u在ARM端,C6RunApp工具自動生成一個應用軟件,自動調(diào)用DSP端應用程序。u或者,在ARM端,C6RunLib工具將這個DSP應用程序編譯成可供ARM應用程序調(diào)用的庫函數(shù)(文件),供其它ARM函數(shù)調(diào)用。3-10-2 DSK3-10-2 DSK系列評估工具以系列評估工具以及標準評估模塊(及標準評估模塊(EVMEVM)uDSP入門套件(入門套件(DSK,DSP Starter Kit)、)、評估模塊(評估模塊(EVM,Evaluation Module)是是TI或或TI的第三方(的第三方(Third Party)為)為TMS320 DSP的使用者設計和生產(chǎn)了一的

35、使用者設計和生產(chǎn)了一種評價種評價DSP的平臺。的平臺。u目前幾乎所有的型號都有這樣的目前幾乎所有的型號都有這樣的EVM板板供開發(fā)人員參考、學習、使用。供開發(fā)人員參考、學習、使用。DSK和和EVM的特點:的特點:uDSK或或EVM板除了提供一個完整的板除了提供一個完整的DSP硬件系統(tǒng)外(包括硬件系統(tǒng)外(包括A/D & D/A、外部程、外部程序序/數(shù)據(jù)存儲器、外部接口等)。數(shù)據(jù)存儲器、外部接口等)。u提供有完整的代碼生成工具和調(diào)試工具。提供有完整的代碼生成工具和調(diào)試工具。u用戶可以使用用戶可以使用DSK或或EVM板來作板來作DSP的的實驗,進行諸如控制系統(tǒng)、語音處理等實驗,進行諸如控制系統(tǒng)

36、、語音處理等測試應用;也可以用來編寫和運行實時測試應用;也可以用來編寫和運行實時源代碼,并對其進行評估;還可以用來源代碼,并對其進行評估;還可以用來調(diào)試用戶自己的系統(tǒng)。調(diào)試用戶自己的系統(tǒng)。USBSTK5515,$79Critical LinkCritical Link公司的公司的C6455+FPGAC6455+FPGA評估板評估板,$1099,$1099 DM6467DM6467數(shù)字視頻評估板數(shù)字視頻評估板(DVEVMDVEVM),$1995,$19953-10-3 3-10-3 硬仿真器硬仿真器EmulatorsEmulators(XDS510/XDS560/XDS100XDS510/XDS

37、560/XDS100)硬仿真器是不可缺少的工具硬仿真器是不可缺少的工具uTMS320擴展開發(fā)系統(tǒng)擴展開發(fā)系統(tǒng)XDS(eXtended Development System)是功能強大的全)是功能強大的全速仿真器,用以系統(tǒng)級的集成與調(diào)試。速仿真器,用以系統(tǒng)級的集成與調(diào)試。u掃描式仿真(掃描式仿真(Scan-Based Emulator)是)是一種獨特的、非插入式的系統(tǒng)仿真、集一種獨特的、非插入式的系統(tǒng)仿真、集成調(diào)試方法。使用這種方法,程序可以成調(diào)試方法。使用這種方法,程序可以從片外或片內(nèi)的目標存儲器實時執(zhí)行,從片外或片內(nèi)的目標存儲器實時執(zhí)行,在任何時鐘速度下都不會引入額外的等在任何時鐘速度下都不

38、會引入額外的等待狀態(tài)。待狀態(tài)。硬仿真器是不可缺少的工具硬仿真器是不可缺少的工具uTMS320器件的結(jié)構(gòu)通過內(nèi)部的、可以由器件的結(jié)構(gòu)通過內(nèi)部的、可以由單一串口訪問的移位寄存器掃描通道來單一串口訪問的移位寄存器掃描通道來實現(xiàn)掃描式仿真。實現(xiàn)掃描式仿真。u該掃描通道提供對內(nèi)部的器件寄存器和該掃描通道提供對內(nèi)部的器件寄存器和狀態(tài)機的訪問,允許完全的可觀察和控狀態(tài)機的訪問,允許完全的可觀察和控制。制。u即便即便DSP焊接到了目標系統(tǒng)中,這種非焊接到了目標系統(tǒng)中,這種非插入式的方法仍然可以工作。插入式的方法仍然可以工作。硬仿真器是不可缺少的工具硬仿真器是不可缺少的工具uXDS510/XDS510WS仿真器

39、是用戶界面仿真器是用戶界面友好、以友好、以PC或或SUN工作站為基礎的開發(fā)工作站為基礎的開發(fā)系統(tǒng),可以對系統(tǒng),可以對C2xx、C3x、C4x、C5x、C54x、C8x、C6x、OMAP、Davinci等等片種實施全速掃描式仿真。片種實施全速掃描式仿真。u用戶可以使用用戶可以使用XDS510來調(diào)試來調(diào)試C程序、匯程序、匯編語言程序,或兩者的混合程序。編語言程序,或兩者的混合程序。u可支持可支持ARM的調(diào)試。的調(diào)試。XDS510的主要特性:的主要特性:u通過一個通過一個14pin/20pin/60pin的目標連接器,的目標連接器,全速執(zhí)行和監(jiān)視目標系統(tǒng)中的器件全速執(zhí)行和監(jiān)視目標系統(tǒng)中的器件u并行處

40、理并行處理DSP的全局運行的全局運行/停止停止/斷點斷點u高級語言(高級語言(HLL)調(diào)試接口)調(diào)試接口u最多可達最多可達200個斷點的軟件斷點個斷點的軟件斷點/跟蹤和跟蹤和計時計時u對所有程序和數(shù)據(jù)地址作硬件斷點對所有程序和數(shù)據(jù)地址作硬件斷點/跟蹤跟蹤u單步執(zhí)行,等等單步執(zhí)行,等等使用使用XDS510調(diào)試調(diào)試DSP系統(tǒng)系統(tǒng)TI和第三方都提供仿真器和第三方都提供仿真器u除除TITI自己提供自己提供XDS510/560/XDS100XDS510/560/XDS100仿真器仿真器外,還有國內(nèi)外廠家都提供類似產(chǎn)品。外,還有國內(nèi)外廠家都提供類似產(chǎn)品。u國外廠商如國外廠商如SpectrumDigital

41、SpectrumDigital等。等。u國內(nèi)廠商如合眾達、聞亭等。國內(nèi)廠商如合眾達、聞亭等。u提供多種提供多種PCPC接口的仿真器,如接口的仿真器,如LANLAN、PCIPCI、USBUSB接口的仿真器接口的仿真器, ,適應不同用戶的要求。適應不同用戶的要求。u低成本的低成本的XDS100仿真器仿真器,用戶甚至可以用戶甚至可以自己設計制作自己設計制作XDS100仿真器。仿真器。3-11 3-11 集成開發(fā)環(huán)境(集成開發(fā)環(huán)境(CCSCCS)(3.13.1節(jié))節(jié))集成開發(fā)環(huán)境(集成開發(fā)環(huán)境(CCSCCS)uCCS(Code Composer Studio)是一個完整是一個完整的的DSP集成開發(fā)環(huán)境

42、,也是目前最優(yōu)秀、集成開發(fā)環(huán)境,也是目前最優(yōu)秀、最流行的最流行的DSP開發(fā)軟件之一。開發(fā)軟件之一。uCCS最早是由最早是由GO DSP公司為公司為TI的的C6000系列開發(fā)的,后來系列開發(fā)的,后來TI收購了收購了GO DSP,并將,并將CCS擴展到其它系列。擴展到其它系列。u現(xiàn)在所有的現(xiàn)在所有的TI DSP都可以使用該軟件工都可以使用該軟件工具進行開發(fā),具進行開發(fā),C5000和和C6000,C2000的的CCS中都提供中都提供DSP/BIOS功能功能CCS包含哪些功能?包含哪些功能?u集成可視化代碼編輯界面,可直接編寫集成可視化代碼編輯界面,可直接編寫C C,匯編、匯編、.H.H文件、文件、.

43、cmd.cmd文件等。文件等。u集成代碼生成工具,包括匯編器、優(yōu)化集成代碼生成工具,包括匯編器、優(yōu)化C C編譯器、連接器等等。編譯器、連接器等等。u基本調(diào)試工具,如裝入執(zhí)行代碼(基本調(diào)試工具,如裝入執(zhí)行代碼(.OUT.OUT文件),查看寄存器窗口,存儲器窗口,文件),查看寄存器窗口,存儲器窗口,反匯編窗口,變量窗口等,支持反匯編窗口,變量窗口等,支持C C源代碼源代碼級調(diào)試。級調(diào)試。CCS包含哪些功能?包含哪些功能?u支持多支持多DSPDSP調(diào)試調(diào)試u斷點工具,包括硬件斷點、數(shù)據(jù)空間讀斷點工具,包括硬件斷點、數(shù)據(jù)空間讀/ /寫斷點,條件斷點(使用寫斷點,條件斷點(使用GELGEL編寫表達式)編

44、寫表達式)等等。等等。u探針工具探針工具(probe points)probe points),可用于算法可用于算法仿真,數(shù)據(jù)監(jiān)視等。仿真,數(shù)據(jù)監(jiān)視等。u剖析工具剖析工具(profile points)profile points),可用于評可用于評估代碼執(zhí)行的時鐘數(shù)。估代碼執(zhí)行的時鐘數(shù)。CCS包含哪些功能?包含哪些功能?u數(shù)據(jù)的數(shù)據(jù)的圖形顯示圖形顯示工具,可繪制時域工具,可繪制時域/ /頻域頻域波形,眼圖,星座圖,圖象等,并可自波形,眼圖,星座圖,圖象等,并可自動刷新(使用動刷新(使用AnimateAnimate命令運行)。命令運行)。u提供提供GELGEL工具工具,令用戶可以編寫自己的控,

45、令用戶可以編寫自己的控制面板制面板/ /菜單,從而方便直觀地修改變量,菜單,從而方便直觀地修改變量,配置參數(shù)等。配置參數(shù)等。u開放式的開放式的plug-insplug-ins技術(shù),支持其它第三技術(shù),支持其它第三方的方的ActiveXActiveX插件,支持各種仿真器包括插件,支持各種仿真器包括軟仿真(只需安裝相應的驅(qū)動程序)。軟仿真(只需安裝相應的驅(qū)動程序)。CCS包含哪些功能?包含哪些功能?u支持支持WindowsWindows、linuxlinux操作系統(tǒng)。操作系統(tǒng)。u支持調(diào)試支持調(diào)試LinuxLinux的應用程序(的應用程序(CCSV5CCSV5)。)。u提供提供DSP/BIOSDSP/

46、BIOS工具,利用該工具可增強對代碼工具,利用該工具可增強對代碼的實時分析能力,如分析代碼執(zhí)行的效率,調(diào)的實時分析能力,如分析代碼執(zhí)行的效率,調(diào)度程序執(zhí)行的優(yōu)先級,方便管理或使用系統(tǒng)資度程序執(zhí)行的優(yōu)先級,方便管理或使用系統(tǒng)資源(代碼源(代碼/ /數(shù)據(jù)占用空間,中斷服務程序的調(diào)數(shù)據(jù)占用空間,中斷服務程序的調(diào)用,定時器使用等等),從而減小開發(fā)人員對用,定時器使用等等),從而減小開發(fā)人員對硬件資源熟悉程度的依賴性。硬件資源熟悉程度的依賴性。添加目標板配置文件添加目標板配置文件uCCSCCS支持軟仿真器、各種型號硬仿真器、支持軟仿真器、各種型號硬仿真器、各種各種DSKDSK和和EVMEVM板,你只需要

47、向相應的生板,你只需要向相應的生產(chǎn)廠家索取驅(qū)動程序,然后在產(chǎn)廠家索取驅(qū)動程序,然后在CCSCCS安裝便安裝便可以使用了,可以使用了,通常情況通常情況CCSV5CCSV5自帶自帶。u配置文件(配置文件(Target ConfigurationsTarget Configurations)描)描述執(zhí)行代碼的具體述執(zhí)行代碼的具體DSPDSP平臺型號平臺型號以及以及連接連接DSPDSP平臺的工具平臺的工具(可以是(可以是SimulatorSimulator和各和各種種XDSXDS仿真器)。仿真器)。uCCSCCS在進入在進入DebugDebug窗口時需要這配置文件。窗口時需要這配置文件。添加目標板配置

48、文件添加目標板配置文件u配置文件可以在建立項目文件(配置文件可以在建立項目文件(ProjectProject)時添加。這樣可以方便地時添加。這樣可以方便地BuildBuild、BebugBebug一鍵啟動。一鍵啟動。u配 置 文 件 也 可 以 獨 立 于 項 目 文 件配 置 文 件 也 可 以 獨 立 于 項 目 文 件(ProjectProject)。這時需要用戶單獨啟動調(diào))。這時需要用戶單獨啟動調(diào)試所使用的配置文件。這種方法更據(jù)靈試所使用的配置文件。這種方法更據(jù)靈活性。活性。u進入進入DebugDebug后,后,CCSCCS通過配置文件連接目通過配置文件連接目標板。標板。GELGEL文件文件可以對目標系統(tǒng)可以對目標系統(tǒng)進行設置進行設置。利用利用CCSCCS開發(fā)開發(fā)DSPDSP程序流程程序流程u在在CCSCCS環(huán)境中,你可以打開或新建環(huán)境中,你可以打開或新建項目項目文文件件,用,用C C或匯編語言完

溫馨提示

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

評論

0/150

提交評論