《TMS320C3X系列-DSP原理與開發(fā)技術(shù)》課件第7章_第1頁
《TMS320C3X系列-DSP原理與開發(fā)技術(shù)》課件第7章_第2頁
《TMS320C3X系列-DSP原理與開發(fā)技術(shù)》課件第7章_第3頁
《TMS320C3X系列-DSP原理與開發(fā)技術(shù)》課件第7章_第4頁
《TMS320C3X系列-DSP原理與開發(fā)技術(shù)》課件第7章_第5頁
已閱讀5頁,還剩170頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章開發(fā)工具與集成開發(fā)環(huán)境

7.1引言7.2代碼生成工具7.3代碼調(diào)試工具7.4CC集成開發(fā)環(huán)境本章小結(jié)

思考題與習題

7.1引

可編程DSP芯片的開發(fā)需要一整套完整的軟硬件開發(fā)工具。通常,DSP芯片的開發(fā)工具可以分為代碼生成工具和代碼調(diào)試工具兩大類。代碼生成工具的作用是將用C語言或匯編語言編寫的DSP程序編譯匯編并鏈接成為可執(zhí)行的DSP程序。代碼調(diào)試工具的作用則是對DSP程序及系統(tǒng)進行調(diào)試,使之能夠達到設(shè)計目標。本章分別介紹TI公司的這兩類開發(fā)工具,并介紹它們的使用方法。之后介紹CC集成開發(fā)環(huán)境的程序設(shè)計方法,對初學者來說,可以很好地在此指導下使用這些工具和設(shè)計方法。7.2代碼生成工具

7.2.1代碼生成工具程序

代碼生成工具程序主要包括以下幾種類型的程序:①C編譯器;②匯編器和鏈接器;③輔助程序,如文檔管理程序和代碼格式轉(zhuǎn)換程序等;④庫文件;⑤RTS(Runtime-Support)頭文件。為了對代碼生成工具有一個全面的了解,在這里我們給出了浮點DSP芯片的代碼生成工具。TMS320C3x/C4xV4.50版本的代碼生成程序包主要包括如下文件:(1)?CL30.EXE——一步編譯匯編鏈接程序;(2)?AC30.EXE——文法分析程序;(3)?OPT.EXE——優(yōu)化程序;(4)?CG30.EXE——代碼生成程序;(5)?AR30.EXE——文檔管理程序;(6)?MK30.EXE——庫生成程序;(7)?ASM30.EXE——匯編應(yīng)用程序;(8)?CLIST.EXE——交叉列表程序;(9)

LNK30.EXE——鏈接程序;(10)

ROM30.EXE——代碼格式轉(zhuǎn)換程序。庫文件包括:(1)?RTS30.LIB——TMS320C3x運行支持庫;(2)?RTS40.LIB——TMS320C4x運行支持庫;(3)?RTS.SRC——源碼運行支持庫。

TMS320C3x/C4x浮點C編譯器的RTS頭文件共有12個:

ASSERT.H——定義在程序運行時插入失敗診斷信息的assert宏。

LIMITS.H——定義一些數(shù)值表示的極值。

STDDEF.H——定義了兩個宏和兩個類型,為多個運行支持函數(shù)所使用。

CTYPE.H——定義了字符測試和轉(zhuǎn)換的函數(shù)。

MATH.H——定義三角、指數(shù)、雙曲等數(shù)學函數(shù)。這些函數(shù)的輸入值和返回值均為

double類型。除非明確表示,否則所有三角函數(shù)均用弧度為單位。

STDLIB.H——說明了多個函數(shù)、宏和數(shù)據(jù)類型。如求絕對值函數(shù)abs()和labs()、除法函數(shù)div()和ldiv()等。此外,還說明了一些常用的庫函數(shù),如字符串轉(zhuǎn)換、偽隨機序列產(chǎn)生、程序退出等函數(shù)。

ERRNO.H——如果數(shù)學函數(shù)的輸入?yún)?shù)是一個無效的參數(shù)值或函數(shù)返回有一個超過定義范圍的結(jié)果,則發(fā)生錯誤。在這種情況下,一個名為ermo的變量被設(shè)置為下列兩個宏之一的值:

EDOM域錯誤(無效參數(shù))

ERANGE范圍錯誤(無效結(jié)果)調(diào)用數(shù)學函數(shù)的C代碼可以讀到errno的值以檢查錯誤條件。errno變量在errno.h中說明,在errno.c中定義。

STDARG.H——有些函數(shù)具有數(shù)目可變和類型不同的參數(shù),即所謂的變參數(shù)函數(shù)。stdarg.h頭文件說明了使用變參數(shù)函數(shù)的宏和類型。

STRING.H——說明了可進行字符串操作的標準函數(shù)。如移動或復制整個或部分字符串、字符串比較、在字符串中搜索字符和確定一個字符串的長度等。

FLOAT.H——定義了一些數(shù)值表示參數(shù)。

SETJMP.H——定義了繞過正常函數(shù)調(diào)用和返回規(guī)則的類型、宏和函數(shù)。

TIME.H——說明了可進行日期和時間操作的宏、數(shù)據(jù)類型和函數(shù)。如clock()和time()等。7.2.2宏匯編器和鏈接器

TMS320宏匯編器和鏈接器是一種將匯編語言源文件轉(zhuǎn)化為可執(zhí)行目標代碼的代碼生成工具。其主要特點包括:

(1)宏和庫函數(shù)支持;

(2)允許條件編譯;

(3)支持可重定位模塊;

(4)具有完整的錯誤診斷功能;

(5)符號表和交叉參考。匯編器的作用是將匯編語言源文件編譯為機器語言目標文件。源文件可以包含指令、匯編器命令和宏命令。匯編器命令控制匯編過程的各個方面,如源列表格式、符號定義以及源代碼在塊(section)中的放置等。鏈接器的作用是將目標文件組合成一個可執(zhí)行的目標模塊。在生成可執(zhí)行模塊的過程中,鏈接器進行重定位操作并處理外部引用符號。鏈接器輸入的文件采用COFF目標文件格式。鏈接器的主要功能包括:(1)定義一個與目標系統(tǒng)存儲器相符的存儲器模式;(2)組合目標文件塊;(3)將塊分配到指定的存儲器區(qū)域;(4)定義和重定義全局符號以分配特定的值;(5)重定位塊以分配最終的地址;(6)處理輸入文件之間的未定義外部符號。7.2.3C編譯器

C編譯器是一種C語言程序自動編譯為DSP匯編程序的代碼生成工具。TI對其生產(chǎn)的各類DSP芯片都提供了相應(yīng)的C編譯軟件工具程序。C編譯器為開發(fā)DSP芯片提供了一種極為便利的軟件開發(fā)手段。

TI公司開發(fā)的DSP芯片C編譯器提供了符合ANSI標準的運行支持庫,而且可以一步將程序從C源程序編譯為目標代碼文件,這種目標代碼可以進行重定位,經(jīng)鏈接之后就可以形成最終的目標代碼。具體的內(nèi)容可參考第7章的ANSIC編譯器內(nèi)容。7.2.4文檔管理器和庫生成器

TMS320定點和浮點代碼生成程序包中分別提供了dspar.exe和ar30.exe兩個文檔管理程序。文檔管理程序的主要作用是將多個獨立文件組合成一個文檔(archive)或庫(library)。用文檔管理器可以生成不同類型的庫,例如,可以用文檔管理器生成匯編器所需的源文件庫;方法是首先編寫好多個源文件,然后用文檔管理器將它們組合成一個源文件庫。也可以用文檔管理器生成鏈接器所需的目標文件庫,方法是在編寫好各個源文件之后,用匯編器對各個源文件進行匯編,然后用文檔管理器將目標文件組合成一個目標文件庫,鏈接時可以指定目標文件作為鏈接器的輸入。除了可以將多個文件組合成一個庫之外,文檔管理器還可以對已有的庫進行其他操作。例如,可以對已有的庫進行文件添加、文件刪除、文件替換和文件提取,也可以列出庫內(nèi)所有的文件。dspar和ar30提供的命令和使用方法完全相同,常用選項命令有:文件添加命令?-a,文件刪除命令?-d,文件替換命令?-r,列出庫中文件命令?-t,文件提取命令?-x。其他系列的文檔管理程序的用法基本相同。下面我們以dspar為例,舉例說明文檔管理器的使用方法。

