版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章CCS開發(fā)工具及應(yīng)用7.1CCS概述7.2CCSv4的安裝及窗口7.3CCSv4的基本使用方法7.4TMS320VC5505EVM簡(jiǎn)介
7.1CCS概述
7.1.1CCS的發(fā)展
CCS提供了基本代碼生成工具,它具有一系列的調(diào)試、分析能力。CCS支持如圖7-1所示的開發(fā)周期中的所有階段。圖7-1CCS開發(fā)周期在一個(gè)開放式的插件(Plug-In)結(jié)構(gòu)下,CCS內(nèi)部集成了以下軟件工具:
?代碼生成工具(參見7.1.2節(jié));
CCS集成開發(fā)環(huán)境(參見7.1.3節(jié));
DSP/BIOS插件程序和API(參見7.1.4節(jié));
RTDX插件(參見7.1.5節(jié))。
CCS的構(gòu)成及其在主機(jī)和目標(biāo)系統(tǒng)中的接口如圖7-2所示。圖7-2CCS構(gòu)成及其接口在CCS環(huán)境下,開發(fā)者可以對(duì)軟件進(jìn)行編輯、編譯、調(diào)試、代碼性能測(cè)試(profile)和工程管理等所有工作。但是CCS并不僅僅是代碼生成工具和調(diào)試工具的簡(jiǎn)單集成,它提供的實(shí)時(shí)分析和數(shù)據(jù)可視化功能使傳統(tǒng)的DSP調(diào)試技術(shù)向前提高了一大步,大大降低了DSP系統(tǒng)的開發(fā)難度,使得開發(fā)者可以將精力集中在應(yīng)用開發(fā)上。7.1.2代碼生成工具
代碼生成工具是CCS開發(fā)環(huán)境的基礎(chǔ)部分。圖7-3給出了一個(gè)典型的軟件開發(fā)流程圖。大多數(shù)DSP軟件開發(fā)流程都和C程序的開發(fā)流程相似。圖7-3軟件開發(fā)流程圖7-3中的部分工具描述如下:
●?C編譯器(CCompiler)將C語言源代碼編譯成為匯編語言代碼。
●匯編器(Assembler)將匯編語言源文件翻譯成機(jī)器語言目標(biāo)文件,機(jī)器語言使用的是通用目標(biāo)文件格式(COFF)。
●連接器(Linker)把多個(gè)目標(biāo)文件連接成一個(gè)可執(zhí)行的目標(biāo)文件。連接器的輸入是可重定位的目標(biāo)文件和目標(biāo)庫(kù)文件。●歸檔器(Archiver)允許將一組文件保存到一個(gè)存檔文件里,該存檔文件稱為庫(kù)。存檔器也允許開發(fā)人員通過刪除、替換、提取和添加文件來修改一個(gè)庫(kù)。
●助記符到代數(shù)匯編語言轉(zhuǎn)換程序(Memoric-to-algebraicTranslatorUtility)將含有助記符的匯編語言文件轉(zhuǎn)換成含有代數(shù)指令的匯編語言源文件。
●建庫(kù)程序(Library-buildUtility)創(chuàng)建滿足開發(fā)者需要的運(yùn)行支持庫(kù)?!襁\(yùn)行支持庫(kù)(Run-time-supportLibrary)包括C編譯器所支持的ANSI標(biāo)準(zhǔn)運(yùn)行支持函數(shù)、編譯器公用程序函數(shù)、浮點(diǎn)運(yùn)算函數(shù)和I/O函數(shù)。
●十六進(jìn)制轉(zhuǎn)換程序(HexConversionUtility)能夠?qū)⒁粋€(gè)COFF目標(biāo)文件轉(zhuǎn)化成TI-Tagged、十六進(jìn)制ASCII碼、Intel、Motorola-S或者Tektronix等目標(biāo)格式,也可以把轉(zhuǎn)換好的文件下載到EPROM編程器中?!窠徊嬉昧斜砥?Cross-ReferenceLister)用目標(biāo)文件生成一個(gè)交叉引用列表文件,列出所鏈接的源文件中的符號(hào)及其定義和引用情況。
●絕對(duì)列表器(AbsoluteLister)的輸入為目標(biāo)文件,輸出為.abs文件。通過匯編.abs文件可產(chǎn)生含有絕對(duì)地址的列表文件。如果沒有絕對(duì)列表器,這些操作將需要冗長(zhǎng)乏味的手工
操作才能完成。7.1.3CCS集成開發(fā)環(huán)境
CCS集成開發(fā)環(huán)境允許創(chuàng)建、編輯、編譯和調(diào)試DSP目標(biāo)程序。
1.編輯源程序
CCS允許編輯C語言源程序和匯編語言源程序,“hello.c”的源程序如圖7-4所示。圖7-4“hello.c”的源程序集成編輯環(huán)境支持下述功能:
●用彩色加亮關(guān)鍵字、注釋和字符串。
●以圓括號(hào)和花括號(hào)標(biāo)記C語言塊,并可以查找匹配塊或下一個(gè)圓括號(hào)和花括號(hào);可以在一個(gè)或者多個(gè)文件中進(jìn)行查找和替換;可以向前或者向后查找和快速查找C語言塊。
●可以對(duì)多個(gè)操作進(jìn)行撤銷操作,或者重新進(jìn)行操作。
●獲得與上下文相關(guān)的幫助。
●定制個(gè)性化的鍵盤命令。
2.創(chuàng)建應(yīng)用程序
在CCS中,應(yīng)用程序由一個(gè)或多個(gè)工程組成。工程中包括C語言源程序、匯編語言源程序、目標(biāo)文件、庫(kù)文件、連接命令文件和包含文件等,“Hello”工程目錄如圖7-5所示。編譯、匯編和連接文件時(shí),可以分別指定它們要使用的選項(xiàng)。在CCS中,可以通過一個(gè)窗口詳細(xì)地為一個(gè)工程指定相應(yīng)的編譯、匯編和連接選項(xiàng)。CCS可以選擇完全編譯或增量編譯,可以編譯單個(gè)文件,也可以掃描出工程文件的全部包含文件從屬樹,還可以利用傳統(tǒng)的makefiles文件進(jìn)行編譯。圖7-5“Hello”工程目錄
3.調(diào)試應(yīng)用程序
CCS提供下列調(diào)試功能:
●設(shè)置可選擇步數(shù)的斷點(diǎn)。
●在斷點(diǎn)處自動(dòng)更新窗口。
●查看變量。
●觀察和編輯存儲(chǔ)器和寄存器的值。
●觀察和調(diào)用堆棧?!駥?duì)流入目標(biāo)系統(tǒng)或從目標(biāo)系統(tǒng)流出的數(shù)據(jù)用斷點(diǎn)工具觀察,并收集存儲(chǔ)器映像。
●繪制選定對(duì)象的信號(hào)曲線圖。
●估算執(zhí)行程序性能的統(tǒng)計(jì)數(shù)據(jù)。
●觀察目標(biāo)程序的反匯編指令和C指令。
CCS還提供GEL語言,這種語言允許開發(fā)者向CCS通常的運(yùn)行菜單中添加功能。7.1.4DSP/BIOS插件
在軟件開發(fā)周期的分析階段,當(dāng)調(diào)試依賴于時(shí)間的程序時(shí),傳統(tǒng)的調(diào)試方法效率低下。
DSP/BIOS插件支持可視化的探測(cè)、跟蹤和監(jiān)視一個(gè)DSP應(yīng)用程序,而這種探測(cè)對(duì)程序的實(shí)時(shí)性能影響很小。例如,
圖7-6顯示了一個(gè)執(zhí)行了多個(gè)線程的應(yīng)用程序的時(shí)序。圖7-6應(yīng)用程序的時(shí)序
DSP/BIOS應(yīng)用編程接口(ApplicationProgrammingInterface,API)具有下列實(shí)時(shí)分析功能:
●程序跟蹤(ProgramTracing):在程序執(zhí)行期間顯示寫入目標(biāo)系統(tǒng)日志(TargetLog)的事件并反映程序執(zhí)行過程中的動(dòng)態(tài)控制流?!裥阅鼙O(jiān)視(PerformanceMonitoring):跟蹤反映目標(biāo)資源利用情況的統(tǒng)計(jì)表,諸如處理器負(fù)荷和線程時(shí)序等。
●文件流(FileStreaming):把常駐目標(biāo)系統(tǒng)的I/O對(duì)象捆綁成主機(jī)文檔。
DSP/BIOS還提供了一個(gè)基于優(yōu)先權(quán)的調(diào)度函數(shù),它支持函數(shù)和多優(yōu)先權(quán)線程的周期性執(zhí)行。
1.DSP/BIOS配置
配置文件有以下兩個(gè)作用:
●設(shè)置全局運(yùn)行參數(shù)。
●可視化地創(chuàng)建和設(shè)置運(yùn)行對(duì)象的屬性。這些運(yùn)行對(duì)象由目標(biāo)系統(tǒng)應(yīng)用程序的DSP/BIOSAPI函數(shù)調(diào)用,它們包括軟中斷、I/O通道和事件日志。
在CCS中打開一個(gè)配置文件時(shí),會(huì)出現(xiàn)如圖7-7所示的配置文件窗口。圖7-7配置文件窗口
DSP/BIOS對(duì)象是靜態(tài)配置的,并限制在可執(zhí)行程序的空間范圍內(nèi),而運(yùn)行時(shí)創(chuàng)建對(duì)象的API調(diào)用需要目標(biāo)系統(tǒng)額外的開銷(尤其是代碼空間)。靜態(tài)配置策略通過去除運(yùn)行代碼,能夠使目標(biāo)程序存儲(chǔ)空間最小化,從而優(yōu)化內(nèi)部數(shù)據(jù)結(jié)構(gòu),可以在程序執(zhí)行之前通過確認(rèn)對(duì)象所有權(quán)來及早地檢測(cè)出錯(cuò)誤。
2.DSP/BIOS應(yīng)用編程接口模塊
傳統(tǒng)的調(diào)試(Debugging)手段相對(duì)于正在執(zhí)行的程序而言是外部的,而DSP/BIOSAPI要求將目標(biāo)系統(tǒng)程序與特定的DSP/BIOS應(yīng)用編程接口模塊連接在一起。在源程序代碼中,這些對(duì)象被聲明為外部的,并調(diào)用DSP/BIOS應(yīng)用編程接口。每一個(gè)DSP/BIOS模塊都有一個(gè)獨(dú)立的C語言頭文件和匯編宏文件,這些文件可以包含在應(yīng)用程序的源文件中,這樣可以使應(yīng)用程序的代碼達(dá)到最小化。
DSP/BIOSAPI被分成下列模塊,模塊內(nèi)的任何API的調(diào)用均以下列代碼開頭(詳見參考文獻(xiàn)[36])。
●?ATM:提供用來處理共享數(shù)據(jù)的函數(shù)。
●?BUF:維持固定大小的緩沖池。
●?C55:提供特殊函數(shù)來處理DSP中斷。
●?CLK:片內(nèi)定時(shí)器模塊,控制片內(nèi)定時(shí)器并提供一個(gè)高精度的32bit的實(shí)時(shí)邏輯時(shí)鐘信號(hào)。它能夠控制中斷的速度,使之快則僅有單指令周期的時(shí)間,慢則需要若干毫秒或
者更長(zhǎng)的時(shí)間?!?DEV:用于創(chuàng)建和使用用戶定義的設(shè)備驅(qū)動(dòng)程序。
●?GBL:全局設(shè)置模塊。
●?GIO:使用IOM迷你驅(qū)動(dòng)程序的I/O模塊。
●?HOOK:HOOK函數(shù)模塊。HOOK函數(shù)是TSK函數(shù)的擴(kuò)展。
●?HST:主機(jī)輸入/輸出模塊,管理主機(jī)通道對(duì)象,允許應(yīng)用程序在主機(jī)和目標(biāo)系統(tǒng)之間傳送數(shù)據(jù)。主機(jī)通道通過靜態(tài)配置設(shè)置為輸入或輸出?!?HWI:硬件中斷模塊,提供對(duì)硬件中斷服務(wù)程序的支持,可以在配置文件中指定當(dāng)硬件中斷發(fā)生時(shí)需要運(yùn)行的函數(shù)。
●?IDL:空閑函數(shù)模塊,管理空閑函數(shù)。空閑函數(shù)在目標(biāo)系統(tǒng)程序中沒有更高優(yōu)先權(quán)的函數(shù)運(yùn)行時(shí)啟動(dòng)。
●?LCK:鎖定模塊,管理全局共享資源。當(dāng)不同的任務(wù)請(qǐng)求使用同一資源時(shí),對(duì)資源的分配做出裁決?!?LOG:日志模塊,管理LOG對(duì)象。LOG對(duì)象在目標(biāo)系統(tǒng)程序執(zhí)行時(shí)實(shí)時(shí)捕捉所發(fā)生的事件,并加以記錄。開發(fā)者可以使用系統(tǒng)日志或者定義自己的日志,并可以在CCS中利用LOG模塊實(shí)時(shí)查看這些日志文件。
●?MBX:郵箱模塊,管理任務(wù)之間傳遞的消息。
●?MEM:存儲(chǔ)器模塊,允許指定存放一個(gè)目標(biāo)程序的不同的代碼和數(shù)據(jù)段時(shí)所使用的存儲(chǔ)器段?!?MSGQ:變量長(zhǎng)度消息模塊。
●?PIP:數(shù)據(jù)通道模塊,管理數(shù)據(jù)通道。數(shù)據(jù)通道是用來緩沖輸入和輸出數(shù)據(jù)流的,這些數(shù)據(jù)通道提供一致的軟件
數(shù)據(jù)結(jié)構(gòu),可以使用它們作為DSP設(shè)備與外圍實(shí)時(shí)設(shè)備之間的I/O通道。
●?POOL:分配接口模塊?!?PRD:周期函數(shù)模塊,管理周期函數(shù)對(duì)象,它可以控制一個(gè)應(yīng)用程序的周期性執(zhí)行。周期性對(duì)象的執(zhí)行速度可由時(shí)鐘模塊提供的時(shí)鐘控制或PRD_tick的規(guī)則調(diào)用來管理,而這些函數(shù)的周期性執(zhí)行通常是為了響應(yīng)發(fā)送或接收數(shù)據(jù)流的外圍設(shè)備的硬件中斷。
●?PWRM:降低DSP/BIOS應(yīng)用的功耗模塊。
●?QUE:隊(duì)列模塊,管理數(shù)據(jù)的隊(duì)列結(jié)構(gòu)。●?RTDX:實(shí)時(shí)數(shù)據(jù)交換模塊,允許主機(jī)和目標(biāo)系統(tǒng)之間進(jìn)行實(shí)時(shí)的數(shù)據(jù)交換。在主機(jī)上使用自動(dòng)OLE的客戶都可以對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示和分析。
●?SEM:信號(hào)量模塊,管理用來使任務(wù)同步或者互斥的信號(hào)量。
●?SIO:流模塊,管理能夠提供有效、實(shí)時(shí)的獨(dú)立設(shè)備的I/O對(duì)象。
●?STS:統(tǒng)計(jì)模塊,管理統(tǒng)計(jì)累加器。累加器能夠在程序運(yùn)行時(shí)保存關(guān)鍵的統(tǒng)計(jì)信息,并能通過CCS查看這些統(tǒng)計(jì)信息?!?SWI:軟件中斷模塊,管理軟件中斷。軟件中斷服務(wù)程序與硬件中斷服務(wù)程序(ISR)相類似。當(dāng)一個(gè)目標(biāo)程序通過API調(diào)用而發(fā)送出一個(gè)SWI對(duì)象時(shí),軟件中斷模塊就會(huì)安排相應(yīng)的函數(shù)來執(zhí)行。軟件中斷可以有高達(dá)15級(jí)的優(yōu)先級(jí),但這些優(yōu)先級(jí)都低于硬件中斷的優(yōu)先級(jí)。
●?SYS:系統(tǒng)服務(wù)模塊,提供執(zhí)行基本系統(tǒng)服務(wù)的多用途函數(shù),這些系統(tǒng)服務(wù)包括執(zhí)行掛起程序和打印格式化文本等?!?TRC:跟蹤模塊,管理一套跟蹤控制位,這些控制位通過事件日志和統(tǒng)計(jì)累加器來控制程序信息的實(shí)時(shí)捕獲。如果不存在TRC對(duì)象,則在配置文件中無跟蹤模塊。
●?TSK:任務(wù)管理模塊,管理任務(wù)線程,用來對(duì)優(yōu)先級(jí)低于軟件中斷的線程進(jìn)行調(diào)度。
●?std.handstdib.hfunctions:標(biāo)準(zhǔn)C庫(kù)中的I/O函數(shù)。7.1.5硬件仿真和實(shí)時(shí)數(shù)據(jù)交換
美國(guó)德州儀器(TI)公司的DSP設(shè)備提供在片仿真支持,它使得CCS能夠控制程序的執(zhí)行和實(shí)時(shí)監(jiān)視程序的運(yùn)行。增強(qiáng)型的JTAG連接提供了對(duì)在片仿真的支持,這種連接是一種可與任意DSP系統(tǒng)相連的低干擾式的連接方法。仿真接口提供主機(jī)一側(cè)的JTAG連接,如TIXDS560。在片仿真硬件提供了如下功能:
●?DSP的啟動(dòng)、停止或復(fù)位功能。
●向DSP下載代碼或者數(shù)據(jù)。
●檢測(cè)DSP的寄存器或者存儲(chǔ)器。
●設(shè)置數(shù)據(jù)斷點(diǎn)。
●具有多種計(jì)數(shù)功能,例如,精確計(jì)算源代碼的執(zhí)行
周期。
●主機(jī)和DSP之間的實(shí)時(shí)數(shù)據(jù)交換(RTDX)。
CCS提供在片能力的嵌入式支持,另外,RTDX通過主機(jī)和DSP的API提供主機(jī)和DSP之間的雙向?qū)崟r(shí)數(shù)據(jù)交換,它能夠使開發(fā)者實(shí)時(shí)連續(xù)地觀察到DSP應(yīng)用的實(shí)際工作方式。在目標(biāo)系統(tǒng)應(yīng)用程序運(yùn)行的情況下,RTDX也允許系統(tǒng)開發(fā)者在主機(jī)和DSP設(shè)備之間傳送數(shù)據(jù),而且這些數(shù)據(jù)可以在使用自動(dòng)OLE的客戶機(jī)上實(shí)時(shí)分析和顯示,從而可以縮短開發(fā)時(shí)間。
RTDX系統(tǒng)組成如圖7-8所示,RTDX由目標(biāo)系統(tǒng)和主機(jī)兩部分共同組成。一個(gè)小的RTDX軟件庫(kù)需要依靠目標(biāo)DSP才能運(yùn)行。開發(fā)者通過調(diào)用RTDX軟件庫(kù)里面的應(yīng)用程序接口將數(shù)據(jù)輸入目標(biāo)系統(tǒng)的DSP或者將數(shù)據(jù)從目標(biāo)系統(tǒng)的DSP輸出。庫(kù)函數(shù)通過在片仿真硬件和一個(gè)增強(qiáng)型的JTAG接口將數(shù)據(jù)輸入主操作平臺(tái)或者從主操作平臺(tái)輸出。在DSP應(yīng)用程序運(yùn)行時(shí),數(shù)據(jù)可實(shí)時(shí)傳送給主機(jī)。圖7-8RTDX系統(tǒng)組成在主機(jī)平臺(tái)上,RTDX庫(kù)函數(shù)是和CCS一起協(xié)同工作的。顯示和分析工具可以通過串行通信端口的應(yīng)用程序接口和RTDX進(jìn)行通信,從而獲取目標(biāo)系統(tǒng)數(shù)據(jù),或者將數(shù)據(jù)發(fā)送
給DSP應(yīng)用程序。開發(fā)者可以使用標(biāo)準(zhǔn)的顯示軟件插件,像NationalInstruments'LabVIEW、Quinn-curtis’Real-timeGraphicsTools或MicrosoftExcel等。同時(shí),開發(fā)者也可以研制自己的VisualBasic或者VisualC++應(yīng)用程序。
RTDX能夠?qū)崟r(shí)記錄數(shù)據(jù),并可將其回放,用于非實(shí)時(shí)分析。下述樣本由NationalInstruments'LabVIEW軟件產(chǎn)生。在目標(biāo)系統(tǒng)上,一個(gè)原始的信號(hào)通過一個(gè)FIR濾波器,然后和經(jīng)過濾波的信號(hào)通過RTDX一起被送到主機(jī)。在主機(jī)上,LabVIEW顯示屏把通過RTDX串行口應(yīng)用程序接口獲得的信號(hào)數(shù)據(jù)顯示在顯示屏的左邊。利用信號(hào)的功率譜可以檢驗(yàn)?zāi)繕?biāo)系統(tǒng)中的FIR濾波器是否工作正常。經(jīng)過目標(biāo)濾波的信號(hào)通過LabVIEW的功率譜在顯示屏的右上方顯示,目標(biāo)系統(tǒng)的原始信號(hào)通過LabVIEW的FIR濾波器,其功率譜顯示在右下部分,RTDX實(shí)例如圖7-9所示。比較這兩個(gè)功率譜便可確認(rèn)目標(biāo)系統(tǒng)的濾波器是否正常工作。圖7-9RTDX實(shí)例
RTDX可適合于各種控制、伺服系統(tǒng)和音頻應(yīng)用程序。例如,無線電通信產(chǎn)品可以通過捕捉語音合成算法的輸出來檢驗(yàn)語音應(yīng)用程序的執(zhí)行情況;嵌入式控制系統(tǒng)同樣可以從RTDX獲益;硬磁盤驅(qū)動(dòng)器設(shè)計(jì)者可以利用RTDX測(cè)試它們的應(yīng)用軟件,不會(huì)因?yàn)椴徽_的信號(hào)加到伺服電機(jī)上而與驅(qū)動(dòng)發(fā)生沖突;發(fā)動(dòng)機(jī)控制器設(shè)計(jì)者可以利用RTDX在控制程序運(yùn)行的同時(shí)分析隨溫度等環(huán)境條件而變化的系數(shù)。對(duì)于所有的這些應(yīng)用,開發(fā)者可以使用可視化的工具,并根據(jù)需要選擇信息顯示方式。RTDX目前的設(shè)計(jì)傳輸速率是8kb/s,未來的TI公司的DSP產(chǎn)品將會(huì)增加RTDX的帶寬,為更多的應(yīng)用提供更強(qiáng)的系統(tǒng)可視性,滿足更多的實(shí)時(shí)應(yīng)用要求。關(guān)于RTDX的詳細(xì)資料,請(qǐng)參見RTDX的在線幫助。
第三方軟件提供商可以創(chuàng)建ActiveX插件來擴(kuò)展CCS的功能,目前已有若干第三方插件用于多種用途。7.1.6CCS小結(jié)
CCS是繼“一體化的DSP解決方案”后,TI公司為鞏固自己在DSP業(yè)界的地位而在開發(fā)工具方面的一次重拳出擊。CCS的集成開發(fā)環(huán)境使得代碼開發(fā)過程從編輯、編譯到調(diào)試及代碼性能測(cè)試都集成在一個(gè)環(huán)境下,而且各項(xiàng)功能都有了一定程度的提升,簡(jiǎn)化了開發(fā)過程,降低了代碼開發(fā)的難度。更為重要的是,CCS下的DSP/BIOS和RTDX所提供的實(shí)時(shí)分析功能為目標(biāo)系統(tǒng)提供了一個(gè)實(shí)時(shí)窗口,這使得設(shè)計(jì)者可以對(duì)正在運(yùn)行的系統(tǒng)進(jìn)行實(shí)時(shí)分析。這使得用戶能夠在產(chǎn)品的設(shè)計(jì)階段和開發(fā)階段就發(fā)現(xiàn)一些與實(shí)時(shí)運(yùn)行有關(guān)的問題,而如果沒有實(shí)時(shí)分析功能,同樣的問題可能需要數(shù)周的時(shí)間才能發(fā)現(xiàn),甚至根本無法發(fā)現(xiàn)??梢哉f,實(shí)時(shí)分析功能所帶來的DSP調(diào)試手段的變革是CCS對(duì)DSP發(fā)展的一個(gè)重要貢獻(xiàn)。
7.2CCSv4的安裝及窗口
7.2.1CCSv4的安裝
1.系統(tǒng)配置要求
(1)機(jī)器類型:IBMPC及兼容機(jī)。
(2)操作系統(tǒng):MicrosoftWindowsXP,WindowsVista或Windows?7。
(3)處理器:至少為1.5GHz以上的單核CPU。
(4)磁盤空間:300MB的磁盤剩余空間(最小安裝);2GB的磁盤剩余空間(典型安裝)。
(5)內(nèi)存需求:至少1GB以上,強(qiáng)烈推薦大于2GB。
2.安裝CCSv4
“setup_CCS_4.x.x.xxxxx.exe”(x表示軟件版本)。在出現(xiàn)歡迎界面后,單擊“Next”按鈕,安裝程序?qū)@示許可協(xié)議,必須接受該協(xié)議方可繼續(xù)下一步。選擇安裝路徑界面,如圖7-10所示,用戶可以點(diǎn)擊“Browse”按鈕并選擇準(zhǔn)備安裝CCSv4的路徑(對(duì)于WindowsXP用戶,強(qiáng)烈建議安裝于默認(rèn)路徑。這樣做的原因是CCSv4的更新會(huì)安裝在默認(rèn)路徑中,除非人為對(duì)其進(jìn)行修改)。確定安裝路徑后,單擊“Next”按鈕。圖7-10選擇安裝路徑界面在定制安裝界面上,用戶可以按需求選擇準(zhǔn)備安裝的產(chǎn)品配置,如圖7-11所示?!癙latinumEdition(鉑金版)”支持TI公司的全部系列;“MicrocontrollerEdition(微控制器版)”僅支持MSP430、C2000、CortexM3和CortexR4系列;“Custom”(自定義)允許配置所需的每臺(tái)設(shè)備。在確定欲安裝的產(chǎn)品配置后,單擊“Next”按鈕。圖7-11產(chǎn)品配置選擇界面在選擇安裝設(shè)備界面中,用戶可以根據(jù)自身需求選擇欲安裝的設(shè)備(為了獲得最佳性能,建議只安裝需要的設(shè)備系列。如要調(diào)試DaVinci或OMAP等系統(tǒng)芯片設(shè)備,請(qǐng)同時(shí)安裝ARM和C6000DSP設(shè)備系列)。在選擇安裝組件界面中,用戶可以根據(jù)自身需求選擇欲安裝的組件;在安裝選項(xiàng)摘要界面中,安裝程序?qū)⒏鶕?jù)用戶之前所做選擇而給出安裝信息的摘要。單擊“Next”按鈕,安裝開始。在安裝過程中,將顯示如圖7-12所示的安裝程序主界面。有時(shí)會(huì)顯示“NotResponding”(無響應(yīng))字樣,這是正常的,因?yàn)橛?jì)算機(jī)在等待每個(gè)組件安裝程序完成其自身的操作。圖7-12安裝程序主界面等所有組件安裝成功后,將出現(xiàn)如圖7-13所示的安裝完成界面。單擊“Finish”按鈕,則CCSv4安裝完畢。用戶可以在“開始>所有程序>TexasInstruments>CodeComposerStudiov4.2.3”中單擊“CodeComposerStudiov4”按鈕以啟動(dòng)CCSv4,也可通過雙擊桌面上的快捷方式來啟動(dòng)CCSv4。圖7-13安裝完成界面7.2.2初次運(yùn)行CCSv4
1.定義工作目錄
在初次運(yùn)行CCSv4時(shí),將出現(xiàn)定義工作目錄界面,如圖
7-14所示。用戶可以自定義所希望的工作目錄(需要注意的是,路徑中不能包含中文字符)。若選中“Usethisasthedefaultanddonotaskagain”選項(xiàng),CCS便將當(dāng)前工作目錄設(shè)為默認(rèn)值并在以后啟動(dòng)時(shí)不再詢問。單擊“OK”按鈕,CCSv4啟動(dòng)完成。然后可選擇“File”→“SwitchWorkspace”來切換工作目錄。圖7-14定義工作目錄界面
2.選擇許可證
CCSv4需要一個(gè)激活的許可證。在CCSv4啟動(dòng)后,如果系統(tǒng)沒有找到可用的許可證,便會(huì)彈出許可證設(shè)置界面,如圖
7-15所示。圖7-15許可證設(shè)置界面這里簡(jiǎn)要介紹各類型的許可證及其設(shè)置。
(1)?30天評(píng)估版許可證。選中“EvaluateCodeComposerStudiofor30days”選項(xiàng),然后單擊“OK”按鈕。在30天的評(píng)估期中,可以使用CCSv4的全部功能。在使用評(píng)估版許可證時(shí),CCSv4將在頂欄中顯示剩余天數(shù)“(Licensed:xxDaysRemaining)”。如果要使用其他許可證或想延長(zhǎng)評(píng)估期,可以選擇“Help”→“LicensingOptions”。
(2)免費(fèi)有限許可證(需要一個(gè)TI賬號(hào),可免費(fèi)申請(qǐng))。選中“ActivateaLicense”選項(xiàng),然后單擊“UseFreeLimitedLicense”按鈕。在自動(dòng)彈出的網(wǎng)頁(yè)中,登錄TI賬號(hào)并完成申請(qǐng)。在收到包含許可證的郵件后(如何申請(qǐng)有限許可證請(qǐng)參見TI官方網(wǎng)站),將郵件中包含的許可證文件(*.lic)保存至本地。返回CCSv4界面,單擊“SpecifyaLicenseFile”下的“Browse”按鈕,指向許可證文件所在的位置,單擊“OK”按鈕,重新啟動(dòng)CCSv4。頂欄應(yīng)顯示“(Licensed)”。通過免費(fèi)有限許可證可以使CCSv4利用XDS100仿真器來執(zhí)行調(diào)試,這種仿真器包含在標(biāo)準(zhǔn)的EVM/DSK/eZdsp開發(fā)板上。
(3)已注冊(cè)許可證。已注冊(cè)許可證的激活過程與免費(fèi)有限許可證的激活過程非常類似。如何利用產(chǎn)品中包含的“ActivationID”申請(qǐng)“已注冊(cè)許可證”,請(qǐng)參見TI官方網(wǎng)站。
(4)浮動(dòng)許可證。浮動(dòng)許可證允許在聯(lián)網(wǎng)環(huán)境中的多臺(tái)PC之間共享許可證池。浮動(dòng)許可證的申請(qǐng)和許可證服務(wù)器的架設(shè)請(qǐng)參看TI官方網(wǎng)站。在設(shè)置完許可證后,點(diǎn)擊“OK”按鈕,完成許可證的設(shè)置。CCSv4將顯示如圖7-16所示的歡迎界面。在以后的使用中,若用戶想查看歡迎界面,可以選擇“Help”→“Welcome”。圖7-16歡迎界面7.2.3CCSv4的窗口、主菜單和工具條
1.“C/C++”視角
圖7-17為CCSv4在“C/C++”視角下的一個(gè)示例。圖7-17“C/C++”視角
(1)主菜單。主菜單中各項(xiàng)的使用將在后面的小節(jié)中結(jié)合具體示例進(jìn)行詳細(xì)介紹,在此僅對(duì)各菜單項(xiàng)做簡(jiǎn)要說明。用
戶如果需要了解更詳細(xì)的信息,請(qǐng)參閱CCSv4的幫助文件。CCSv4主菜單如圖7-18所示,各項(xiàng)功能的介紹如表7-1所示。圖7-18CCSv4主菜單
(2)常用工具條。CCSv4將主菜單中常用的命令放在常用工具條中,以方便用戶使用。在“C/C++”視角下,常用工具條如圖7-19所示。圖7-19“C/C++Projects”工具條
(3)視角轉(zhuǎn)換標(biāo)簽。單擊標(biāo)簽,便可轉(zhuǎn)入相應(yīng)的視角。
(4)工程顯示窗口。顯示處于打開狀態(tài)的工程的內(nèi)容及相關(guān)信息。同時(shí)在該窗口中也提供對(duì)各個(gè)工程的管理,如打開、關(guān)閉、刪除、重命名等。
(5)代碼顯示窗口??梢詫?duì)代碼文件進(jìn)行查看、修改等
操作。
(6)控制臺(tái)輸出窗口。主要顯示控制臺(tái)的輸出信息,如編譯工程時(shí)將顯示編譯過程中出現(xiàn)的所有信息。
(7)問題顯示窗口。突出顯示控制臺(tái)輸出的重要信息,如錯(cuò)誤、警告等,方便用戶瀏覽。
(8)快速查看。提供一種平時(shí)處于隱藏而又能快速顯現(xiàn)的窗口,方便用戶使用。
(9)狀態(tài)欄。顯示CCSv4的當(dāng)前狀態(tài)。
(10)關(guān)聯(lián)菜單。在任一CCS活動(dòng)窗口中單擊鼠標(biāo)右鍵都可以彈出與此窗口內(nèi)容相關(guān)的菜單,即關(guān)聯(lián)菜單(ContextMenu)。利用此菜單,用戶可以對(duì)本窗口的內(nèi)容進(jìn)行特定操作。
2.“Debug”視角
圖7-20為CCSv4在“Debug”視角下的一個(gè)示例。各部分的簡(jiǎn)介如下(省略與“C/C++”視角相同的部分):
(1)主菜單。在“Debug”視角下,主菜單中的“Target”菜單項(xiàng)將發(fā)生很大變化,與調(diào)試相關(guān)的命令,如加載程序、單步執(zhí)行等,都將出現(xiàn)在該菜單項(xiàng)中。
(2)?Debug主窗口。顯示聯(lián)機(jī)的所有設(shè)備。圖7-20“Debug”視角
(3)?Debug工具條。如圖7-21所示,Debug工具條包含“運(yùn)行”、“暫?!?、“單步執(zhí)行”等常用的調(diào)試工具。圖7-21“Debug”工具條
(4)觀察變量、斷點(diǎn)等顯示窗口。用于顯示用戶欲觀察的變量、斷點(diǎn)等調(diào)試信息。
(5)代碼顯示窗口。提供當(dāng)前執(zhí)行代碼的顯示,并允許用戶直接對(duì)代碼進(jìn)行修改,編譯后,CCSv4會(huì)自動(dòng)將新產(chǎn)生的程序加載并運(yùn)行,提高調(diào)試的效率。
(6)匯編顯示窗口。顯示當(dāng)前執(zhí)行命令的匯編形式,便于用戶發(fā)現(xiàn)隱藏于深層次的問題。7.2.4CCSv4較CCS早期版本的改進(jìn)
CCSv4較早期的CCS(如CCSv3.3、CCSv2)有了很大的改進(jìn),主要的改進(jìn)方面如下。
1.更合理的窗口安排
CCSv4通過增加視角(Perspective)、標(biāo)簽(Tab)、快速視圖(FastView)等功能使得在有限大小的窗口下可以顯示更多信息,如圖7-22所示。圖7-22視角、標(biāo)簽、快速視圖
2.功能更強(qiáng)大的代碼編輯器
早期CCS自帶的代碼編輯器功能有限,給用戶的開發(fā)帶來不便。CCSv4中的代碼編輯器具有十分強(qiáng)大的功能,主要包括:
●代碼完成(參數(shù)提示)。
●跳轉(zhuǎn)至定義、聲明。
●當(dāng)前源文件的大綱視圖。
●源代碼改動(dòng)的歷史記錄。
●文件對(duì)比。
3.更適合多核處理器的調(diào)試
使用早期版本的CCS開發(fā)、調(diào)試多核DSP時(shí)需要多個(gè)窗口來顯示不同核的信息,這樣既要占用較多的電腦資源,又不便于用戶觀察。在CCSv4中,用戶可以在Debug主窗口下選擇所需的DSP內(nèi)核,既節(jié)省了資源,也使界面更加簡(jiǎn)潔,從而便于用戶使用。
4.支持腳本(Scripting)
某些任務(wù),例如測(cè)試等,需要運(yùn)行數(shù)小時(shí)或數(shù)天而不需要用戶交互。要完成此類任務(wù),IDE應(yīng)能自動(dòng)執(zhí)行一些常見任務(wù)。CCSv4擁有完整的腳本環(huán)境,允許自動(dòng)進(jìn)行重復(fù)性任務(wù),例如測(cè)試和性能評(píng)測(cè)。一個(gè)單獨(dú)的腳本控制臺(tái)允許用戶在IDE內(nèi)鍵入命令或執(zhí)行腳本。
5.圖像分析和虛擬化
CCSv4擁有許多圖像分析及圖形虛擬化功能。其中包括以圖形方式在能夠自動(dòng)刷新的屏幕上觀察變量和數(shù)據(jù)的能力。CCSv4還能以本機(jī)格式(YUV、RGB)查看主機(jī)PC或目標(biāo)板中加載的圖像和視頻數(shù)據(jù)。7.3CCSv4的基本使用方法
7.3.1創(chuàng)建一個(gè)新的工程(Project)
由于CCSv4較之前的版本有了較大的改動(dòng),因此在本小節(jié)將詳細(xì)講述如何在CCSv4中建立一個(gè)新的工程。CCSv4上的所有工作都基于工程(一個(gè)包含若干源文件、include文件和目標(biāo)配置文件的集合)。創(chuàng)建一個(gè)新的工程的操作步驟如下:
(1)在關(guān)閉歡迎界面(如果出現(xiàn)的話)后,將會(huì)顯示如圖
7-23所示的工作區(qū),此時(shí)可以創(chuàng)建新工程。選擇“File”→
“New”→“CCSProject”,彈出如圖7-24所示的新建工程“命名”對(duì)話框。圖7-23工作區(qū)
(2)在“Projectname”中輸入新工程的名稱(在本示例中為“Hello”)。若選中“Usedefaultlocation”選項(xiàng)將會(huì)在當(dāng)前的工作區(qū)目錄中創(chuàng)建工程;取消選中該選項(xiàng)可以選擇一個(gè)新位置(使用“Browse”按鈕)。需要再次強(qiáng)調(diào)的是,無論在工程名還是路徑中都不能出現(xiàn)中文字符。在完成設(shè)定后,單擊“Next”按鈕。圖7-24新建工程“命名”對(duì)話框
(3)在名為“ProjectType”的下拉列表中選擇要使用的設(shè)備系列(本例選擇“C5500”),其他選項(xiàng)均采用默認(rèn)值,單擊“Next”按鈕。
(4)在“AdditionalProjectSettings”對(duì)話框中,用戶可以加入當(dāng)前工程需要引用的其他工程(如靜態(tài)庫(kù)等)。在本例和大多數(shù)情況下,這里則留空,單擊“Next”按鈕。
(5)在圖7-25所示的新建工程“設(shè)置”對(duì)話框中,“Outputtype”下拉列表用來確定工程的輸出類型。其中:“Executable”為生成可運(yùn)行的完整程序;“StaticLibrary”為生成其他工程需要使用的函數(shù)庫(kù)(在本例中,選擇“Executable”)。在“DeviceVariant”下拉列表中可以根據(jù)步驟(3)中指定的設(shè)備系列選擇要使用的設(shè)備。某些系列(如C55)的設(shè)備通用性較強(qiáng),而其他一些系列(如MSP430)的設(shè)備則與具體應(yīng)用密切相關(guān),應(yīng)當(dāng)給予正確設(shè)置(本例中選擇“GenericC55xxDevice”)。圖7-25新建工程“設(shè)置”對(duì)話框在“LinkerCommandFile”下拉列表中選擇“l(fā)nk.cmd”,為
工程分配一個(gè)CCS自帶的簡(jiǎn)易CMD文件。用戶也可以利用“Browse”按鈕來選擇采用自己編寫的CMD文件。若單擊“Finish”按鈕,則完成新的、空的工程的創(chuàng)建。如何向空的工程中添加代碼文件,請(qǐng)參見步驟(8)。若單擊“Next”按鈕,則
進(jìn)入模板選擇對(duì)話框。在本例中,單擊“Next”按鈕,進(jìn)入如圖7-26所示的工程模板“選擇”對(duì)話框。圖7-26工程模板“選擇”對(duì)話框
(7)“Hello”工程的內(nèi)容如圖7-27所示。在工程顯示窗口內(nèi)雙擊“hello.c”,便可查看該文件。圖7-27“Hello”工程
(8)若需向工程中添加源代碼等文件,可采用如下操作:選擇“Project”→“AddFilestoActiveProject…”或“LinkFilestoActiveProject”,在彈出的對(duì)話框中選中欲添加的文件,單擊“打開”按鈕,完成添加?!癆ddFilestoActiveProject…”和“LinkFilestoActiveProject”的區(qū)別是:“AddFilestoActiveProject…”將欲添加的文件拷貝至工程文件夾內(nèi),而“LinkFilestoActiveProject”相當(dāng)于為欲添加的文件建立了一個(gè)快捷方式。因此,對(duì)于在添加后還需要修改的文件,應(yīng)當(dāng)采用“AddFilestoActiveProject…”方式;而對(duì)于只是單純使用而不會(huì)做任何修改的文件,可以采用“LinkFilestoActiveProject”方式。在本例中,由于采用了自帶的模板,因此不需要再添加任何
文件。至此,我們創(chuàng)建了一個(gè)基于“HelloWorld”模板的工程(該工程實(shí)現(xiàn)了采用標(biāo)準(zhǔn)C庫(kù)來顯示一條“HelloWorld”消息的功能。)。所創(chuàng)建的工程將顯示在工程顯示窗口中,在工程上單擊右鍵并在彈出的關(guān)聯(lián)菜單中選擇相應(yīng)的功能,便可對(duì)該工程進(jìn)行管理和設(shè)置。7.3.2工程的管理與設(shè)置
1.工程的管理
CCSv4提供了更為便捷的工程管理方式,在工程顯示窗口中右鍵單擊工程并在關(guān)聯(lián)菜單中選擇“OpenProject”、“CloseProject”按鈕便可打開、關(guān)閉該工程。用戶可以同時(shí)打開多個(gè)工程,但只能有一個(gè)工程處于活動(dòng)狀態(tài)(Active),活動(dòng)狀態(tài)的工程為黑體顯示。右鍵單擊處于打開狀態(tài)的工程并在關(guān)聯(lián)菜單中選擇“SetasActiveProject”選項(xiàng),便可將其設(shè)置為活動(dòng)狀態(tài)。在關(guān)聯(lián)菜單中選擇“Refactor”→“Move”或“Rename”按鈕,便可移動(dòng)工程的存儲(chǔ)位置或重命名。在關(guān)聯(lián)菜單中選擇“Delete”按鈕,將會(huì)彈出如圖7-28所示的刪除工程對(duì)話框。圖7-28刪除工程若選中“Donotdeletecontents”選項(xiàng)并點(diǎn)擊“Yes”按鈕,則只是將工程從工作區(qū)內(nèi)移除并保留磁盤中的代碼文件;若選中“Alsodeletecontentsunder…”選項(xiàng)并點(diǎn)擊“Yes”按鈕,則會(huì)將所有位于該工程文件夾內(nèi)的文件刪除。此處需要說明的是,刪除工程時(shí)并不會(huì)刪除工程中引用的文件(即通過“LinkFilestoActiveProject”方式加入工程的文件),也不會(huì)影響創(chuàng)建該工程時(shí)應(yīng)用的模板(即在上一小節(jié)的步驟(6)中所使用的模板)。
2.工程的設(shè)置
在工程顯示窗口中單擊一個(gè)工程并在關(guān)聯(lián)菜單中選擇“Properties”,將會(huì)出現(xiàn)如圖7-29所示的工程屬性設(shè)置對(duì)話框。在此可以對(duì)工程的各種設(shè)置進(jìn)行修改。較為常用的設(shè)置有:
●頭文件的路徑:“C/C++Build”→“ToolSettings”→
“C5500Compiler”→“IncludeOptions”,再點(diǎn)擊圖標(biāo)“”,便可
添加頭文件的搜索路徑。圖7-29工程屬性設(shè)置●預(yù)定義符號(hào):“C/C++Build”→“ToolSettings”→“C5500Compiler”→“PredefinedSymbols”,再點(diǎn)擊圖標(biāo)“”,便可添加預(yù)定義符號(hào)。
●運(yùn)行模式設(shè)置:“C/C++Build”→“ToolSettings”→“C5500Compiler”→“RuntimeModelOptions”,在此可設(shè)置與運(yùn)行模式相關(guān)的設(shè)置。
有關(guān)工程屬性的更多信息請(qǐng)參考CCS的幫助文件。7.3.3編譯和運(yùn)行程序
1.編譯工程
在對(duì)工程中的源文件進(jìn)行編譯、匯編、鏈接(以下將這一系列過程簡(jiǎn)稱為編譯)后,CCSv4才會(huì)產(chǎn)生可以執(zhí)行的文件(*.out)或庫(kù)函數(shù)(*.lib)。編譯工程的方法為:選擇“Project”→
“RebuildAll”,或點(diǎn)擊工具欄中的“”按鈕。有關(guān)該工程的編譯信息將顯示在控制臺(tái)輸出窗口中。圖7-30為“Hello”工程的編譯信息。圖7-30“Hello”工程的編譯信息若編譯工程的過程中出現(xiàn)“Errors(錯(cuò)誤)”信息,則表示工程沒有成功建立,需要用戶對(duì)源代碼進(jìn)行修改。下面請(qǐng)讀者刪除“hello.c”文件中“printf("HelloWorld!\n");”這一語句的分號(hào)“;”并重新編譯工程,控制臺(tái)輸出和問題顯示窗口中將出現(xiàn)如圖7-31所示的錯(cuò)誤提示信息。雙擊問題顯示窗口中的錯(cuò)誤信息,用戶的光標(biāo)將跳轉(zhuǎn)至出現(xiàn)問題的位置。同時(shí)在工程顯示窗口中,出現(xiàn)錯(cuò)誤的文件上會(huì)出現(xiàn)一個(gè)紅色的小叉,以引起用戶的注意。最后,將此前刪去的分號(hào)恢復(fù),工程便可正確建立。這一過程完成了源代碼的修改。圖7-31錯(cuò)誤提示信息
2.工程目標(biāo)配置文件(TargetConfigurationFile)
CCSv4較早期版本的最大改進(jìn)之一就是引入了“TargetConfigurationFile(目標(biāo)配置文件)”,CCSv4不再像早期版本那樣需要運(yùn)行CCS配置程序,安裝目標(biāo)板驅(qū)動(dòng)卡,運(yùn)行CCS設(shè)置驅(qū)動(dòng)程序,而只需通過給每個(gè)工程分配目標(biāo)配置文件,即可使CCSv4在各個(gè)工程之間(尤其是使用不同目標(biāo)板卡的工程之間)的切換變得更加快速。為工程配置目標(biāo)配置文件的步驟如下:
(1)右鍵單擊工程名稱,并選擇“New”→“TargetConfigurationFile”。
(2)為目標(biāo)配置文件命名。目標(biāo)配置文件的擴(kuò)展名為
.ccxml。如果選中“Usesharedlocation”選項(xiàng),新的目標(biāo)配置文件將在所有的工程之間共享,并存儲(chǔ)在默認(rèn)的CCSv4目錄下;不選中則默認(rèn)為只為當(dāng)前工程所使用并存儲(chǔ)在當(dāng)前工程目錄下。用戶也可以通過按“Browse”按鈕調(diào)整存儲(chǔ)目錄。單擊“Finish”按鈕,將進(jìn)入目標(biāo)配置編輯器。在本例中,將目標(biāo)配置文件命名為“Sim_55xx.ccxml”,不選中“Usesharedlocation”選項(xiàng)。
(3)目標(biāo)配置文件編輯器如圖7-32所示。通過“Connection”下拉列表可以選擇使用軟件仿真器還是硬件仿真器。在本例中,選擇“TexasInstrumentsSimulator”?!癉evice”中包含了與所選連接兼容的所有設(shè)備,上部的輸入框是篩選器,可以幫助用戶篩選欲選擇的設(shè)備。在本例中,選擇“C55xxRev3.0CPUFunctionalSimulator”。點(diǎn)擊右側(cè)的“Save”按鈕,保存目標(biāo)配置文件。至此,目標(biāo)配置文件的設(shè)置已完成。圖7-32目標(biāo)配置文件編輯器每個(gè)工程可以同時(shí)擁有多個(gè)目標(biāo)配置文件,但只能有一個(gè)處于活動(dòng)狀態(tài),在啟動(dòng)調(diào)試器時(shí)CCSv4會(huì)自動(dòng)采用處于活動(dòng)狀態(tài)的目標(biāo)配置文件。要查看系統(tǒng)現(xiàn)有的所有目標(biāo)配置文件,請(qǐng)點(diǎn)擊菜單中的“View”→“TargetConfigurations”。對(duì)軟件仿真器和硬件仿真器的進(jìn)一步說明。軟件仿真器不需要外部硬件,對(duì)于執(zhí)行基本信號(hào)處理算法驗(yàn)證十分有用。硬件仿真器是用于直接對(duì)硬件進(jìn)行調(diào)試的硬件設(shè)備,可以內(nèi)置到開發(fā)板(如DSK、eZdsp、EVM等),也可以采用獨(dú)立形式(如XDS100v2、XDS510USB、XDS560等)。
3.運(yùn)行程序
在菜單中,選擇“Target”→“DebugActiveProject”來啟動(dòng)調(diào)試器。CCSv4會(huì)自動(dòng)將工程產(chǎn)生的可執(zhí)行文件(.out文件)裝載至板卡,并運(yùn)行至main函數(shù)的開始,界面也將轉(zhuǎn)入如圖7-33所示的調(diào)試視角對(duì)話框——專為調(diào)試設(shè)計(jì)的一組專用窗口和菜單。圖7-33調(diào)試視角對(duì)話框
調(diào)試視角對(duì)話框默認(rèn)打開的窗口有“Debug”、“Local”、“Watch”和源代碼編輯器。其中“Debug”窗口顯示了每個(gè)芯片核的配置和調(diào)用堆棧?!癓ocal”和“Watch”窗口分別用來顯示本地變量和用戶準(zhǔn)備觀察的變量。源代碼編輯器方便用戶瀏覽、編輯源文件。如果用戶需要查看更多信息,可以選擇如下操作:
(1)選擇“View”→“Disassembly”,顯示反匯編代碼。
(2)選擇“View”→“Memory”,顯示內(nèi)存信息。
(3)選擇“View”→“Registers”,顯示寄存器信息。
(4)選擇“View”→“Breakpoints”,顯示斷點(diǎn)管理器。
準(zhǔn)備運(yùn)行或調(diào)試程序,可以選擇“Target”中的選項(xiàng)或單擊調(diào)試窗口中工具欄上的圖標(biāo)。常用的圖標(biāo)及功能如下::“Run”運(yùn)行程序。當(dāng)程序正在運(yùn)行時(shí),該按鈕為灰色。通過組合按鈕,還可以選擇“FreeRun”選項(xiàng),這種模式的運(yùn)行將無視所有斷點(diǎn)。在采用軟件仿真器時(shí)該選項(xiàng)為灰色。
:“Halt”暫停程序。當(dāng)程序處于非運(yùn)行狀態(tài)時(shí),該按鈕為灰色。
:“TerminateAll”終止所有程序,終止所有程序的運(yùn)行、斷開與板卡的連接并退出調(diào)試視角。通過組合按鈕,還可以選擇其他選項(xiàng)。:用于調(diào)試時(shí)使用的幾種常用單步運(yùn)行。
在本例中,運(yùn)行Hello程序,可在“Console”窗口中看到“HelloWorld!”消息,其運(yùn)行結(jié)果如圖7-34所示。圖7-34Hello程序運(yùn)行結(jié)果7.3.4導(dǎo)入CCS早期版本的工程
本節(jié)將介紹如何在CCSv4中導(dǎo)入建立于早期CCS之上的工程,并以導(dǎo)入volume工程為示例(該工程可以在老版本的CCS的目錄中找到,路徑為?…\tutorial\sim55xx\volume1)。在CCSv4的工作目錄內(nèi)設(shè)有一個(gè)隱藏文件夾“.metadata”,用來記錄該工作目錄內(nèi)的各個(gè)工程的信息。因此,非常不建議直接將工程文件復(fù)制進(jìn)CCSv4的工作目錄內(nèi)。CCSv4提供了兩個(gè)導(dǎo)入工程的工具“ImportExistingCCS/CCEEclipseProject”和“ImportLegacyCCSv3.3Project”。前者用來導(dǎo)入由CCSv4或CCE建立的工程;后者用來導(dǎo)入由CCS早期版本建立的工程。由于兩者非常類似,因此僅以后者作為示例。導(dǎo)入CCSv3.3工程的步驟如下:
(1)選擇“Project”→“ImportLegacyCCSv3.3Project”,彈出如圖7-35所示的導(dǎo)入單個(gè)工程對(duì)話框。
(2)選中“Selectaprojectfile”選項(xiàng)并用“Browse”按鈕選擇要轉(zhuǎn)換的.pjt文件;也可選中“Selectsearch-directory”選項(xiàng)并用“Browse”按鈕選擇包含多個(gè)工程的文件夾以批量導(dǎo)入。選中“Copyprojectsintoworkspace”選項(xiàng)可將工程復(fù)制到CCSv4的工作目錄中,這樣做起到了保護(hù)原始工程的作用。
對(duì)于一些用相對(duì)路徑引用了其他文件的工程,則應(yīng)選中“Keeporiginallocationforeachproject”選項(xiàng),以保持其相對(duì)路徑不變。單擊“Next”按鈕。圖7-35導(dǎo)入單個(gè)工程
(3)在窗口中選擇要使用的代碼生成工具版本,使用其提供的默認(rèn)值。單擊“Next”按鈕。
(4)指定要使用的DSP/BIOS版本,使用其提供的默認(rèn)值。單擊“Next”按鈕。
(5)設(shè)置公共根目錄以解決工程中引用外部資源的問題。在本例中,不用設(shè)置,直接點(diǎn)擊“Finish”按鈕,完成導(dǎo)入。
(6)在有些時(shí)候,導(dǎo)入并不是完全正確的。CCSv4會(huì)將導(dǎo)入過程中產(chǎn)生的問題記錄在名為“migration.log”的文件中,并顯示如圖7-36所示的導(dǎo)入警告提示框。用戶可以查看該文件以了解導(dǎo)入過程中出現(xiàn)的問題(這些問題不一定都是致命錯(cuò)誤)。圖7-36導(dǎo)入警告至此,完成了工程的導(dǎo)入,導(dǎo)入volume工程的窗口如
7-37所示。圖7-37導(dǎo)入volume工程的窗口按前幾小節(jié)所述的方法編譯volume工程,為其配置目標(biāo)
配置文件(依舊選擇軟件仿真器),轉(zhuǎn)入volume工程的調(diào)試視角,如圖7-38所示。圖7-38volume工程的調(diào)試視角7.3.5使用斷點(diǎn)和觀察窗口
當(dāng)開發(fā)或測(cè)試程序時(shí),經(jīng)常需要在程序執(zhí)行過程中檢查變量的值。本節(jié)中,將使用斷點(diǎn)和觀察窗口觀察這些變量的值。程序執(zhí)行到斷點(diǎn)后,還可以使用單步執(zhí)行功能。在欲加斷點(diǎn)的一行程序上單擊右鍵,選擇“NewBreakpoint”
→“Breakpoint”,在此行的最左側(cè)便會(huì)出現(xiàn)設(shè)置斷點(diǎn)的圖標(biāo)“”。雙擊該圖標(biāo)便可取消此處斷點(diǎn)。用戶還可以通過斷點(diǎn)管理窗口(選擇“View”→“Breakpoints”)對(duì)程序中所有的斷點(diǎn)進(jìn)行管理。在調(diào)試視角中,觀察窗口是默認(rèn)打開的,如果沒有出現(xiàn),可以選擇菜單中的“View”→“Watch”以打開觀察窗口。在觀察窗口中單擊“<new>”欄,光標(biāo)變?yōu)檩斎霠顟B(tài),便可輸入想要觀察的變量名。按回車鍵確定后,“Value”欄內(nèi)便會(huì)顯示該變量的值。
在以volume工程作為示例向讀者演示之前,先來了解一下volume工程的主要內(nèi)容?!癉ebug”視角下的代碼顯示窗口將顯示正處于調(diào)試狀態(tài)的源代碼“volume.c”。注意“volume.c”文件中的以下幾個(gè)部分:
●主函數(shù)輸出一條消息后,應(yīng)用程序處于無限循環(huán)狀態(tài)。在該循環(huán)中,主函數(shù)調(diào)用dataIO和processing函數(shù)。
●?processing函數(shù)將增益與輸入緩沖中的各數(shù)據(jù)相乘,
并且將結(jié)果數(shù)據(jù)存入輸出緩沖區(qū)中,同時(shí)也調(diào)用匯編Load
子程序。該子程序占用的指令周期取決于傳給它的processingLoad值。●?dataIO函數(shù)是一個(gè)空函數(shù),它除了有返回作用以外不執(zhí)行任何操作。這里使用CCS中的斷點(diǎn)功能把主機(jī)文件中的數(shù)據(jù)讀取到inp_buffer緩沖區(qū)中,而不是利用C程序直接執(zhí)行輸入/輸出操作?!皏olume.c”文件清單如下:
#include<stdio.h>#include“volume.h”
/*Globaldeclarations*/
intinp_buffer[BUFSIZE];
/*processingdatabuffers*/
intout_buffer[BUFSIZE];intgain=MINGAIN;
/*volumecontrolvariable*/
unsignedintprocessingLoad=BASELOAD;
/*processingload*/struct
PARMSstr=
{
2934,
9432,
213,
9432,
&str
};/*Functions*/
externvoidload(unsignedintloadValue);staticintprocessing
(int*input,int*output);
staticvoiddataIO(void);
/*========main========*/voidmain(?)
{
int*input=&inp_buffer[0];
int*output=&out_buffer[0];puts(“volumeexample
started\n”);
/*loopforever*/
while(TRUE)
{/*ReadusingaProbePointconnectedtoahostfile.*/
/*Writeoutputtoagraphconnectedthroughaprobe-point.*/
dataIO(?);
#ifdefFILEIO
puts(“beginprocessing”);
#endif/*applygain*/
processing(input,output);
}
}
/*========processing========*
*FUNCTION:applysignalprocessingtransformtoinputsignal.
*PARAMETERS:addressofinputandoutputbuffers.
*RETURNVALUE:TRUE.*/
staticintprocessing(int*input,int*output)
{
intsize=BUFSIZE;
while(size--){
*output++=*input++*gain;
}/*additionalprocessingload*/
load(processingLoad);return(TRUE);
}/*========dataIO========*
*FUNCTION:readinputsignalandwriteoutputsignal.
*PARAMETERS:none.
*RETURNVALUE:none.*/
staticvoiddataIO()
{
/*dodataI/O*/return;
}
在volume.c中,設(shè)置斷點(diǎn)的具體步驟如下:
(1)在main函數(shù)中的“dataIO();”語句設(shè)置斷點(diǎn)。
(2)在“processing(input,output);”這一行設(shè)置斷點(diǎn)。
(3)在觀察窗口中加入“gain”和“str”兩個(gè)變量,如圖7-39
所示。圖7-39觀察窗口示例
(4)運(yùn)行程序。由于設(shè)置了斷點(diǎn),因此程序會(huì)停在“dataIO();”這一行。
(5)若單擊“”(StepInto)按鈕或按“F5”鍵,則執(zhí)行至函數(shù)dataIO內(nèi);若單擊“”(StepOver)按鈕或按“F6”鍵,則執(zhí)行到函數(shù)dataIO之后。
(6)若用戶想修改某一變量的值,可以在觀察窗口內(nèi)單擊變量對(duì)應(yīng)的“Value”選項(xiàng),光標(biāo)變?yōu)檩斎霠顟B(tài),便可修改該變量的值。值發(fā)生改變的變量將以紅色字體顯示。7.3.6為斷點(diǎn)配置數(shù)據(jù)文件和使用圖形顯示工具
(1)在“Breakpoints”窗口中,單擊欲關(guān)聯(lián)的斷點(diǎn)的“Action”欄(默認(rèn)值為RemainHalted),選擇“ReadDatafromFile”,如圖7-40所示。圖7-40選擇斷點(diǎn)動(dòng)作
(2)在圖7-41所示的從文件讀取數(shù)據(jù)對(duì)話框中,從“File”中選擇“sine.dat”文件。選中“WrapAround”選項(xiàng)(選擇該項(xiàng)表示數(shù)據(jù)將循環(huán)讀入)。在“StartAddress”中填入“inp_buffer”,在“Length”中填入“100”,單擊“OK”,設(shè)置完畢。這樣,每當(dāng)
程序執(zhí)行到該斷點(diǎn)處,就自動(dòng)將?.dat文件中的數(shù)據(jù)搬入inp_buffer數(shù)組中,然后繼續(xù)運(yùn)行程序。圖7-41從文件讀取數(shù)據(jù)對(duì)話框如果現(xiàn)在就運(yùn)行該程序,將不會(huì)看到更多的關(guān)于程序如
何運(yùn)行的信息。雖然可以在觀察窗口中設(shè)置“inp_buffer”和“out_buffer”兩個(gè)變量,但這種觀察是按數(shù)字形式顯示的,并不直觀。
CCSv4提供了多種用圖形顯示數(shù)據(jù)的方法,通過下面的
操作將會(huì)看到一個(gè)基于時(shí)間繪制的信號(hào)波形。添加圖形的步
驟如下:
(1)選擇菜單中的“Tools”→“Graph”→“SingleTime”,彈出如圖7-42所示的圖形屬性對(duì)話框。圖7-42圖形屬性對(duì)話框
(2)將對(duì)話框中的“AcquisitionBufferSize”設(shè)置為“100”,“DSPDataType”設(shè)置為“16bitsignedinteger”,“StartAddress”設(shè)置為“out_buffer”,點(diǎn)擊“OK”按鈕,完成設(shè)置。
(3)在程序運(yùn)行時(shí),圖形顯示工具并不會(huì)自動(dòng)刷新,因此我們需要另外設(shè)置一個(gè)斷點(diǎn)來更新顯示。在斷點(diǎn)管理窗口中,將第二個(gè)斷點(diǎn)的動(dòng)作設(shè)置為“RefreshAllWindows”。請(qǐng)注意,圖形更新時(shí)所傳輸?shù)臄?shù)據(jù)可能會(huì)影響目標(biāo)硬件的實(shí)時(shí)操作。
(4)運(yùn)行程序,得到輸出波形,如圖7-43所示。圖7-43輸出波形讀者可以在觀察窗口中將變量“gain”的值設(shè)為“4”,便可觀察到輸出波形放大了4倍,輸出窗口如圖7-44所示。圖7-44輸出窗口7.3.7GEL文件的使用
具體操作步驟如下:
(1)選擇“Tools”→“GELFiles”,在彈出的界面右側(cè)空白處單擊右鍵,如圖7-45所示。
(2)選擇“LoadGEL”,在彈出的對(duì)話框中選中“volume.gel”,并單擊打開它。圖7-45GELFiles
(3)選擇“Scripts”→
“ApplicationControl”→
“Gain”,彈出如圖7-46所示的增益調(diào)節(jié)窗口。該選項(xiàng)是在上步加載GEL文件時(shí)自動(dòng)增加的。圖7-46增益調(diào)節(jié)窗口
(4)如果程序已經(jīng)暫停,單擊工具欄按鈕“”,重新開始運(yùn)行程序。注意,即使在彈出的小窗口中顯示增益為“0”,變量“gain”的當(dāng)前值也并未改變,只有小窗口中的滑塊移動(dòng)時(shí)才影響增益的值。
(5)在增益窗口中移動(dòng)滑塊來改變?cè)鲆娴拇笮?,則圖形顯示窗口中的正弦波形的幅度也隨之改變。此外,無論任何時(shí)候移動(dòng)滑塊,在觀察窗口中的變量“gain”的值都將會(huì)隨之改變。
(6)單擊工具欄按鈕“”或按“Shift+F8”鍵暫停程序運(yùn)行。
(7)為了了解GainGEL函數(shù)是如何運(yùn)行的,雙擊打開“volume.gel”文件,查看其內(nèi)容,如下所示:7.4TMS320VC5505EVM簡(jiǎn)介
7.4.15505EVM概述
5505EVM是一個(gè)獨(dú)立的開發(fā)平臺(tái),用戶可以用它對(duì)TMS320VC5505DSP進(jìn)行評(píng)估和開發(fā),也可以作為TMS320-VC5505DSP硬件設(shè)計(jì)的參考。在SpectrumDigital公司的官方網(wǎng)站上,提供了該板卡相關(guān)信息的下載。
5505EVM的主要特點(diǎn)如下:
●一片100?MHzTMS320VC5505DSP。
●可配置的供電電源。
●一片立體聲編解碼芯片——TLV320AIC3254。
●?MMC/SD連接器。
●?I2CEEPROM(256?kb)和SPIEEPROM(256?kb)。
●?EMIF、I2S、I2C、UART、SPI的擴(kuò)展接口。●外部JTAG仿真接口。
●內(nèi)置JTAG仿真器,通過USB與主機(jī)相連。
●彩色LCD。
●十個(gè)可供定義的按鍵。
5505EVM套件包括CCS安裝光盤、5505EVM板卡、使用說明、USB連接線、配套電源等,如圖7-47所示。圖7-475505EVM套件7.4.25505EVM的軟硬件資源
1.軟件資源
(1)在套件的CD光盤中包含了TI公司推出的用于開發(fā)TMS320VC5505DSP的CCSv3.3。
(2)在SpectrumDigital公司的官方網(wǎng)站上提供了諸如使用說明、電氣原理圖、原料表、測(cè)試代碼和演示程序的下載(/boards/evm5505/revd/)。
(3)在5505EVM板卡中內(nèi)置了一個(gè)系統(tǒng)演示程序,只要用戶沒有重新配置過BootLoader,在重啟板卡后就會(huì)自動(dòng)運(yùn)行演示程序。在LCD上會(huì)顯示該演示程序的使用方法,這里不再贅述。
2.硬件資源
(1)TMS320VC5505DSP。該DSP具有高效率、低功耗的特點(diǎn),適合應(yīng)用于便攜式音頻設(shè)備、無線音頻設(shè)備、工業(yè)控制、軟件無線電、指紋識(shí)別以及醫(yī)療設(shè)備等領(lǐng)域。其內(nèi)部主要器件有C55xCPU及片上存儲(chǔ)器、FFT運(yùn)算硬件加速器、4個(gè)DMA控制器、外部存儲(chǔ)器接口、功耗管理模塊以及I2S、I2C、SPI、UART、ADC等外設(shè)。其功能框圖如圖7-48所示。圖7-48TMS320VC5505DSP功能框圖
(2)?LCD。5505EVM套件自帶了一塊128?×?128像素的彩色LCD,方便用戶實(shí)現(xiàn)可視化的輸出。
(3)?AIC3254。AIC3254提供了3路立體聲輸入和2路立體聲輸出,A/D采樣和D/A轉(zhuǎn)換的頻率從8?kHz到192?kHz可調(diào)。其內(nèi)部還有兩個(gè)可編程的miniDSP用來對(duì)音頻數(shù)據(jù)進(jìn)行簡(jiǎn)單的處理。AIC3254還具有低功耗的特點(diǎn),使其更適合在便攜設(shè)備上使用。
(4)按鍵。在5505EVM板卡上向用戶提供了10個(gè)可自定義的按鍵,可作為簡(jiǎn)單的輸入設(shè)備。若用戶需要更高級(jí)的輸入設(shè)備,5505EVM套件可擴(kuò)展接入觸摸屏。關(guān)于觸摸屏的信息請(qǐng)參考TI公司提供的文檔(詳見參考文獻(xiàn)[42])。
3.初次使用5505EVM的若干事項(xiàng)
5505EVM上的各種跳線在出廠時(shí)均已正確設(shè)置,在使用中并不需要對(duì)其進(jìn)行更改。有關(guān)跳線設(shè)置的更多信息請(qǐng)參見套件內(nèi)自帶的說明文檔(詳見參考文獻(xiàn)[39])。
將套件內(nèi)自帶的電源與板卡相連(為確保安全,請(qǐng)?jiān)谕娗安榭措娫催m配器是否支持220V電壓),通電后,打開板卡上的電源開關(guān),5505EVM板卡會(huì)自動(dòng)加載演示程序。若要對(duì)板卡進(jìn)行開發(fā)與調(diào)試,需要內(nèi)置JTAG仿真器,通過USB與主機(jī)相連。板卡上的USB端口在圖7-50中標(biāo)出。對(duì)于不同CCS版本的用戶請(qǐng)參考以下說明。
(1)?CCSv3.3用戶:先不要將板卡與主機(jī)相連。套件自帶的CD中包含5505EVM的驅(qū)動(dòng),按照套件中的說明文檔安裝驅(qū)動(dòng),安裝程序會(huì)自動(dòng)設(shè)置好CCS。在安裝完成后,將板卡與電腦相連,打開電源開關(guān),運(yùn)行CCSv3.3即可。
(2)?CCSv4用戶:CCSv4中包含了該板卡的驅(qū)動(dòng)信息,因此不需要額外再安裝了。將板卡與電腦主機(jī)相連,打開電源開關(guān),會(huì)彈出“發(fā)現(xiàn)新硬件”的窗口。選擇“自動(dòng)安裝軟件”并點(diǎn)擊“下一步”按鈕便可完成驅(qū)動(dòng)的安裝。在驅(qū)動(dòng)安裝完成后,運(yùn)行CCSv4。適用于5505EVM的目標(biāo)配置文件的設(shè)置如圖7-49所示。圖7-495505EVM的目標(biāo)配置文件7.4.3使用5505EVM的音頻處理示例
該示例實(shí)現(xiàn)的功能有:
(1)在LCD上顯示當(dāng)前的系統(tǒng)運(yùn)行狀態(tài)和左右聲道的音量。
(2)使用按鍵來切換系統(tǒng)運(yùn)行狀態(tài)、改變音量大小。
(3)對(duì)輸入音頻進(jìn)行采樣并乘以音量增益后再送回輸出端。
1.板卡的連接
將電源線接入板卡(暫不打開電源開關(guān));用套件內(nèi)自帶的USB連接線將板卡與電腦主機(jī)相連;用套件內(nèi)自帶的3.5mm立體聲音頻連接線將板卡與電腦主機(jī)相連,將線的一端插入板卡端名為“STEREOIN1”的插口,另一端插入電腦主機(jī)端的耳機(jī)輸出口;將立體聲耳機(jī)插入板卡上名為“HEADPHONE”的插口。至此板卡的連接已經(jīng)完成,可以打開電源開關(guān)。5505EVM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 事業(yè)編土木面試題目及答案
- 化學(xué)選修四出題目及答案
- 養(yǎng)老院投訴處理制度
- 歪頭山考試題目及答案
- 疾控編制考試題目及答案
- 北宋休沐制度
- 酒店安全生產(chǎn)制度
- 道路運(yùn)輸事故統(tǒng)計(jì)報(bào)告制度
- 對(duì)5g的看法題目及答案
- 2026學(xué)年生物八八年級(jí)下冊(cè)(北師大版)同步作業(yè)
- 2026國(guó)家國(guó)防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫(kù)及答案詳解一套
- 2026年湖南工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)含答案解析
- 2026年益陽醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)技能筆試參考題庫(kù)含答案解析
- 中央經(jīng)濟(jì)工作會(huì)議解讀:職業(yè)教育發(fā)展強(qiáng)化
- 兒科肺炎的常見并發(fā)癥及護(hù)理措施
- 貴州省遵義市2023-2024學(xué)年七年級(jí)上學(xué)期期末英語試題(含答案)
- 光伏支架維護(hù)施工方案
- 2026年各地名校高三語文聯(lián)考試題匯編之語言文字運(yùn)用含答案
- 學(xué)堂在線 雨課堂 學(xué)堂云 西方哲學(xué)精神探源 期末考試答案
- 中醫(yī)學(xué)基礎(chǔ)-緒論課件
- GB/T 9119-2000平面、突面板式平焊鋼制管法蘭
評(píng)論
0/150
提交評(píng)論