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