1)?dspar-afunction.libsine.objcos.objflt.obj如果function.lib不存在,則此命令作用是將三個文件組合成一個function.lib庫。如果function.lib已經(jīng)存在,則此命令的作用是在function.lib庫中添加三個文件;

2)?dspar-tfunction.lib列出function.lib庫的所有文件。

3)?dspar-rfunction.lib sine.obj用新的sine.obj替換庫中的sine.obj.

4)?dspar-dfunction.lib flt.obj刪除function.lib庫中的flt.obj文件。

5)?dspar-xmacros.lib push.asm從macros.lib庫中提取出push.asm文件。如果想修改庫中的某一個文件,可以用-x命令從庫中提取出這個文件,修改之后再用-r命令替換。使用TMS320的DSP芯片C編譯器,可以用不同的選項來對源程序進行編譯。程序包中所提供的RTS庫是采用最常用的一組選項生成的,但這不一定能滿足特殊應(yīng)用的需要,為使用戶能夠根據(jù)應(yīng)用的需要生成RTS庫,程序包中不僅提供了RTS目標庫,還提供了源文件庫。用dspmk或mk30就可以生成符合應(yīng)用需要的TMS320C3x/C4xRTS庫。用dspmk或mk30生成庫時,所有的選項和C編譯器的選項相同。例如:mk30-v30-o-x-mrrts.src-lrts30.lib從rts.src源文件庫生成TMS320C3x的RTS庫rts30.lib。7.2.5代碼格式轉(zhuǎn)換器代碼格式轉(zhuǎn)換器的作用是將鏈接器生成的.out文件(COFF文件格式)轉(zhuǎn)換為其他文件格式,如Intel的Hex文件格式、Tektronix的文件格式或Ti-tagged文件格式,以便于燒制EPROM,因為大多數(shù)的EPROM編程器都不接受COFF文件格式。在TMS320C3x/C4x代碼生成程序包中分別提供了dsprom.exe和rom30.exe兩個程序,它們的使用方法相同。下面以dsprom.exe為例說明代碼格式轉(zhuǎn)換器的用法。代碼格式轉(zhuǎn)換的命令格式為:dsprom[-選項][COFF輸入文件[輸出文件1[輸出文件2]]]其中,選項有四種:

-x——輸出為Tektronicshex格式;

-i——輸出為Intelhex格式;

-w——輸出為Intelword格式;

-t——輸出為Ti-tagged格式;如果不指定選項,則默認的輸出文件格式為Tektronicshex格式。輸入文件若不指定擴展名,則默認的擴展名為?.obj。若不指定輸出文件名,則輸出文件的擴展名為?.hi、.lo、.hex和?.tag等。例如:

1)?dsprom-itest.out生成Intelhex格式的兩個文件test-hi和test.lo,其中test.hi包含高字節(jié)部分,test.lo包含低字節(jié)部分。

2)?dsprom-xtest.out生成Tektronics格式的兩個文件test.hi和test.lo,分別包含高字節(jié)和低字節(jié)。

3)?dsprom-wtest.out生成Intel字格式的一個文件test.hex。

4)?dsprom-ttest.out生成Ti-tagged格式的一個文件test.tag。7.2.6編譯匯編鏈接應(yīng)用舉例下面我們以TMS320C3x為例來介紹DSP程序的編譯、匯編和鏈接方法。對于用匯編語言編寫的DSP程序,只有匯編和鏈接兩個步驟;對于用C高級語言編寫的DSP程序,則首先需要將C程序編譯轉(zhuǎn)換為匯編程序,然后進行匯編和鏈接操作。

1.匯編程序的匯編方法用匯編語言編寫的DSP程序只須用匯編工具程序進行匯編即可得到目標文件。例如,有一個名為sample.asm的DSP匯編程序,用下列命令即可得到其目標文件sample.obj:asm30-v30sample.asm命令行中,選項-v30表示選用TMS320C3x。

2.C程序的編譯和匯編

C程序的編譯方法可以有兩種方法:一種是分步編譯法,另一種則是常用的一步編譯法。下面我們來說明這兩種方法。

7.2.1節(jié)中我們介紹了TI提供的代碼生成工具中的應(yīng)用程序,分步編譯法就是利用其中的若干個應(yīng)用程序來對C程序分幾個步驟進行編譯匯編。設(shè)有一個名為samples的C語言程序,則采用分步編譯法對samples.c程序的編譯匯編過程如下。

(1)文法分析:ac30-v30samples.c,生成sample.if的中間文件;

(2)程序優(yōu)化:opt30-v30sample.if,生成sample.opt文件;

(3)代碼生成:cg30-v30sample.opt,生成sample.asm匯編文件;

(4)匯編:asm30-v30sample.asm,生成sample.obj目標文件。

2)?一步編譯法用上述方法進行編譯的優(yōu)點是步驟比較清晰,但實際使用時會感到比較麻煩。因此,TMS320C3x代碼生成工具程序中還提供了c130.exe應(yīng)用程序,利用這個程序可以對C程序一步從源程序編譯匯編和鏈接生成最終的sample.out文件。例如,下面的命令可以將samples.c編譯匯編和鏈接生成sample.out文件:c130-v30-o2sample.c-zsample.cmd其中,選項-o2表示激活最高級的優(yōu)化,-z表示需要鏈接,sample.cmd為鏈接控制命令文件,其內(nèi)容應(yīng)根據(jù)實際系統(tǒng)確定。例如,采用默認存儲器分配的鏈接控制命令文件如下:/*sample.cmd*/

-c /*ROM初始化*/

sample.obj /*目標文件*/

-1rts30.lib /*TMS320C3x運行庫*/

-osample.out /*鏈接輸出文件*/在實際DSP應(yīng)用中,由于程序模塊較多,有的是用C語言編寫的,有的是用匯編語言編寫的,有的還可能采用兩種語言混合編寫。因此,對C程序一般可采用兩步法。第一步是用cl30對C程序進行編譯和匯編生成?.obj文件,但不進行鏈接;第二步是用下面的方法對所有的.OBJ文件進行鏈接。

3.鏈接方法用c130和asm30對C程序或匯編程序進行編譯或匯編后生成了?.obj文件,將多個目標文件鏈接以形成最終的輸出文件的方法是:

Lnk30sample.cmd其中,sample.cmd是一個用戶定義的鏈接命令控制文件。7.3代碼調(diào)試工具

7.3.1C/匯編源碼調(diào)試器

C/匯編源碼調(diào)試器是一種工作在PC上的先進的軟件接口,它與調(diào)試工具(如軟件模擬器、評價模塊、軟件開發(fā)系統(tǒng)、仿真器)配合使用,調(diào)試器可以完全控制用C語言或匯編語言編寫的程序。用戶程序既可用C語言調(diào)試,也可用匯編語言調(diào)試,還可以進行C和匯編語言的混合調(diào)試。調(diào)試器提供了非常友好的用戶界面,面向窗口、支持鼠標和菜單式的接口使用戶不必記憶復雜的命令,使用十分方便。

1.調(diào)試器的主要特征調(diào)試器的主要特征如下:

(1)提供完善的控制程序運行的特征:如條件執(zhí)行,單步執(zhí)行,斷點設(shè)置和清除,批文件執(zhí)行命令等。

(2)多操作支持:增強了并行處理能力以支持TMS320C40的多處理器的調(diào)試。

(3)多級調(diào)試:可同時調(diào)試C和匯編語言,調(diào)試C語言時,用戶可同時觀察C源碼及由C源碼產(chǎn)生的目標代碼的反匯編,調(diào)試器也可用做匯編語言調(diào)試器。

(4)可靈活配置的界面:由于調(diào)試器的顯示界面是可配置的,因此用戶可根據(jù)需要設(shè)置不同的界面,顯示的顏色、窗口的邊界、尺寸和位置等都可以改變。

(5)靈活的命令輸入:輸入命令的方式靈活多樣,可用鍵入命令法、鼠標、功能鍵或下拉菜單輸入。調(diào)試器具有命令記憶功能,不必重新輸入即可執(zhí)行以前輸入的命令。

(6)全屏幕編輯:任何窗口中顯示的數(shù)據(jù)值可很容易地更改。

(7)連續(xù)更新:調(diào)試器可連續(xù)更新屏幕上的信息,并高亮顯示更改的數(shù)據(jù)。

(8)綜合數(shù)據(jù)顯示:用戶可方便地在屏幕上建立窗口,以顯示和編輯變量、數(shù)組、結(jié)構(gòu)及指針等數(shù)據(jù)類型。

(9)功能強大的命令集:調(diào)試器提供了一個充分利用C表達式的命令集。

2.調(diào)試器的調(diào)試模式調(diào)試器提供三種調(diào)試模式:自動模式,匯編模式,混合模式。

(1)自動模式:在自動模式中,調(diào)試器自動顯示當前正在運行的代碼,或者是匯編語言,或者是C語言。這是默認的調(diào)試模式。

(2)匯編模式:在這種模式下,顯示的是匯編語言,不管運行的是C語言還是匯編語言。

(3)混合模式:在這種模式下,可以同時顯示C語言程序和匯編程序。

3.調(diào)試器窗口調(diào)試器能顯示多種不同類型的窗口。窗口的名稱顯示在窗口的頂行。調(diào)試器共有八種類型的窗口,可以分為3大類。

1)命令顯示窗命令顯示窗提供一個可以鍵入各種命令的區(qū)域,并顯示各種信息,如進程信息、錯誤信息或命令輸出。

2)代碼顯示窗代碼顯示窗顯示匯編語言代碼或C語言代碼。有三種代碼顯示窗口:

(1)反匯編窗口:顯示內(nèi)存的反匯編碼;

(2)文件窗口:顯示任何文本文件,主要是C語言源程序;

(3)進程調(diào)用窗口:運行C代碼時顯示當前跟蹤運行的函數(shù)進程。

3)數(shù)據(jù)顯示窗數(shù)據(jù)顯示窗用以觀察和修改各種類型的數(shù)據(jù)。有四種數(shù)據(jù)顯示窗口:

(1)內(nèi)存顯示窗口:顯示一定范圍的內(nèi)存內(nèi)容;

(2)?CPU窗口:顯示處理器各個寄存器的內(nèi)容;

(3)數(shù)據(jù)顯示窗口:顯示一個集合的數(shù)據(jù)類型,如數(shù)組、結(jié)構(gòu)等;

(4)觀察窗口:顯示己選定的數(shù)據(jù),如變量、寄存器或內(nèi)存的某個單元。調(diào)試器的窗口可任意移動或改變大小,在數(shù)據(jù)顯示窗口中可以編輯其中的任一個值。當然,在做這些工作之前,必須首先選擇好窗口并使之成為活動窗口。

4.調(diào)試器的命令輸入調(diào)試器提供了非常靈活方便的命令輸入方法。調(diào)試器提供的主要命令輸入方法如下。

1)命令行輸入命令行輸入就是在調(diào)試器的命令窗口中鍵入命令。例如:

gomain;執(zhí)行到程序的main處

winCPU;激活CPU窗口利用調(diào)試器的記憶功能可以用簡便的方法輸入以前鍵入過的命令。例如,用TAB鍵可以向后逐條移動執(zhí)行過的命令,用TAB+SHIFT鍵可以向前逐條移動執(zhí)行過的命令,選擇好以后按回車鍵即可。

2)菜單輸入菜單輸入是一種常用的輸入方法。選擇菜單時可以采用三種不同的方法:鼠標輸入、按鍵輸入和熱鍵輸入。熱鍵輸入主要用于沒有下拉菜單的主菜單,如RUN,STEP和NEXT。鼠標輸入比較方便,用鼠標左鍵點中相應(yīng)的主菜單和下拉菜單即可。按鍵輸入時首先同時按下ALT鍵和代表主菜單的高亮字母以選擇主菜單,然后按下代表下拉菜單的高亮字母即可。當然,也可以用方向鍵選擇好下拉菜單再按回車鍵。

3)批文件輸入調(diào)試器提供的take命令可以使調(diào)試器執(zhí)行一個批處理文件。設(shè)有一個批處理文件batcom.fil的內(nèi)容如下:

reset

loadsample.out

gomain則在調(diào)試器的命令行中鍵入takebatcom.fil,就可使調(diào)試器在復位系統(tǒng)之后,裝入sample.out并執(zhí)行至程序的main處。

5.調(diào)試器使用方法簡介使用調(diào)試器調(diào)試程序主要有以下5個步驟:

1)調(diào)試器配置

在使用調(diào)試器之前,首先必須根據(jù)需要配置調(diào)試器。調(diào)試器配置包括內(nèi)存配置和顯示配置,其中內(nèi)存配置尤為重要。內(nèi)存配置用于告訴調(diào)試器哪些內(nèi)存有效,哪些內(nèi)存不能進行存取。因此提供給調(diào)試器的內(nèi)存映像應(yīng)與實際目標系統(tǒng)的內(nèi)存配置相一致,當然內(nèi)存映像也應(yīng)與鏈接命令文件中的MEMORY定義相匹配。當內(nèi)存映像配置好以后,啟動調(diào)試器運行程序時,如果訪問一個沒有定義的存儲區(qū),則調(diào)試器將顯示一個錯誤信息。一般地,配置內(nèi)存可在啟動調(diào)試器之前進行。方法是在調(diào)試器能夠自動讀到的批文件init.cmd中放入內(nèi)存映像命令。啟動調(diào)試器,在初始化過程中讀入init.cmd的命令,從而完成內(nèi)存配置。需要注意的是,對于不同的調(diào)試環(huán)境,init.cmd的文件名有所不同,如模擬器中的文件名為siminit.cmd,仿真器中的文件名為emuinit.cmd等。例7.1TMS320C3x存儲映像配置示例。MR;

重設(shè)內(nèi)存映像MA0x000000,0x020000,RAM ;SRAM靜態(tài)RAMMA0x804000,0x001000,RAM ;COMPORT通信口MA0x809800,0x000400,RAM ;RAM0片內(nèi)RAM塊0MA0x809c00,0x000400,RAM ;RAM1片內(nèi)RAM塊1;;存儲器映像的外設(shè);MA0x808000,0x000010,RAM ;DMAMA0x808020,0x000010,RAM ;TIMER0定時器0MA0x808030,0x000010,RAM ;TIMERI定時器1MA0x808040,0x000010,RAM ;SPORT0串行口0MA0x808050,0x000010,RAM ;SPORT1串行口1MA0x808060,0X000001,RAM;XBUSCTL擴展總線控制MA0x808064,0x000001,RAM;PBUSCTL主總線控制;MAPON;

啟動內(nèi)存映像其中,MA(MapAdd)命令定義了有效的內(nèi)存范圍,并標識這些范圍的讀寫特征。地址表示一段存儲器的起始地址,長度表示該段存儲器的長度,類型表示這段存儲器的讀寫特征;ROM表示只讀,RAM表示可讀可寫,WOM表示只寫,PROTECT表示不可存取。TORT表示輸入口,OPORT表示輸出口,IOPORT表示輸入/輸出口。MAPON命令用于啟動內(nèi)存映像。

Init.cmd是在啟動調(diào)試器時自動裝入的。如果在啟動后不想用init.cmd中的內(nèi)存配置,則也可以調(diào)入另一個存儲器配置。方法是創(chuàng)建另外一個內(nèi)存配置文件。文件內(nèi)容的格式如下:

MR;

重設(shè)內(nèi)存映像

MA命令;定義新的內(nèi)存映像

MAPON;啟動內(nèi)存映像

設(shè)文件名為mem.new,則在啟動調(diào)試器后,用下列命令讀入即可對內(nèi)存重新配置為mem.new的內(nèi)容:

takemem.new在調(diào)試過程中也可以修改內(nèi)存映像。如用MA命令可增加一段內(nèi)存,用MD命令可刪除一段內(nèi)存,用MR命令則刪除內(nèi)存映像中的所有內(nèi)存段,還可以用ML命令列出已經(jīng)定義的內(nèi)存及其讀寫特征。除了可對內(nèi)存進行配置外,屏幕顏色、窗口位置、窗口大小和邊框類型等也可以進行配置。在默認情況下,啟動調(diào)試器自動調(diào)入init.clr文件中的配置。如果要修改配置,則在修改后將當前配置存入一個文件,下次啟動調(diào)試器后再裝入這個配置文件即可,也可將修改后的配置存入init.clr中,則啟動調(diào)試器時自動裝入修改的配置,不必重新裝入。

2)裝入程序調(diào)試器裝入運行并調(diào)試的程序是編譯匯編鏈接后生成的.out文件。裝入的方法是在主菜單的FILE命令下選擇LOAD命令,然后鍵入文件名即可。如果是由C程序得到的文件,則同時在FILE窗口中顯示相應(yīng)的C語言程序。

3)運行程序

運行程序的方法主要有run,runb,go、單步運行等,使用方法如下。

run是最基本的運行命令,執(zhí)行run命令后,程序開始運行直至遇到斷點或按了Esc鍵或鼠標左鍵。

runb用來運行并計算一段程序的時鐘周期數(shù)。若要計算某一段程序執(zhí)行的周期數(shù),首先在這段程序的開始和結(jié)束處各設(shè)置一個斷點,然后運行run至第一個斷點,再運行runb至第二個斷點,在命令窗口輸入?clk命令,就可以得到該段程序的執(zhí)行周期數(shù)。

go命令用來執(zhí)行至程序的某一點,如gomain就使程序執(zhí)行至main標號處。單步運行分step和next兩種。用step命令調(diào)試C語言時,每執(zhí)行一次就執(zhí)行一條C語句,調(diào)試匯編語言時,則每執(zhí)行一次就執(zhí)行一條匯編語句。next命令與step命令類似,所不同的是在遇到函數(shù)調(diào)用時,不進入函數(shù)內(nèi)部,而直接執(zhí)行到調(diào)用語句的下一條語句。運行程序時,還可以有條件地運行。如:

runi<100 即只要i<100,調(diào)試器就一直運行;

step50 即step單步運行50次;

next100 即next單步運行100次。

4)觀察運行結(jié)果調(diào)試程序時,觀察運行結(jié)果是檢驗程序運行正確與否的重要一步。調(diào)試器提供了靈活的觀察運行結(jié)果的手段。觀察數(shù)據(jù)一般有下列三種方法:

(1)直接在己有的顯示窗口中觀察。如在CPU窗口中可以觀察到處理器的寄存器值,在存儲器窗口中可以觀察到一段內(nèi)存的內(nèi)容,首先在命令窗口中鍵入要觀察的內(nèi)存的首地址,如要觀察TMS320C3x從0x809800開始的一段內(nèi)存,則鍵入:

mem0x809800

(2)在命令窗口中用?i命令觀察。這種方法比較適合于觀察一些臨時的變量。如:

?i 觀察變量i的內(nèi)容;

?AR0 觀察寄存器AR0;

?*0x809800,x 以十六進制觀察0x809800內(nèi)存的內(nèi)容;

?f0 觀察R0的浮點值。

(3)增加顯示窗口跟蹤變量。這類顯示窗口又有兩種。一種是WATCH窗,可以觀察單個變量、寄存器或指定的存儲單元。如:

wai 觀察變量i;

wasp 觀察堆棧指針;

wa0x809800 觀察0x809800內(nèi)存的內(nèi)容。另一種是DISP窗,可以觀察集合數(shù)據(jù)類型,如數(shù)組、結(jié)構(gòu)等。例如:

dispindata 觀察數(shù)組indata;

disp*(float*)0x809800 以浮點形式觀察0x809800內(nèi)存。

5)編輯和更改數(shù)據(jù)編輯、更改數(shù)據(jù)的方法主要有兩種。一種方法是直接在數(shù)據(jù)顯示窗口中更改,如在CPU窗口中可以更改寄存器值,在存儲器窗口中可以更改內(nèi)存的內(nèi)容,也可在DISP窗口和WATCH窗口中更改數(shù)據(jù)內(nèi)容。另一種方法是利用表達式的附加作用更改數(shù)據(jù),如:

?AR3++AR3內(nèi)容加1;

?AR0=8AR0等于8。7.3.2初學者工具DSK初學者工具DSK(DSPStarterKit)是TI公司提供給初學者進行DSP編程練習的一套廉價的實時軟件調(diào)試工具。DSK板上除了有一片DSP芯片之外,還提供了可用于聲音輸入和輸出接口的模/數(shù)和數(shù)模接口芯片(一般為一片TLC32044),它可以與PC進行通信,在PC上匯編后的程序可以通過串行或并行接口下載到DSP芯片的內(nèi)部RAM執(zhí)行。此外,DSK板上還將DSP芯片的地址和數(shù)據(jù)總線引出,便于用戶對DSK板進行存儲器等硬件資源的擴充,并在DSK硬件的基礎(chǔ)上形成用戶獨立的DSP系統(tǒng)。以下是TMS320C3xDSK所提供的軟硬件資源。(1)?50?MHz的TMS320C31(內(nèi)部具有2K字的RAM);(2)?A/D和D/A轉(zhuǎn)換芯片TLC32044;(3)與PC之間的標準并行接口;(4)匯編器;(5)調(diào)試器軟件接口。7.3.3軟件模擬器軟件模擬器是一種模擬DSP芯片各種功能并在非實時條件下進行軟件調(diào)試的調(diào)試工具,它不需要目標硬件支持,只需在計算機(如PC)上運行,是一種廉價、方便的調(diào)試工具。當然,由于DSP芯片用軟件模擬實現(xiàn),運行速度慢是軟件模擬器的一個突出的缺點。軟件模擬器模擬DSP芯片的I/O口時采用與文件關(guān)聯(lián)的方法來實現(xiàn),因而調(diào)試中所需的I/O值可從文件中讀取,輸出到I/O口的值也可存儲在文件中。軟件模擬器的主要特征有:

(1)在計算機上執(zhí)行的是DSP程序;

(2)可修改和查看寄存器;

(3)可修改和顯示數(shù)據(jù)和程序存儲器,任何時候都可進行存儲器的修改,也可在程序裝入前進行存儲器初始化;

(4)可模擬外設(shè)、高速緩存(cache)及流水線、定時等功能;

(5)可計算指令周期數(shù);

(6)可編程的斷點設(shè)置,可在取指令、讀寫存儲器及錯誤條件滿足時設(shè)置斷點;(7)可進行累加器、程序計數(shù)器、輔助寄存器的跟蹤;(8)指令的單步執(zhí)行;(9)用戶可設(shè)定中斷產(chǎn)生間隔;(10)在遇到非法操作碼和無效數(shù)據(jù)訪問時提示錯誤信息;(11)從文件中執(zhí)行命令。在用模擬器調(diào)試程序前,首先必須對源文件進行匯編,如果程序由多個模塊組成,還必須進行鏈接。鏈接后的絕對代碼可以裝入模擬器進行調(diào)試。

TI的各類DSP芯片均有相應(yīng)的軟件模擬器支持,這些軟件模擬器有:(1)?TMS320C1x軟件模擬器;(2)?TMS320C2x軟件模擬器;(3)?TMS320C2xx軟件模擬器;(4)?TMS320C3x軟件模擬器;(5)?TMS320C4x軟件模擬器;(6)?TMS320C5x軟件模擬器;(7)?TMS320C54x軟件模擬器。在各類軟件模擬器中,新版本的模擬器都采用了C和匯編源碼調(diào)試器接口,允許用戶用C語言或匯編語言進行調(diào)試,也可進行兩種語言的混合調(diào)試,用戶接口界面非常友好。其程序執(zhí)行的方式有下列幾種方式:單條指令/多條指令,單周期/多周期,執(zhí)行到條件滿足,如果條件滿足一直執(zhí)行,執(zhí)行設(shè)置的循環(huán)次數(shù),無條件執(zhí)行至鍵輸入等。用軟件模擬器模擬I/O口時,首先用與存儲器配置相同的方法將I/O口增加到存儲器映像中,然后用關(guān)聯(lián)命令MC將I/O口與一個文件相關(guān)聯(lián),MC命令的格式為

MC口地址,頁,文件名,{READ/WRITE}其中的“頁”分別用1和2表示,“1”表示串行口,“2”表示并行口。下面我們以TMS320C3x為例,說明軟件模擬器模擬I/O口時的使用方法。在TMS320C3x中,若要將50h口配置為輸入口,并與in.dat文件關(guān)聯(lián),則命令如下:

MA0x50,1,0xl,IPORT;口地址50h配置為輸入口

MC0x50,1,in.dat,READ ;口地址50h與文件in.dat關(guān)聯(lián)

TMS320C3x若有具有兩個串行口,一個是標準的同步串行口,一個是DM串行口,則兩個串行口的配置方法如下:MA0X20,1,1,IPORT;配置DRR(0X20)為輸入口MA0X21,1,1,OPORT;配置DXR(0X21)為輸出口

MA0X30,1,1,IPORT;配置TRCV(0X30)為輸入口MA0X31,1,1,OPORT;配置TDXR(0X31)為輸出口MC0X20,1,RECV.DAT,READ;將DRR與RECV.DAT文件關(guān)聯(lián)MC0X21,1,XMIT.DAT,WRITE ;將DXR與XMIT.DAT文件關(guān)聯(lián)

MC0X30,1,TRCV.DAT,READ;將TRCV與TRCV.DAT文件關(guān)聯(lián)

MC0X31,1,TXMT.DAT,WRITE;將TDXR與TXMT.DAT文件關(guān)聯(lián)上述配置可以放入Simlator的初始配置命令文件siminit.cmd中,這樣,每次啟動simulator調(diào)試器時自動進行配置,當然在調(diào)試過程中也可以重新進行配置。關(guān)聯(lián)文件具有特定的格式,對一般的I/O口和標準的同步串行口,文件格式為每行一個十六進制數(shù),如:

0x0123

0x4567

0x89ab

對TDM串行口,輸入和輸出文件格式需要三個區(qū)域:地址、數(shù)據(jù)和通道號。每個區(qū)域都是十六進制格式,中間用空格分開,如:

0x800x01230

0x400x45671

0x200x89ab2

0x100xcdef3

0x010x01234

Simulator模擬串行口中斷和外部中斷是通過設(shè)置偽寄存器的方法實現(xiàn)的。每一個中斷設(shè)置兩個偽寄存器,一個是中斷周期寄存器,另一個是中斷定時器寄存器。中斷周期寄存器內(nèi)設(shè)置的是兩個中斷間隔的機器周期數(shù)。中斷定時器寄存器內(nèi)包含的是當前至下一個中斷之間的機器周期數(shù)。中斷定時器寄存器以機器周期的速率進行遞減,若中斷使能,則遞減至0時就產(chǎn)生一個中斷,同時將中斷周期寄存器中的值裝入。7.3.4評價模塊評價模塊(EVM)是一種低成本的開發(fā)板,在EVM板上一般配置了一定數(shù)量的硬件資源,可用來進行DSP芯片評價、性能評估和有限的系統(tǒng)調(diào)試。調(diào)試接口也采用上述的C/匯編源碼調(diào)試器。7.3.5軟件開發(fā)系統(tǒng)軟件開發(fā)系統(tǒng)(SWDS)是一塊PC插卡,可提供低成本的評價和實時軟件開發(fā)。它可用來進行實時的軟件調(diào)試,程序在DSP芯片上實時運行。與仿真器不同的是軟件開發(fā)系統(tǒng)不提供實時硬件調(diào)試功能,因此涉及目標I/O操作時一般用文件I/O代替。7.3.6仿真器仿真器即擴展開發(fā)系統(tǒng)(XDS),可用來進行系統(tǒng)級的集成調(diào)試,是進行DSP芯片軟硬件開發(fā)的最佳工具。目前主要有兩種類型的仿真器。一種是傳統(tǒng)的電路仿真器,主要用于早期的TMS320C1x和TMS320C2x兩代DSP芯片的仿真,這兩代DSP芯片沒有仿真信號線;另一種是先進的掃描仿真器,主要用于TMS320C3x、TMS320C2xx/C5x、TMS320C54x/C55x和TMS320C6000等DSP芯片的仿真,在這些DSP芯片上提供了用于仿真的一些信號線。采用傳統(tǒng)的電路仿真器對用戶板進行硬件仿真時,仿真器的電纜插頭必須插入到用戶硬件電路中DSP芯片的相應(yīng)位置,也就是說,仿真電纜的插頭引腳必須與DSP芯片的引腳一一對應(yīng)。TI的XDS/22仿真器就屬于這一類,主要用于TMS320C1x和TMS20C2x等芯片的仿真。掃描仿真器不采用插入仿真的方法,而是通過DSP芯片上提供的幾個仿真引腳來實現(xiàn)仿真功能的。這種方法為TI公司所開發(fā),可用來解決高速DSP芯片的仿真。由于高速DSP芯片具有高度并行的結(jié)構(gòu)、快速的指令周期、高密度的封裝等特點,采用傳統(tǒng)的電路仿真方法很難實現(xiàn)可靠的仿真。掃描仿真消除了傳統(tǒng)的電路仿真存在的問題,例如,仿真電纜過長會引起信號失真,仿真插頭會引起可靠性差等。用戶程序可在目標系統(tǒng)的片內(nèi)或片外存儲器實時運行,而不會因仿真器引入額外的等待狀態(tài)。

DSP芯片內(nèi)部是通過移位寄存器掃描鏈來實現(xiàn)掃描仿真的,這個掃描鏈被外部的串行口訪問。采用掃描仿真,即使芯片已經(jīng)焊在電路板上,也可進行仿真調(diào)試,這對于在生產(chǎn)過程中調(diào)試DSP系統(tǒng)也帶來極大的方便。

TI公司為TMS320C3x/C4x,TMS320C5x,TMS320C2xx,TMS320C54x和TMS320C6000等DSP芯片都提供了相應(yīng)的仿真器。TMS320C3x(不包括TMS320VC33)的仿真器采用了12線的仿真接口,通過仿真器接口與目標系統(tǒng)的TMS320C3x相接進行仿真,其中,EMU0、EMU3為仿真線;H3為時鐘線;第7腳的PD為存在檢測線,用于指示仿真頭與目標系統(tǒng)的連接,在目標系統(tǒng)中,此腳接至?+5?V;第8腳為空腳;其余均為地線。其他DSP芯片的仿真器接口都采用JTAG標準IEEE1149.1。對于TMS320VC33芯片來說,當前國產(chǎn)的仿真器主要有合眾達的SEED和北京瑞泰電子科技的ICETEK—5100。表7.1是仿真信號的定義,其中TDO信號與TCK時鐘的下降沿對齊,TMS和TDI在TCK時鐘的上升沿取樣。表7.1JTAG仿真信號定義掃描仿真器的用戶界面均采用上面介紹的C/匯編源碼調(diào)試器界面,與軟件模擬器的用戶界面完全相同。目標代碼可通過掃描接口從PC下載到目標系統(tǒng)的存儲器中,一般下載1?KB的代碼約需100ms的時間。7.4CC集成開發(fā)環(huán)境

7.4.1CC功能簡介

TI公司的DSP集成開發(fā)環(huán)境CC(CodeComposer)是一個基于Windows的DSP開發(fā)平臺,可以加速和提高程序員創(chuàng)建和測試實時嵌入式信號處理系統(tǒng)的開發(fā)過程,從而縮短將產(chǎn)品推向市場所需要的時間。

CC主要包含了以下功能:

(1)集成可視化代碼編輯界面,可直接編寫C、匯編、.H文件、.cmd文件等。

(2)集成代碼生成工具,包括匯編器、優(yōu)化C編譯器、連接器等。

(3)基本調(diào)試工具,如裝入執(zhí)行代碼(.out文件),查看寄存器、存儲器、反匯編、變量窗口等,支持C源代碼級調(diào)試。

(4)支持多DSP調(diào)試。

(5)斷點工具,包括硬件斷點、數(shù)據(jù)空間讀/寫斷點,條件斷點(使用GEL編寫表達式)等。

(6)具有探針工具(ProbePoints),可用于算法仿真、數(shù)據(jù)監(jiān)視等。

(7)分析工具(ProfilePoints),可用于評估代碼執(zhí)行的時鐘數(shù)。

(8)數(shù)據(jù)的圖形顯示工具,可繪制時域/頻域波形、眼圖、星座圖、圖像等,并可自動刷新(使用Animate命令運行)。

(9)提供GEL工具,用戶可以編寫自己的控制面板/菜單,方便直觀地修改變量,配置參數(shù)等。

(10)支持RTDX(RealTimeDataExchange)技術(shù),可在不中斷目標系統(tǒng)運行的情況下,實現(xiàn)DSP與其他應(yīng)用程序(OLE)的數(shù)據(jù)交換。

(11)采用開放式的Plug-in技術(shù),支持其他第三方的ActiveX插件,支持包括軟仿真在內(nèi)的各種仿真器(只需安裝相應(yīng)的驅(qū)動程序)??梢姡珻C具有實時、多任務(wù)、可視化的軟件開發(fā)特點,已經(jīng)成為TIDSP家族的程序設(shè)計、制作、調(diào)試、優(yōu)化的利器。本書對CC的基本概念、多處理功能、斷點和探測點、文件輸入/輸出功能、可視化窗口、存儲器圖、觀察窗口、集成編輯器、項目環(huán)境、代碼執(zhí)行評估、通用擴展語言(GEL)和RTDX技術(shù)做了詳細分析。使讀者能夠快速地使用CC開發(fā)出優(yōu)秀的TI公司TMS320C3x系列DSP代碼。7.4.2CC軟件的安裝

CC4.10軟件對PC機的要求為MicrosoftWindows98、WindowsNT4.0、Windows2000、WindowsXP操作系統(tǒng),32?MB的內(nèi)存,100?MB的剩余硬盤空間,SVGA顯示器(分辨率為800?×?600以上)。安裝過程如下:

(1)在Windows下將安裝光盤插入CD-ROM驅(qū)動器中,運行光盤根目錄下的setup.exe,按照向?qū)У奶崾緦C安裝到硬盤中,如圖7.1所示。在WindowsNT、Windows2000及WindowsXP系統(tǒng)中,必須使用管理員或特權(quán)模式。安裝程序在安裝盤中建立一個目錄tic3x4x。最后系統(tǒng)提示重啟計算機完成安裝。完成安裝后,安裝程序?qū)⒆詣釉谟嬎銠C桌面上創(chuàng)建“CC′C3x-′C4x”和“SetupCC′C3x-′C4x”兩個圖標,如圖7.2所示。圖7.1CC的安裝

圖7.2CC圖標設(shè)置

(2)安裝補丁程序。運行安裝光盤中的“cc_c3x4x_sp2.exe”程序安裝補丁。最后系統(tǒng)提示重啟計算機完成安裝。重啟后自動進入CCsetup界面,這時可以在里面進行相應(yīng)的設(shè)置;或者將其關(guān)閉進入Windows。

(3)安裝硬件仿真器驅(qū)動程序。常用的仿真器接口有并口和USB兩種結(jié)構(gòu),由于USB的接口方便,即插即用,故現(xiàn)在用戶多選用USB接口的。安裝完驅(qū)動程序后,在硬件設(shè)備中出現(xiàn)一個紅色的蘋果標志,說明安裝成功。7.4.3CC軟件的設(shè)置在安裝CC之后、運行CC軟件之前,須首先運行CC設(shè)置程序以建立CC集成開發(fā)環(huán)境與目標板或Simulator之前的通信接口。CC是一個開放的環(huán)境,通過設(shè)置不同的驅(qū)動,完成對不同環(huán)境的支持。使用CC進行仿真有兩種方式,一種硬件仿真器,一種為軟件自帶的Simulator。

CC的設(shè)置就是用來定義DSP芯片和目標板類型,或者是選擇軟件的模擬器。使用Simulator時可以沒有目標板只在CC環(huán)境下模擬運行DSP程序。CC的設(shè)置大致有以下幾個步驟:

(1)啟動CC配置程序。雙擊桌面上的SetupCC快捷圖標,彈出對話框如圖7.3所示。圖7.3CC配置對話框

(2)清除以前定義的配置。在圖7.3所示的對話框中,單擊“ClearSystemConfiguration”按鈕,彈出確認清除命令對話框,選擇“Yes”,清除以前的配置。

(3)選擇與目標系統(tǒng)相匹配的配置文件。例如使用C33軟件仿真器,則在“Available”列表中選擇“C33Simulator”項,對應(yīng)的系統(tǒng)配置信息顯示在“SystemConfiguration”欄中。對話框中的“Filters”用于設(shè)置DSP類型、平臺類型、是否進行內(nèi)存映射等。

(4)將所選中的配置文件加入到系統(tǒng)配置中。單擊圖7.3對話框中的“Addtosystemconfiguration”按鈕,“SetupCC”將“C33Simulator”作為系統(tǒng)的配置,并將所選擇的配置顯示在系統(tǒng)設(shè)置窗口中。單擊“Close”按鈕,關(guān)閉對話框后出現(xiàn)CC系統(tǒng)設(shè)置窗口,如圖7.4所示。在系統(tǒng)配置欄目的“MySystem”圖標下,顯示系統(tǒng)的配置。圖7.4CC系統(tǒng)設(shè)置窗口

(5)安裝驅(qū)動程序。在圖7.4中,單擊“InstallaDeviceDriver”,彈出選擇器件驅(qū)動程序?qū)υ捒颍鐖D7.5所示。選擇驅(qū)動程序(如tisimC33.dvr),單擊“打開”按鈕。隨后彈出器件驅(qū)動屬性對話框,如圖7.6所示。單擊“OK”按鈕,完成器件驅(qū)動程序的安裝。圖7.5選擇器件驅(qū)動程序?qū)υ捒驁D7.6器件驅(qū)動屬性對話框

(6)保存系統(tǒng)配置。在圖7.4的窗口中,打開“File”菜單,單擊“Save”按鈕,將系統(tǒng)配置保存在系統(tǒng)寄存器中,完成CC的系統(tǒng)配置。7.4.4CC文件名介紹在使用CC軟件的過程中,所要用到的文件類型如下。

(1)?*.mak:CC定義的工程項目文件;

(2)?*.c:C語言編寫的源程序文件;

(3)?*.asm:匯編語言編寫的源程序文件;

(4)?*.h:C語言程序的頭文件,包括DSP/BIOSAPI模塊的頭文件;

(5)?*.lib:庫文件;

(6)?*.cmd:鏈接命令文件;

(7)?*.obj:由源文件編譯或匯編后所生成的目標文件;

(8)?*.out:完成編譯、匯編、鏈接后所形成的可執(zhí)行文件,可在CC監(jiān)控下調(diào)試和執(zhí)行;

(9)?*.wks:工作空間文件,可用來記錄工作環(huán)境的設(shè)置信息。7.4.5CC的應(yīng)用界面

CC的可視界面設(shè)計十分友好,允許用戶對編輯窗口以外的其他所有窗口和工具條進行隨意設(shè)置。雙擊桌面的“CC'C3x–'C4x”圖標,就可以進入CC的主界面。一個典型的CC開發(fā)環(huán)境界面由主菜單、工具條、工程窗口、編輯窗口、反匯編窗口、圖形顯示窗口、內(nèi)存單元顯示窗口和寄存器顯示窗口等構(gòu)成,如圖7.7所示。圖7.7CC軟件主界面

(1)工程窗口:用來組織用戶的若干程序,構(gòu)成一個工程項目。用戶可以從工程列表中選擇需要編輯和調(diào)試的程序。

(2)編輯窗口:在該窗口中,用戶既可以編輯源程序,又可以設(shè)置斷點、探測點調(diào)試程序。

(3)反匯編窗口:用來幫助用戶查看機器指令,查找錯誤。

(4)內(nèi)存和寄存器顯示窗口:可以查看、編輯內(nèi)存單元和寄存器。

(5)圖形顯示窗口:可以根據(jù)用戶需要,以圖形的方式顯示數(shù)據(jù)。用戶可通過主菜單選項管理各窗口。除了編輯窗口外,所有其他窗口和工具條均可移動,用戶可以將窗口或工具條拖拽到所喜歡的位置,甚至可以移出界面,放到桌面的任何位置。移動的方法很簡單,用鼠標左鍵按住移動窗口的標題或工具條進行拖拽即可完成移動。若要將一個窗口移動到界面之外,首先把鼠標放在要移動的窗口中,單擊右鍵彈出關(guān)聯(lián)菜單,選擇“AllowDocking”選項,激活移動的窗口。然后鼠標放在要移動窗口的標題上,按左鍵拖拽該窗口即可。也可直接用鼠標左鍵拖拽移動窗口的邊框,將其移出界面外。7.4.6主菜單主菜單中的各選項如圖7.8所示,由文件File、編輯Edit、查看View、項目Project、調(diào)試Debug、性能Profiler、選項Option、擴展功能GEL、工具Tools、視窗Window和幫助Help等選項組成,共有11個選項。有關(guān)各選項的詳細信息,請查閱CC幫助文件中的“Commands”內(nèi)容。其功能見表7.2所述,并對每個菜單的具體內(nèi)容作了詳細的描述。圖7.8CC主菜單

表7.2主菜單功能介紹

(1)?File菜單。File菜單提供了與文件操作有關(guān)的命令。除“Open”、“Save”、“Print”、“Eixt”等常見的命令外,該菜單還列出了其他文件操作命令,如表7.3所示。表7.3File菜單

(2)?Edit菜單。Edit菜單提供的是與編輯有關(guān)的命令。除“Undo”、“Redo”、“Delete”、“SelectAll”、“Find”、“Replace”等常用的文件編輯命令外,CC還支持其他編輯命令,如表7.4所示。表7.4Edit菜單

(3)?View菜單。View菜單可以選擇是否顯示“Standard”、“GEL”、“Project”、“Debug”、“Editor”工具欄和狀態(tài)欄。此外,“View”菜單中還包括如表7.5所示的命令。表7.5View菜單

(4)?Project菜單。CC使用工程來管理設(shè)計文檔。CC不允許直接對匯編或C源文件Build生成DSP應(yīng)用程序,只有在建立工程文件情況下“Project”工具欄上的“Build”按鈕才會生效。工程文件被存盤為.mak文件。在“Project”菜單中包含一些常見的命令,如“New”、“Open”和“Close”等。此外還包括如表7.6所示的菜單命令表7.6Project菜單

(5)?Debug菜單。Debug菜單顯示常用的調(diào)試命令,如表7.7所示。表7.7Debug菜單續(xù)表

(6)?Profiler菜單。剖切(Profiling)是CC的一個重要功能。它可提供程序代碼特定區(qū)域的執(zhí)行統(tǒng)計,從而使開發(fā)設(shè)計人員能檢查程序的性能,進而可對源程序進行優(yōu)化設(shè)置。使用剖切功能可以觀察CPU算法占用了多少CPU時間,還可以用來剖切處理器的其它事件,如分支數(shù)、子程序調(diào)用次數(shù)及中斷發(fā)生次數(shù)等。表7.8列出了Profiler各菜單命令。表7.8Profiler菜單

(7)?Option菜單。Option菜單提供CC的一些設(shè)置選項,如顏色、字體和鍵盤等。表7.9列出了幾種較為重要的“Option”菜單命令。表7.9Option菜單

(8)?GEL菜單。擴展功能菜單(GEL)僅在加載了GEL文件后有效。

(9)?Tools菜單。Tools菜單提供常用的工具集。在CC中,只有“CommandWindow”一項。單擊后出現(xiàn)一個窗口,可以在里面輸入調(diào)試器所需的命令。鍵入的命令遵循TI調(diào)試器命令語法格式。由于許多命令都接受C表達式作為命令參數(shù),從而使得指令集相對較小且功能較強。在命令窗口中鍵入“HELP”并回車將彈出幫助窗口,從中可得到命令窗口支持的調(diào)試命令列表。

(10)?Window菜單。同其他Window應(yīng)用軟件一樣,CC在“Window”菜單中提供了窗口的疊層、平鋪、圖標重排等幾種窗口排列管理方式,此外在該菜單中還可選擇需要的窗口作為當前活動的窗口。

(11)Help菜單。在CC的幫助菜單中提供了對CC軟件界面和各項功能的簡要介紹、TMS320C3x/C4xDSP芯片匯編語言集以及CPU所有寄存器的列表,使用起來非常方便。7.4.7常用工具條

CC將主菜單中常用的命令篩選出來,形成四類工具條:標準工具條、編輯工具條、項目工具條和調(diào)試工具條。用戶可以單擊工具條上的按鈕執(zhí)行相應(yīng)的操作。

1.標準工具條

啟動CC后會自動顯示標準工具條,如圖7.9所示。可通過選擇主菜單“View”中的“StandardToolbar”選項,打開或關(guān)閉標準工具條。圖7.9標準工具條在標準工具條中有以下14個按鈕:

·New:創(chuàng)建文件按鈕。用來創(chuàng)建新文件。

·?Open:打開文件按鈕。用來打開已有的文件。

·?Save:保存文件按鈕。用來保存當前窗口中的文件。

·?Cut:剪切按鈕。用來剪切文本,將標記文本放入剪貼板。

·?Copy:復制按鈕。用來復制文本,將標記文本放入剪貼板。

·?Paste:粘貼按鈕。用來粘貼文本,將剪貼板中的文本粘貼在光標處。

·?Undo:撤消按鈕。用于撤消最后的編輯活動。

·?Redo:恢復按鈕。用于恢復最后撤消的活動。

·?FindNext:向下搜索按鈕。用來查找光標所在處下一個要搜索的字符串。

·?FindPrevious:向上搜索按鈕。用來查找光標所在處前一個要搜索的字符串。

·?SearchWord:搜索文本段按鈕。將加亮顯示的文本段作為搜索文本,單擊該按鈕,窗將移動到該段下一個出現(xiàn)的位置。

·?FindinFiles:搜索多個文件按鈕。用來搜索多個文件或指定的文本。

·?Print:打印文件按鈕。用來打印當前窗口的源文件。

·?Help:幫助按鈕??蔀橛脩籼峁┥舷挛南嚓P(guān)的幫助。

2.編輯工具條

CC啟動后,將自動顯示編輯工具條??赏ㄟ^主菜單“View”,選擇“EditToolbar”來打或關(guān)閉編輯工具條。編輯工具條共計10個按鈕,如圖7.10所示。圖7.10編輯工具條

·MarkTo:設(shè)置括號標志按鈕。從光標所在處開始,查找括號對,并標記括號對中的文本。

·MarkNext:查找下一個開括號按鈕。找到后,標記與之對應(yīng)的閉括號內(nèi)的文本。通常用于搜索嵌入的括號塊。

·?FindMatch:查找匹配括號按鈕。用來尋找匹配的閉括號。

·?FindNextOpen:查找下一個開括號按鈕。用來尋找下一個開括號。

·?OutdentMarkedText:左移制表位按鈕。將選定的文本塊左移一個Tab鍵。

·?IndentMarkedText:右移制表位按鈕。將選定的文本塊右移一個Tab鍵。

·?EditToggleBookmark:設(shè)置或取消書簽按鈕。用來為當前文件設(shè)置或刪除書簽。若沒書簽,則在光標所在行創(chuàng)建書簽,否則刪除書簽。

·?EditNextBookmark:查找下一個書簽按鈕。在當前文件光標所在處,查找下一個書簽。

·?EditPreviousBookmark:查找上一個書簽按鈕。在當前文件光標所在處,查找上一個書簽。

·?EditBookmarks:書簽屬性設(shè)置按鈕。用來編輯書簽屬性。

3.項目工具條項目工具條也稱工程項目工具條,它提供了與工程項目和斷點設(shè)置有關(guān)的命令,主要用于建工程項目,完成對斷點、探測點和評價點的操作等。工程項目工具條如圖7.11所示。其各按鈕的功能如下。圖7.11工程項目工具條

·?CompileFile:編譯文件按鈕。用來編譯當前的源文件,但不進行鏈接。

·?Incrementalbuild:增加構(gòu)建按鈕。用來生成當前工程項目的可執(zhí)行文件,僅對上次生成后改變了的文件進行編譯。

·?RebuildAll:全部重新構(gòu)建按鈕。用來重新編譯當前工程項目中的所有文件,并重新鏈接形成輸出文件。

·?StopBuild:停止構(gòu)建按鈕。用于停止正在構(gòu)建的工程項目。

·?ToggleBreakpoint:設(shè)置斷點按鈕。用來在編輯窗口中的源文件或反匯編指令中設(shè)置斷點。

·?RemoveAllBreakpoints:刪除所有斷點按鈕。用來刪除全部斷點。

·?ToggleProbePoint:設(shè)置探測點按鈕。用來設(shè)置探測點。

·?RemoveAllProbePoints:刪除所有探測點按鈕。用來刪除全部探測點。

·?ToggleProfilePoint:設(shè)置評價點按鈕。用來在源文件或反匯編窗口中設(shè)置評價點。

·?RemoveAllProfilePoints:刪除所有評價點按鈕。用來刪除全部評價點。

4.調(diào)試工具條

在CC開發(fā)環(huán)境中,提供了多種調(diào)試程序的操作方法。這些操作方法都是以工具按鈕的形式存放在調(diào)試工具條中。調(diào)試工具條如圖7.12所示。圖7.12調(diào)試工具條

·StepInto:單步進入按鈕。在調(diào)試程序中,完成單步進入執(zhí)行操作。

·?StepOver:單步執(zhí)行按鈕。用于單步執(zhí)行在當前函數(shù)中的單條語句。

·?StepOut:單步跳出按鈕。在調(diào)試過程中,用于子程序的執(zhí)行操作。該條命令能直接從當前子程序的位置自動執(zhí)行后續(xù)的程序,直到返回到調(diào)用該子程序的指令。

·?RuntoCursor:執(zhí)行到光標處按鈕。在調(diào)試過程中,從當前位置執(zhí)行程序,直到遇到反匯編窗口中的光標位置為止。

·?Run:運行程序按鈕。從當前

PC位置開始執(zhí)行程序,直到遇到斷點后停止。

·?Halt:暫停程序按鈕。用來暫停正在執(zhí)行的程序。

·?Animate:動畫執(zhí)行按鈕。這是一個在斷點支持下調(diào)試程序的命令。在執(zhí)行前先設(shè)置好各斷點,每按一次該按鈕,就會從當前程序位置執(zhí)行到下一個斷點處。連續(xù)按按鈕就可以實現(xiàn)動畫運行。

·?QuickWatch:快速觀察按鈕。用來打開快速觀察窗口(QuickWatch),查看和修改變量。

·?WatchWindow:觀察窗口按鈕。用來打開觀察窗口(WatchWindow),監(jiān)視局部變量和全局變量的值。

·?ViewRegisters:觀察寄存器按鈕。用來顯示寄存器觀察窗口(Registers),觀察和修改寄存器。

·?ViewMemory:觀察存儲器按鈕。用來打開存儲器窗口選項(MemoryWindow)。7.4.8CC開發(fā)軟件應(yīng)用舉例本節(jié)首先簡要地介紹CC軟件開發(fā)流程,然后結(jié)合一個實例來演示如何在CC環(huán)境下開發(fā)DSP程序。

1.CC開發(fā)流程CC為用戶提供了環(huán)境配置、源文件編輯、程序調(diào)試、跟蹤和分析等工具,極大地方便了DSP程序的設(shè)計與開發(fā),用戶可以在一個軟件環(huán)境下完成編輯、編譯鏈接、調(diào)試和數(shù)據(jù)分析等工作。利用CC集成環(huán)境開發(fā)應(yīng)用程序的流程如圖7.13所示。圖7.13CC的軟件開發(fā)流程利用CC開發(fā)應(yīng)用程序的步驟如下。

(1)軟件設(shè)計。主要包括程序模塊的劃分、算法和流程的確定以及執(zhí)行結(jié)果的預(yù)測等工作。

(2)程序編輯和編譯鏈接。主要進行工程文件的創(chuàng)建,編寫頭文件、配置文件和源程序,使用匯編和C編譯器進行編譯,排除語法、變量定義等錯誤。

(3)程序調(diào)試。利用CC軟件的調(diào)試工具,采用單步執(zhí)行、設(shè)置斷點和探測點等手段對應(yīng)用程序進行調(diào)試。

(4)結(jié)果分析。利用CC軟件提供的分析工具,對應(yīng)用程序運行的結(jié)果進行分析,如圖形顯示數(shù)據(jù)或統(tǒng)計運行時間等。若算法不能滿足要求,則需重新進行軟件設(shè)計。充分利用CC所提供的功能,可以幫助用戶高效地開發(fā)DSP應(yīng)用系統(tǒng)。

2.CC應(yīng)用舉例

下面結(jié)合一個簡單的信號處理程序來演示一下DSP程序的開發(fā)和調(diào)試過程。為了便于學習,將c:\tic3x4x\tutorial下的volume1文件夾(包括文件夾內(nèi)的所有文件)復制到c:\tic3x4x\myprojects目錄下,并刪除volume1文件夾中的volume.mak(工程項目文件)。

1)創(chuàng)建工程項目一般在CC環(huán)境下開發(fā)DSP程序,需要先建立一個工程項目文件,然后將編寫好的源程序文件(.c或?.asm文件)、鏈接命令文件(.cmd文件)和庫文件(.lib文件)添加到工程項目中。具體操作步驟如下。

(1)雙擊CC4.10圖標,進入CC集成開發(fā)環(huán)境。

(2)創(chuàng)建一個新的工程項目。單擊菜單中的“Project”項,選擇New命令,出現(xiàn)如圖8.14所示的對話框。確定工程項目目錄,輸入新建工程項目名volume.mak。當工程項目建立后,單擊工程項目管理窗口的Project目錄,將出現(xiàn)volume.mak項目。圖7.14保存新工程項目對話框

(3)將源程序文件、庫文件和頭文件(.h文件)添加到工程項目中。在“Project”菜單下,選擇“AddFilestoProject”命令,出現(xiàn)類似圖7.14的對話框。將C源文件volume.c、匯編源文件load.asm和vector.asm、鏈接命令文件volume.cmd和C語言標準庫文件,如rts30.lib(rts30.lib,在安裝盤tic3xc4x\c3x4x\cgtool\lib目錄下)添加到工程項目volume.mak下。一般情況下,CC會自動添加到源程序中包含的頭文件。若編寫的源文件不含有C源程序,則不需要頭文件和庫文件。

(4)觀看volume.mak工程項目所包含的文件。在工程項目管理窗口中,單擊所有的“+”項,展開此工程所包含的文件,如圖7.15所示。

(5)查看源文件和鏈接命令文件。在工程項目窗口中,分別雙擊圖8.15中的文件名,可打開文件。在打開的文件中,可進行文件的編輯和修改。圖7.15工程項目管理窗口

2)工程項目的編譯工程項目建立后,可進行編譯鏈接,其方法如下:

(1)打開已建的過程項目。進入CC開發(fā)環(huán)境后,選擇“Project”菜單中的“Open”命令,出現(xiàn)“ProjectOpen”對話框,選擇volume.mak文件,單擊“打開”按鈕。

(2)工程項目的編譯鏈接。選擇“Project”菜單下的“Rebuildall”命令,將在“Output”窗口顯示運行信息。若編譯鏈接沒有錯誤,將生成volume.out文件,完成工程項目的編譯鏈接。若出現(xiàn)錯誤,可根據(jù)提供的錯誤信息,對源程序進行修改,然后重新編譯,直到編譯成功,生成volume.out文件。

3)設(shè)置探測點工程項目編譯鏈接,生成volume.out文件后,可在源程序或反匯編程序中設(shè)置探測點,并將探測點與數(shù)據(jù)文件鏈接。

(1)將volume.out文件裝入目標板。編譯成功后,選擇{“File”菜單中的“LoadProgram”命令,彈出“LoadProgram”對話框,選中volume.out文件,然后單擊“打開”按鈕,將程序裝載到DSP

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論