DSP技術(shù)與應(yīng)用實(shí)驗(yàn)指導(dǎo)_第1頁
DSP技術(shù)與應(yīng)用實(shí)驗(yàn)指導(dǎo)_第2頁
DSP技術(shù)與應(yīng)用實(shí)驗(yàn)指導(dǎo)_第3頁
DSP技術(shù)與應(yīng)用實(shí)驗(yàn)指導(dǎo)_第4頁
DSP技術(shù)與應(yīng)用實(shí)驗(yàn)指導(dǎo)_第5頁
已閱讀5頁,還剩258頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

DSP技術(shù)與應(yīng)用實(shí)驗(yàn)指導(dǎo)目錄\h第一部分C5000/2000DSP實(shí)驗(yàn)箱介紹\h第一章開發(fā)系統(tǒng)使用說明\h1.1DSP芯片簡介\h1.2TMS320C54X的主要特性\h1.3TMS320C54X的結(jié)構(gòu)\h1.3.1結(jié)構(gòu)概述\h1.3.2總線結(jié)構(gòu)\h1.4中央處理單元\h1.4.1算術(shù)邏輯單元\h1.4.2累加器\h1.4.3桶形移位器\h1.4.4乘法器/加法器單元\h1.4.5比較、選擇和存儲(chǔ)單元\h1.4.6指數(shù)編碼器\h1.4.7CPU狀態(tài)和控制寄存器\h1.5中央存儲(chǔ)器組織\h1.5.1片內(nèi)ROM\h1.5.2片內(nèi)雙訪問RAM\h1.5.3片內(nèi)單訪問RAM\h1.5.4存儲(chǔ)器映射寄存器\h1.6C54X芯片外部設(shè)備\h1.6.1通用I/O引腳\h1.6.2軟件可編程等待狀態(tài)發(fā)生器\h1.6.3可編程塊切換邏輯\h1.6.4主機(jī)接口\h1.6.5硬件定時(shí)器\h1.6.6時(shí)鐘發(fā)生器\h1.6.7串口\h1.7外部總線接口\h1.8IEEE1149.1標(biāo)準(zhǔn)掃描邏輯\h1.9TMS320C54X引腳和信號(hào)說明\h1.10實(shí)驗(yàn)開發(fā)系統(tǒng)使用說明\h1.11LF2407AEVM板簡介\h第二章CCS軟件的使用\h2.1CCS50001.2的安裝與配置\h2.2CCS50001.2的使用方法\h2.2.1CCS文件名介紹\h2.2.2編寫一個(gè)簡單的程序\h2.2.3CCS軟件應(yīng)用和DSP編程\h2.2.4CCS應(yīng)用詳解\h2.2.5建立工程文件\h2.2.6調(diào)試\h2.2.7載入可執(zhí)行程序\h2.2.8使用反匯編工具\(yùn)h2.2.9程序執(zhí)行控制\h2.2.10斷點(diǎn)設(shè)置\h2.2.11探針斷點(diǎn)\h2.2.12內(nèi)存、寄存器和變量操作\h2.2.13數(shù)據(jù)輸入與結(jié)果分析\h2.2.14載入/保存數(shù)據(jù)\h2.2.15外部文件輸入/輸出\h2.2.16數(shù)據(jù)文件格式\h2.2.17利用圖形窗口分析數(shù)據(jù)\h2.2.18評(píng)估代碼性能\h2.2.19測量時(shí)鐘\h2.2.20性能測試點(diǎn)\h2.2.21查看和定義內(nèi)存映射\h2.2.22利用GEL定義內(nèi)存映射\h2.2.23通用擴(kuò)展語言GEL\h2.2.24GEL函數(shù)調(diào)用\h2.2.25GEL語法\h第二部分C5000/2000DSP實(shí)驗(yàn)項(xiàng)目\h第三章硬件開發(fā)實(shí)驗(yàn)\h實(shí)驗(yàn)一常用指令實(shí)驗(yàn)\h實(shí)驗(yàn)二定時(shí)器實(shí)驗(yàn)I\h實(shí)驗(yàn)三定時(shí)器實(shí)驗(yàn)Ⅱ\h實(shí)驗(yàn)四外部RAM存儲(chǔ)實(shí)驗(yàn)\h實(shí)驗(yàn)五I/O口實(shí)驗(yàn)\h實(shí)驗(yàn)六串口與PC機(jī)通信實(shí)驗(yàn)\h實(shí)驗(yàn)七主機(jī)接口(HPI)實(shí)驗(yàn)\h實(shí)驗(yàn)八A/D轉(zhuǎn)換和D/A轉(zhuǎn)換實(shí)驗(yàn)\h第四章軟件算法實(shí)驗(yàn)\h實(shí)驗(yàn)九基本算術(shù)運(yùn)算實(shí)驗(yàn)\h實(shí)驗(yàn)十卷積(Convolve)算法實(shí)驗(yàn)\h實(shí)驗(yàn)十一相關(guān)(Correlation)算法實(shí)驗(yàn)\h實(shí)驗(yàn)十二快速傅里葉變換(FFT)算法實(shí)驗(yàn)\h實(shí)驗(yàn)十三離散余弦變換(DCT)算法實(shí)驗(yàn)\h實(shí)驗(yàn)十四有限沖擊響應(yīng)濾波器(FIR)算法實(shí)驗(yàn)\h實(shí)驗(yàn)十五無限沖擊響應(yīng)濾波器(IIR)算法實(shí)驗(yàn)\h實(shí)驗(yàn)十六自適應(yīng)濾波器LMS算法實(shí)驗(yàn)\h實(shí)驗(yàn)十七語音編碼/解碼(G711編碼/解碼器)\h第五章擴(kuò)展性實(shí)驗(yàn)\h實(shí)驗(yàn)十八軟件無線電技術(shù)實(shí)驗(yàn)\h實(shí)驗(yàn)十九任意波形發(fā)生器實(shí)驗(yàn)\h實(shí)驗(yàn)二十語音錄放實(shí)驗(yàn)\h實(shí)驗(yàn)二十一液晶顯示屏使用實(shí)驗(yàn)\h實(shí)驗(yàn)二十二BOOTLOAD實(shí)驗(yàn)\h實(shí)驗(yàn)二十三繼電器實(shí)驗(yàn)\h實(shí)驗(yàn)二十四交通燈實(shí)驗(yàn)\h實(shí)驗(yàn)二十五步進(jìn)電動(dòng)機(jī)實(shí)驗(yàn)\h實(shí)驗(yàn)二十六直流電動(dòng)機(jī)實(shí)驗(yàn)\h實(shí)驗(yàn)二十七中文點(diǎn)陣液晶實(shí)驗(yàn)\h第六章C2000DSP實(shí)驗(yàn)項(xiàng)目\h實(shí)驗(yàn)一CCC2000的安裝與設(shè)置\h實(shí)驗(yàn)二I/O口基本操作實(shí)驗(yàn)\h實(shí)驗(yàn)三定時(shí)器操作實(shí)驗(yàn)\h實(shí)驗(yàn)四通用定時(shí)器的比較操作實(shí)驗(yàn)\h實(shí)驗(yàn)五帶死區(qū)的PWM輸出實(shí)驗(yàn)\h實(shí)驗(yàn)六ADC采樣實(shí)驗(yàn)\h實(shí)驗(yàn)七SPI接口的DA轉(zhuǎn)換實(shí)驗(yàn)\h實(shí)驗(yàn)八利用SPI對(duì)外部EEPROM讀寫訪問\h實(shí)驗(yàn)九SCI異步串行通信實(shí)驗(yàn)\h實(shí)驗(yàn)十CAN實(shí)驗(yàn)\h實(shí)驗(yàn)十一Flash燒寫實(shí)驗(yàn)\h第七章電動(dòng)機(jī)控制實(shí)驗(yàn)\h實(shí)驗(yàn)十二直流電動(dòng)機(jī)測轉(zhuǎn)向?qū)嶒?yàn)\h實(shí)驗(yàn)十三直流電動(dòng)機(jī)測轉(zhuǎn)速和PID調(diào)速實(shí)驗(yàn)\h實(shí)驗(yàn)十四交流電動(dòng)機(jī)測速和PID調(diào)速實(shí)驗(yàn)\h附錄管腳分配表\h第一部分C5000/2000DSP實(shí)驗(yàn)箱介紹\h第一章開發(fā)系統(tǒng)使用說明本章主要對(duì)開發(fā)系統(tǒng)選用的DSP芯片及開發(fā)系統(tǒng)的硬件使用方法進(jìn)行介紹,使用戶對(duì)本產(chǎn)品有一個(gè)具體深入的了解。\h1.1DSP芯片簡介本產(chǎn)品選用的是TI公司的TMS320C54X系列的DSP芯片,TMS320C5X是TI公司的第五代產(chǎn)品,是繼TMS320C1X和TMS320C2X之后的第三代16位定點(diǎn)DSP處理器。TMS320C5X的性能達(dá)到20~50MIPS,在典型應(yīng)用中能耗降至2.35mA/MIPS。它的核心中央處理器(CPU)以TMS320C25的核心CPU為基礎(chǔ),增強(qiáng)型結(jié)構(gòu)大幅度地提高了整體性能。TMS320C5X工作速度是TMS320C25的2倍以上,對(duì)于TMS320C1X和TMS320C2X具有源代碼向下兼容特性。這種兼容性保留了過去開發(fā)的軟件,便于系統(tǒng)升級(jí)到更高性能的DSP系統(tǒng)。TMS320C5X系列有TMS320C50/C51/C52/C53/C54等多種產(chǎn)品,它們的主要區(qū)別是片內(nèi)RAM、ROM等資源的多少。其中,TMS320C54X具有以下優(yōu)點(diǎn)。?改進(jìn)的哈佛結(jié)構(gòu)。圍繞1組程序總線、3組數(shù)據(jù)總線和4組地址總線建立的哈佛結(jié)構(gòu),使得性能和多功能性都得以提高。?具有高度并行性和專用硬件邏輯的CPU設(shè)計(jì),使芯片性能大大提高。?高度專業(yè)化指令集,更適用于快捷算法的實(shí)現(xiàn)和高級(jí)語言編程的優(yōu)化。?模塊化結(jié)構(gòu)的設(shè)計(jì),使派生器件得到了更快的發(fā)展。?最新的IC制造工藝,提高了芯片性能,降低了功耗。?最新的靜態(tài)設(shè)計(jì)技術(shù)使得芯片具有更低的功耗和更強(qiáng)的輻射能力。這些使得C54X特別適用于遠(yuǎn)程通信實(shí)時(shí)嵌入式應(yīng)用的需要。\h1.2TMS320C54X的主要特性?多總線結(jié)構(gòu),3組16bit數(shù)據(jù)總線和1組程序總線。?40bit算術(shù)邏輯單元(ALU),包括一個(gè)40bit桶形移位器和兩個(gè)獨(dú)立的40bit累加器。?17bit×17bit并行乘法器,連接一個(gè)40bit的專用加法器,可用來進(jìn)行非流水單周期乘/加(MAC)運(yùn)算。?比較、選擇和存儲(chǔ)單元(CSSU)用于Viterbi運(yùn)算器的加/比較/選擇。?指數(shù)編碼器在一個(gè)周期里計(jì)算一個(gè)40bit累加器的指數(shù)值。?兩個(gè)地址發(fā)生器中有8個(gè)輔助寄存器和兩個(gè)輔助寄存器算術(shù)單元(ARAUs)。?數(shù)據(jù)總線具有總線保持特性。?C548具有擴(kuò)展尋址方式,最大可尋址擴(kuò)展空間為8M×16bit。?可訪問的存儲(chǔ)器空間最大可為196K×16bit(64K程序存儲(chǔ)器,64K數(shù)據(jù)存儲(chǔ)器和64KI/O存儲(chǔ)器)。?支持單指令循環(huán)和塊循環(huán)。?存儲(chǔ)塊移動(dòng)指令提供了更好的程序和數(shù)據(jù)管理。?支持32bit長操作數(shù)指令,支持兩個(gè)或3個(gè)操作數(shù)讀指令,支持并行存儲(chǔ)和并行裝入的算術(shù)指令,支持條件存儲(chǔ)指令及中斷快速返回指令。?軟件可編程等待狀態(tài)發(fā)生器和可編程的存儲(chǔ)單元轉(zhuǎn)換。?連接內(nèi)部振蕩器或外部時(shí)鐘源的鎖相環(huán)(PLL)發(fā)生器。?支持8bit或16bit傳送的全雙工串口(C541、LC541、LC545和LC546)。?時(shí)分多用(TDM)串口(C542、LC542、LC543、LC548)。?緩沖串口(BSP)(C542、LC542、LC543、LC545、LC546和LC548)。?8bit并行主機(jī)接口(HPI)(C542、LC542、LC545和LC548)。?1個(gè)16bit定時(shí)器。?外部輸入/輸出(XIO)關(guān)閉控制,禁止外部數(shù)據(jù)總線、地址總線和控制總線。?片內(nèi)基于掃描的仿真邏輯,JTAG邊界掃描邏輯(IEEE1149.1)。?單周期定點(diǎn)指令執(zhí)行時(shí)間可達(dá)15ns。\h1.3TMS320C54X的結(jié)構(gòu)\h1.3.1結(jié)構(gòu)概述TMS320C54X是16bit定點(diǎn)DSP,采用改進(jìn)的哈佛結(jié)構(gòu)。C54X有1組程序總線和3組數(shù)據(jù)總線,高度并行性的算術(shù)邏輯單元(ALU),專用硬件邏輯,片內(nèi)存儲(chǔ)器,片內(nèi)外設(shè)和高度專業(yè)化的指令集,使該芯片速度更高,操作更靈活。程序和數(shù)據(jù)空間分開允許同時(shí)對(duì)程序指令和數(shù)據(jù)進(jìn)行訪問,提供了很高的并行度??梢栽谝粋€(gè)周期里完成兩個(gè)讀和一個(gè)寫操作。因此,并行存儲(chǔ)指令和專用指令可以在這種結(jié)構(gòu)里得到充分利用。另外,數(shù)據(jù)可以在數(shù)據(jù)空間和程序空間之間傳送。并行性支持一系列算術(shù)、邏輯和位處理運(yùn)算,它們都能在一個(gè)機(jī)器周期里完成。另外,C54X具有管理中斷、循環(huán)運(yùn)算和功能調(diào)用的控制結(jié)構(gòu)。\h1.3.2總線結(jié)構(gòu)C54X的結(jié)構(gòu)是圍繞8組主要的16bit總線(4組程序/數(shù)據(jù)總線,4組地址總線)建立的。?程序總線(PB)傳送從程序存儲(chǔ)器來的指令碼和立即數(shù)。?3組數(shù)據(jù)總線(CB、DB和EB)連接各種元器件,如CPU、數(shù)據(jù)地址產(chǎn)生邏輯、程序地址產(chǎn)生邏輯、片內(nèi)外設(shè)和數(shù)據(jù)存儲(chǔ)器。CB和DB總線傳送從數(shù)據(jù)存儲(chǔ)器讀出的操作數(shù)。EB總線傳送寫入到存儲(chǔ)器中的數(shù)據(jù)。?4組地址總線(PAB、CAB、DAB和EAB)傳送指令所需要的地址。\h1.4中央處理單元C54X/LC54X芯片的中央處理單元(CPU)包括以下內(nèi)容。?1個(gè)40bit的算術(shù)邏輯單元(ALU)。?兩個(gè)40bit的累加器(ACCA和ACCB)。?1個(gè)桶形移位器。?17bit×17bit并行乘法器。?40bit加法器。?比較、選擇和存儲(chǔ)單元(CSSU)。?指數(shù)編碼器。?各種CPU寄存器(CPU寄存器是存儲(chǔ)器映射的,能快速恢復(fù)和保存)。\h1.4.1算術(shù)邏輯單元C54X/LC54X使用40bit的算術(shù)邏輯單元(ALU)和兩個(gè)40bit的累加器(ACCA和ACCB)來完成二進(jìn)制補(bǔ)碼的算術(shù)運(yùn)算。同時(shí),ALU也能完成布爾運(yùn)算。\h1.4.2累加器累加器ACCA和ACCB存放從ALU或乘法器/加法器單元輸出的數(shù)據(jù),累加器也能輸出到ALU或乘法器/加法器中。累加器可分為3個(gè)部分。?保護(hù)位(32~39)。?高位字(16~31)。?低位字(0~15)。保護(hù)位用來為計(jì)算機(jī)的前部留空(headmargin),防止在迭代運(yùn)算中產(chǎn)生溢出。AG、BG、AH、BH、AL、BL都是存儲(chǔ)器映射寄存器,由特定的指令將其內(nèi)容存放到數(shù)據(jù)存儲(chǔ)器中,以及從存儲(chǔ)器中讀出或?qū)懭?2bit累加器。同時(shí),任何一個(gè)累加器都可以用來作為暫存器使用。\h1.4.3桶形移位器C54X的桶形移位器有一個(gè)與累加器或數(shù)據(jù)存儲(chǔ)器(CB、DB)相連接的40bit輸入和一個(gè)與ALU或數(shù)據(jù)存儲(chǔ)器(EB)相連接的40bit輸出。桶形移位器能把輸入的數(shù)據(jù)進(jìn)行0~31的左移或者0~16的右移。這種移位能力使處理器能完成數(shù)字定標(biāo)、位提取、擴(kuò)展算術(shù)和溢出保護(hù)等操作。\h1.4.4乘法器/加法器單元乘法器/加法器與一個(gè)40bit的累加器在一個(gè)指令周期內(nèi)完成17bit×17bit的二進(jìn)制補(bǔ)碼運(yùn)算。乘法器有兩個(gè)輸入:一個(gè)是從暫存器T數(shù)據(jù)存儲(chǔ)器操作數(shù)或一個(gè)累加器中選擇,另一個(gè)是從程序存儲(chǔ)、數(shù)據(jù)存儲(chǔ)器、一個(gè)累加器或立即數(shù)中選擇??焖俚钠瑑?nèi)乘法器使C54X能有效完成卷積、相關(guān)和濾波等運(yùn)算。\h1.4.5比較、選擇和存儲(chǔ)單元比較、選擇和存儲(chǔ)單元(CSSU)完成累加器的高位字和低位字之間的最大值比較,即選擇累加器中的較大字并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,不改變狀態(tài)寄存器ST0中測試/控制位和傳送寄存器(TRN)的值。\h1.4.6指數(shù)編碼器指數(shù)編碼器是用于支持單周期指令EXP的專用硬件。\h1.4.7CPU狀態(tài)和控制寄存器C54X有3個(gè)狀態(tài)和控制寄存器,分別為:狀態(tài)寄存器ST0、ST1和處理方式狀態(tài)寄存器(PMST)。ST0和ST1包括了各種條件和方式的狀態(tài),PMST包括了存儲(chǔ)器配置狀態(tài)和控制信息。\h1.5中央存儲(chǔ)器組織C54X存儲(chǔ)器由3個(gè)獨(dú)立可選擇的空間組成:程序、數(shù)據(jù)和I/O空間。所有的C54X芯片都包括隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。RAM又分為兩種:雙訪問RAM(DARAM)和單訪問RAM(SARAM)。C54X還有映射到數(shù)據(jù)存儲(chǔ)空間的26個(gè)CPU寄存器和外設(shè)寄存器。\h1.5.1片內(nèi)ROMC541有28K×16bit片內(nèi)ROM。如果C541的處理方式狀態(tài)寄存器中的數(shù)據(jù)ROM(DROM)位被置位,那么其中8K的ROM可以映射到程序和數(shù)據(jù)空間。這就允許一條指令使用存儲(chǔ)在ROM中的數(shù)據(jù)作為操作數(shù)。C545/C546都是48K×16bit片內(nèi)可屏蔽ROM。如果它們各自的處理器方式狀態(tài)寄存器中DROM位被置位,那么其中16K的ROM可以映射到程序和數(shù)據(jù)空間。C542/C543/C548都有2K×16的片內(nèi)ROM。在標(biāo)準(zhǔn)的C54X片內(nèi)ROM中有一個(gè)引導(dǎo)程序,它可以把用戶代碼調(diào)入到程序存儲(chǔ)器的任何一個(gè)位置。如果MP/MC在硬件復(fù)位時(shí)為低電平,執(zhí)行從單元FF80H開始。這個(gè)單元存有轉(zhuǎn)移到引導(dǎo)程序開始處的轉(zhuǎn)移指令。\h1.5.2片內(nèi)雙訪問RAMC541有5K×16bit片內(nèi)雙訪問RAM(DARAM,1K為一塊),C542和C543分別有10K×16bit的DARAM(2K為一塊),C545和C546有6K×16bit的DARAM(2K為一塊),C548有8K×16bit的DARAM(2K為一塊)。每塊都能在一個(gè)機(jī)器周期里被訪問兩次。這種存儲(chǔ)器往往優(yōu)先存儲(chǔ)數(shù)據(jù)值,也可以用來存儲(chǔ)程序。復(fù)位時(shí),DARAM映射到數(shù)據(jù)存儲(chǔ)空間。DARAM也可以通過設(shè)置PMST中的OVLY位映射到程序/數(shù)據(jù)空間。\h1.5.3片內(nèi)單訪問RAM片內(nèi)單訪問RAM(SARAM)由幾塊組成,每塊在一個(gè)機(jī)器周期里只能訪問一次(讀或?qū)懀?。SARAM也是優(yōu)先存儲(chǔ)數(shù)據(jù),也可以映射到程序空間來存儲(chǔ)程序代碼。C54X具有一個(gè)可屏蔽存儲(chǔ)器的保護(hù)選項(xiàng),用來保護(hù)片內(nèi)存儲(chǔ)器的內(nèi)容。當(dāng)選定這項(xiàng)時(shí),所有外部產(chǎn)生的指令都不能訪問片內(nèi)存儲(chǔ)空間。\h1.5.4存儲(chǔ)器映射寄存器數(shù)據(jù)存儲(chǔ)空間包含了CPU和片內(nèi)外設(shè)的存儲(chǔ)器映射寄存器。這些寄存器位于數(shù)據(jù)存儲(chǔ)空間的第0頁,以簡化對(duì)它們的訪問,如表1.1所示。表1.1C54X系列DSP存儲(chǔ)器映射寄存器續(xù)表以下對(duì)一些寄存器做簡單的介紹。?輔助寄存器(AR0~AR7)。8個(gè)16bit的輔助寄存器(AR0~AR7)能被CALU訪問,也能被輔助寄存器算術(shù)單元(ARAUs)修改。它們最主要的功能是產(chǎn)生16bit的數(shù)據(jù)空間。?暫存器(TREG)。TREG為乘法指令和乘/累加指令存放一個(gè)乘數(shù),它能為帶有移位操作的指令,如ADD、LD和SUB存放一個(gè)動(dòng)態(tài)的(執(zhí)行時(shí)間可編程)移位計(jì)數(shù),也能為BITT指令存放一個(gè)動(dòng)態(tài)地址。EXP指令把計(jì)算出的指數(shù)值存入TREG,而NORM指令將TREG的值歸一化。?過渡寄存器(TRN)。TRN是一個(gè)16bit的寄存器,用來為得到新的度量值存放中間結(jié)果,以完成Viterbi算法。CMPS(比較、選擇和存儲(chǔ))指令在累加器高位字和低位字進(jìn)行比較的基礎(chǔ)上修改TRN的內(nèi)容。?堆棧指針寄存器(SP)。SP是存放棧頂?shù)刂返?6bit寄存器。SP總是指向壓入堆棧的最后一個(gè)數(shù)據(jù)。中斷、陷阱、調(diào)用、返回和PUSHD、PUSHM、POPD以及POPM等指令都要進(jìn)行堆棧處理。?循環(huán)緩沖大小寄存器(BK)。由ARAUs用來在循環(huán)尋址中確定數(shù)據(jù)塊的大小。?塊循環(huán)寄存器(BRC、RSA、REA)。塊循環(huán)計(jì)數(shù)器(BRC)在塊循環(huán)時(shí)確定一塊代碼所需循環(huán)的次數(shù)。塊循環(huán)開始地址(RSA)是需要循環(huán)的程序塊的開始地址。塊循環(huán)尾地址(REA)是循環(huán)程序塊的結(jié)束地址。?中斷寄存器(IMR、IFR)。中斷屏蔽寄存器(IMR)在需要的時(shí)候獨(dú)立地屏蔽特定的中斷。中斷標(biāo)志寄存器(IFR)用來指明各個(gè)中斷的目前狀態(tài)。\h1.6C54X芯片外部設(shè)備所有的C54X都有相同的CPU,但它們的CPU對(duì)應(yīng)了不同的片內(nèi)外設(shè)。C54X芯片有以下片內(nèi)外設(shè):通用I/O引腳(BIO和XF)、軟件可編程等待狀態(tài)發(fā)生器、可編程的塊切換邏輯、主機(jī)接口(HPI)、硬件定時(shí)器、時(shí)鐘發(fā)生器和串口。\h1.6.1通用I/O引腳每一種C54X芯片都有兩個(gè)通用I/O引腳——BIO和XF。BIO是用來監(jiān)測外部設(shè)備狀態(tài)的輸入引腳。在對(duì)時(shí)間要求很嚴(yán)格的循環(huán)不能被外設(shè)中斷所打斷的時(shí)候,可以用BIO腳來代替中斷與外設(shè)相連,根據(jù)BIO輸入的狀態(tài)來執(zhí)行一個(gè)轉(zhuǎn)移。XF用于發(fā)信號(hào)給外部設(shè)備,通過軟件進(jìn)行控制。\h1.6.2軟件可編程等待狀態(tài)發(fā)生器軟件可編程等待狀態(tài)發(fā)生器都可以把外部總線周期擴(kuò)展到7個(gè)機(jī)器周期,以適應(yīng)較慢的片外存儲(chǔ)器和I/O設(shè)備。它不需要任何外部硬件,只由軟件完成。\h1.6.3可編程塊切換邏輯可編程塊切換邏輯在訪問越過存儲(chǔ)器塊邊界,或從程序存儲(chǔ)器跨越到數(shù)據(jù)存儲(chǔ)器時(shí),能自動(dòng)插入一個(gè)周期。這個(gè)額外的周期允許存儲(chǔ)器器件在其他器件開始驅(qū)動(dòng)總線之前釋放總線,以防止總線競爭。\h1.6.4主機(jī)接口主機(jī)接口(HPI)是一個(gè)8bit的并口,提供C54X與主處理機(jī)的接口,如表1.2所示。C54X和主處理機(jī)都可以訪問C54X的片內(nèi)存儲(chǔ)器,并且通過它進(jìn)行信息交換。表1.2C54X系列DSP主機(jī)接口\h1.6.5硬件定時(shí)器C54X有一個(gè)帶有4bit預(yù)定標(biāo)器(PSC)的16bit的定時(shí)電路。這個(gè)定時(shí)計(jì)數(shù)器在每個(gè)時(shí)鐘周期中減1,每當(dāng)計(jì)數(shù)器減至0時(shí)就會(huì)產(chǎn)生一個(gè)定時(shí)中斷??梢酝ㄟ^設(shè)置特定的狀態(tài)位來使定時(shí)器停止、恢復(fù)運(yùn)行、復(fù)位或停止。\h1.6.6時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器由一個(gè)內(nèi)部振蕩器和一個(gè)鎖相環(huán)電路組成。它可以通過內(nèi)部的晶振或外部的時(shí)鐘源驅(qū)動(dòng)。鎖相環(huán)電路能使時(shí)鐘源乘上一個(gè)特定的系數(shù),以得到一個(gè)內(nèi)部CPU時(shí)鐘。\h1.6.7串口各種C54X芯片配有不同的串口,分為3種類型:同步串口、緩沖串口和時(shí)分多用(TDM)串口,如表1.3所示。表1.3C54X系列DSP串口?同步串口。同步串口是高速、全雙工串口,提供與編碼器、A/D轉(zhuǎn)換器等串行設(shè)備之間的通信。如果一塊C54X芯片中有多個(gè)同步串口,則它們是相同的但是獨(dú)立的。每個(gè)同步串口都能工作到1/4機(jī)器周期頻率(CLKOUT)。同步串口發(fā)送器和接收器是雙向緩沖的,單獨(dú)由可屏蔽的外部中斷信號(hào)控制,數(shù)據(jù)可以bytes或字傳送。?緩沖串口。緩沖串口(BSP)是在同步串口的基礎(chǔ)上增加了自動(dòng)緩沖單元,并以整CLKOUT頻率計(jì)時(shí)。它是全雙工和雙緩沖的,以提供靈活的數(shù)據(jù)串長度。自動(dòng)緩沖單元支持高速傳送并能降低服務(wù)開銷。?時(shí)分多用串口。時(shí)分多用(TDM)串口是一個(gè)允許數(shù)據(jù)時(shí)分多用的同步串口。它既能工作在同步方式下也能工作在TDM方式下,在多處理器中得到廣泛應(yīng)用。\h1.7外部總線接口C54X能對(duì)64K的程序存儲(chǔ)器、64K的數(shù)據(jù)存儲(chǔ)器和64K的并行I/O口尋址。對(duì)外部存儲(chǔ)器或I/O的訪問通過外部總線進(jìn)行。獨(dú)立的空間選擇信號(hào)DS、PS和IS允許進(jìn)行物理上分開的空間選擇。接口的外部輸入信號(hào)和軟件產(chǎn)生的等待狀態(tài)允許處理器與各種不同速度的存儲(chǔ)器和I/O設(shè)備相連。接口的保持模式使得外部設(shè)備能控制C54X的總線,這樣外部設(shè)備就能訪問程序、數(shù)據(jù)和I/O空間資源。C54X的大部分指令都能訪問外部存儲(chǔ)器,但訪問I/O需要使用特殊的指令,如PORTR和PORTW。\h1.8IEEE1149.1標(biāo)準(zhǔn)掃描邏輯IEEE1149.1標(biāo)準(zhǔn)掃描邏輯電路用于仿真和測試,它提供對(duì)所連設(shè)備的邊界掃描。同時(shí),它也能用來測試引腳的連續(xù)性,以及完成C54X芯片的外圍器件的操作測試。IEEE1149.1標(biāo)準(zhǔn)掃描邏輯與能訪問片內(nèi)所有資源的內(nèi)部掃描電路相連。因此,C54X能使用IEEE1149.1標(biāo)準(zhǔn)串行掃描引腳和專用仿真引腳來完成在線仿真。\h1.9TMS320C54X引腳和信號(hào)說明TMS320C54X基本采用薄的塑料或陶瓷四方扁平封裝(TQFP),如圖1.1所示。下面給出C54X的引腳說明及對(duì)應(yīng)的信號(hào)說明,如表1.4所示。表1.4中的I是輸入,O是輸出,Z是高阻態(tài),S是電源。圖1.1TMS320C54X引腳圖表1.4C54X系列DSP引腳信號(hào)說明續(xù)表續(xù)表續(xù)表\h1.10實(shí)驗(yàn)開發(fā)系統(tǒng)使用說明DSP系統(tǒng)板框圖如圖1.2所示。本系統(tǒng)一共包含12個(gè)模塊,包括TMS320VC5402插板模塊、DSP仿真機(jī)模塊、電源模塊、信號(hào)源模塊、LCD液晶顯示模塊、A/D&D/A模塊、單片機(jī)模塊、邏輯輸入模塊、邏輯控制模塊、語音模塊、外部存儲(chǔ)器模塊和面包板模塊。硬件結(jié)構(gòu)說明如下。1.TMS320VC5402插板(如圖1.2所示)圖1.2TMS320VC5402插板TMS320VC5402插板插在主板上,從該插板上引出數(shù)據(jù)總線、地址總線、主機(jī)接口(HPI接口)、同步緩沖串口等引腳。數(shù)據(jù)、地址總線插座說明如圖1.3所示。圖1.3排線插座引腳圖ZY13DSP12BC2中排線插座都是10腳,將排線插座的開口邊面向自己,左起為1腳,從下至上,從左往右引腳數(shù)依次增加,如圖1.3所示。TMS320VC5402插板塊引腳說明如表1.5所示。表1.5TMS320VC5402系統(tǒng)模塊引出腳說明CLKMD1、CLKMD2、CLKMD3為時(shí)鐘模式引腳,通過設(shè)置這些引腳可以改變TMS320VC5402內(nèi)部時(shí)鐘。按鍵K1(如圖1.4所示)從左往右依次連接DSP引腳:MP/MC、CLKMD3、CLKMD2、CLKMD1。向上撥為“1”,向下?lián)転椤?”,不同的組合產(chǎn)生的倍頻效果如表1.6所示。圖1.4按鍵K1表1.6硬件PLL時(shí)鐘配置方式2.DSP仿真機(jī)實(shí)驗(yàn)開發(fā)系統(tǒng)內(nèi)置EPP仿真機(jī),只需要一根并口線將PC機(jī)并口和開發(fā)系統(tǒng)的P1口連接起來,就可以實(shí)現(xiàn)DSP仿真。3.電源模塊(如圖1.5所示)圖1.5電源模塊本實(shí)驗(yàn)開發(fā)系統(tǒng)配備1.8V、2.5V、3.3V、-5V、+5V、-12V、+12V電源。S1控制+5V,S1按下LE0點(diǎn)亮,S2同時(shí)控制+12V,-12V,S2按下LE1點(diǎn)亮。除信號(hào)源模塊和語音處理實(shí)驗(yàn)以及A/D、D/A實(shí)驗(yàn)需要+12V和-12V外,其他實(shí)驗(yàn)均不需要+12V和-12V。4.信號(hào)源模塊(如圖1.6所示)KD1按下,+12V、-12V電源接入信號(hào)源電路。TTD1、TTD2、TTD3分別輸出正弦波、方波和三角波。JD1、JD2選擇不同的頻段,JD1短接則輸出最高頻率可達(dá)1kHz;JD2短接則輸出最高頻率可達(dá)10kHz。JD3短接,TTD2輸出使能。JD4短接,TTD1輸出使能。圖1.6信號(hào)源模塊WD2、WD3、WD4分別調(diào)節(jié)正弦波的幅度,負(fù)向失真,正向失真;WD5、WD6調(diào)節(jié)輸出波形的占空比,輸出頻率;WD1調(diào)節(jié)方波的輸出幅度。信號(hào)源模塊引腳輸出說明如表1.7所示。表1.7信號(hào)源模塊引出腳說明5.LCD液晶顯示模塊(如圖1.7所示)圖1.7LCD液晶顯示模塊PC28的1~8腳連接液晶顯示屏的8位數(shù)據(jù)線,即LCD管腳7~14。PC27的1~3腳分別連接液晶顯示屏的管腳4~6。W1為對(duì)比度調(diào)節(jié)開關(guān),如果發(fā)現(xiàn)亮度不夠,可以調(diào)節(jié)此電位器。B0為下載接口,可以通過此接口對(duì)ADUC812下載程序。6.A/D&D/A模塊(如圖1.8所示)圖1.8A/D&D/A模塊A/D轉(zhuǎn)換和D/A轉(zhuǎn)換是由ADUC812來完成的。ADUC812在單個(gè)芯片內(nèi)包含了高性能的自校準(zhǔn)多通道ADC(8路)、兩個(gè)12位的DAC以及可編程的8位MCU(與8051兼容)。片內(nèi)有8KB的閃速/電擦除程序存儲(chǔ)器、64KB的閃速/電擦除數(shù)據(jù)存儲(chǔ)器、256bit數(shù)據(jù)SRAM(支持可編程)以及與8051兼容的內(nèi)核。另外,MCU支持的功能包括看門狗定時(shí)器、電源監(jiān)視器以及ADCDMA功能。為多處理器接口和I/O擴(kuò)展提供了32條可編程的I/O口線、與I2C總線兼容的串行接口、SPI接口和標(biāo)準(zhǔn)UART接口。MCU內(nèi)核和模擬轉(zhuǎn)換器二者均有正常、空閑以及掉電工作模式,它提供了適合于低功率應(yīng)用的電源管理方案。該器件包括在工業(yè)溫度范圍內(nèi)用3V和5V電壓工作的兩種規(guī)格,有52腳、塑料四方扁平封裝形式(PQTP)可供使用。PC10連接A/D轉(zhuǎn)換或D/A轉(zhuǎn)換低8位數(shù)據(jù)線,PC11連接A/D轉(zhuǎn)換或D/A轉(zhuǎn)換高4位數(shù)據(jù)線。TP33、TP32、TP16、DA1、DA0分別連接ADUC812的19、18、13、10和9腳(如表1.8所示)。撥動(dòng)K18對(duì)ADUC812進(jìn)行控制,當(dāng)LE2不亮?xí)r處于程序下載模式,當(dāng)LE2點(diǎn)亮?xí)r處于程序運(yùn)行狀態(tài),當(dāng)這兩種狀態(tài)之間進(jìn)行切換時(shí),一定要在切換后按K21鍵對(duì)ADUC812進(jìn)行復(fù)位。表1.8A/D與D/A轉(zhuǎn)換模塊引出腳說明7.單片機(jī)模塊(如圖1.9所示)圖1.9單片機(jī)模塊單片機(jī)模塊引出腳說明如表1.9所示。表1.9單片機(jī)模塊引出腳說明8.邏輯輸入模塊(如圖1.10所示)PC12的1~8腳分別連接開關(guān)K10~K17。開關(guān)K10~K17分別對(duì)應(yīng)一組二進(jìn)制數(shù)據(jù)的0~7位。當(dāng)指示燈(L10~L17)點(diǎn)亮?xí)r對(duì)應(yīng)的開關(guān)指向“1”,即高電平;當(dāng)指示燈(L10~L17)不亮?xí)r,對(duì)應(yīng)的開關(guān)指向“0”,即低電平。9.邏輯控制模塊(如圖1.11所示)圖1.10邏輯輸入模塊圖1.11邏輯控制模塊邏輯控制模塊引出腳說明如表1.10所示。表1.10邏輯控制模塊引出腳說明續(xù)表使用內(nèi)部仿真機(jī)時(shí),F(xiàn)K1~FK9跳線帽一定不能拔,使用外部仿真機(jī)時(shí)要將跳線帽拔掉。10.語音模塊(如圖1.12所示)圖1.12語音模塊語音處理模塊引出腳說明如表1.11所示。表1.11語音處理模塊引出腳說明11.外部存儲(chǔ)器模塊(如圖1.13所示)圖1.13外部存儲(chǔ)器模塊外部存儲(chǔ)器模塊引出腳說明如表1.12所示。表1.12外部存儲(chǔ)器模塊引出腳說明12.面包板模塊面包板模塊設(shè)計(jì)提供了更大的二次開發(fā)空間。\h1.11LF2407AEVM板簡介1.TMS320LF2407AEVM板上資源(1)EVM板介紹①靜態(tài)CMOS、最高主頻可達(dá)到40MHz,低功耗,3.3V電源供電??梢栽贒型實(shí)驗(yàn)開發(fā)系統(tǒng)上使用也可以單獨(dú)使用。②32K×16位片上FLASH(4個(gè)段)、544×16位片上DARAM、2K×16位片上SARAM。③外部存儲(chǔ)器空間接口:64K×16位程序空間、64K×16位數(shù)據(jù)空間,SPI接口的8K×8bits的EEPROM存儲(chǔ)器。④動(dòng)態(tài)PLL,主頻可由軟件編程修改、片上看門狗電路。⑤5個(gè)外部中斷源(電機(jī)驅(qū)動(dòng)保護(hù)、復(fù)位、2個(gè)可屏蔽中斷)。⑥LF2407A具有加密功能,密鑰長度64位。⑦4個(gè)16位CPU定時(shí)器。⑧用于電機(jī)控制的外設(shè):2個(gè)事件管理器。⑨多種標(biāo)準(zhǔn)串口外設(shè):1個(gè)SPI同步串口、1個(gè)SCI異步通信串口、1個(gè)增強(qiáng)型CAN總線接口。⑩10位A/D轉(zhuǎn)換器:16通道、雙采樣/保持、2×8多路切換器。12位2路DA轉(zhuǎn)換器。41個(gè)獨(dú)立可編程、復(fù)用型、通用型I/O口。2路12位SPI接口DAC轉(zhuǎn)換器。所有功能引腳外擴(kuò)。(2)電源采用TPS7133,將外部提供的+5VDC轉(zhuǎn)化為TMS320LF2407A所需的+3.3VDC。(3)時(shí)鐘板上提供10MHz晶振,有軟件SCSR1寄存器中的CLKPS0~CLKPS2位設(shè)置為000,系統(tǒng)時(shí)鐘為外部時(shí)鐘的4倍頻,即系統(tǒng)時(shí)鐘為40MHz。設(shè)置為001,系統(tǒng)時(shí)鐘為外部時(shí)鐘的2倍頻,即系統(tǒng)時(shí)鐘為20MHz。本實(shí)驗(yàn)指導(dǎo)書中所有實(shí)驗(yàn)例程配置的系統(tǒng)時(shí)鐘都為20MHz。(4)JTAG仿真器接口實(shí)驗(yàn)箱帶有DSP仿真器,只需一根連接線,就可實(shí)現(xiàn)在線仿真。(5)跳線選擇方式選擇、Bootloader的工作方式、SPI/SCI工作方式、VCCP跳線選擇等。(6)TMS320LF2407A引腳2407A系統(tǒng)板已經(jīng)將TMS320LF2407A上的所有引腳引出至對(duì)應(yīng)的插座,并將每個(gè)插座對(duì)應(yīng)的名稱給出。2.LF2407AEVM板上存儲(chǔ)空間分配(1)程序存儲(chǔ)空間圖1.14LF2407AEVM板的程序存儲(chǔ)空間資源DSP可以訪問的程序存儲(chǔ)器空間為64K字。程序存儲(chǔ)空間的配置有兩種,一種是64K字存儲(chǔ)空間全映射到外部存儲(chǔ)器;另一種是內(nèi)部FLASH存儲(chǔ)空間使能,其存儲(chǔ)空間范圍為DSP內(nèi)部0X0000h~0X7FFFh,而可用的外部存儲(chǔ)空間為0X8000h~0XFFFFh(如圖1.14所示)。處理器工作方式的選擇主要通過對(duì)微處理器/微控制器方式選擇引腳()的電平高低來處理,一般在硬件上實(shí)現(xiàn),即在引腳上接一個(gè)跳線接口,就可以實(shí)現(xiàn)硬件選擇該引腳的工作模式,跳線T52用來選擇工作模式:當(dāng)T52接2,3位置時(shí),則,所有內(nèi)部FLASH存儲(chǔ)空間被禁止。如果T52接1,2位置時(shí),則,所有內(nèi)部FLASH存儲(chǔ)空間被使能。(2)數(shù)據(jù)存儲(chǔ)空間LF2407AEVM板的數(shù)據(jù)存儲(chǔ)空間配置如圖1.15所示,外部RAM可以使能0X8000h~0XFFFFh范圍。圖1.15LF2407AEVM板的數(shù)據(jù)存儲(chǔ)空間資源3.引出功能引腳定義LF2407AEVM板將擴(kuò)展資源都提供出來,使用戶完全不需要設(shè)計(jì)DSP電路就能很方便地進(jìn)行擴(kuò)展。內(nèi)部資源總線分為6個(gè)部分,分別引到LF2407AEVM板的邊緣,插拔方便。這些總線的引腳分別為:P1,P2,P3,P4,P5,P6。其中P1、P3、P5、P6引腳的順序從左至右,從上至下。P2和P4的引腳順序是從上至下,從左至右。(1)P1:數(shù)據(jù)/地址擴(kuò)展接口(如表1.13所示)表1.13P1:數(shù)據(jù)/地址擴(kuò)展接口續(xù)表(2)P2:模擬通道輸入和通用接口(如表1.14所示)表1.14P2:模擬通道輸入和通用接口(3)P3:脈寬調(diào)制輸出和捕獲輸入(如表1.15所示)表1.15P3:脈寬調(diào)制輸出和捕獲輸入續(xù)表(4)P4:控制信號(hào)(如表1.16所示)表1.16P4:控制信號(hào)(5)P5:DAC輸出、SPI接口(如表1.17所示)表1.17P5:DAC輸出、SPI接口和CAN接口(6)P6:比較輸出信號(hào),SCI接口、中斷輸入信號(hào)等(如表1.18所示)表1.18P6:比較輸出信號(hào),SCI接口、中斷輸入信號(hào)等4.2407EVM板上的跳線說明跳線說明如表1.19所示。表1.192407EVM板上的跳線說明5.仿真器說明供配置的仿真器有兩種:一種是并口仿真器,另一種是USB接口仿真器。(1)并口仿真器并口仿真器使用時(shí),使用一根一端為針,另一端為孔的標(biāo)準(zhǔn)并口線,分別連接PC機(jī)和仿真器的DB25針接口,用14針JTAG連接線分別連接仿真器的DSP-JTAG接接口與2407EVM板的JP1插腳。連接時(shí)要注意并口仿真器的14針JTAG接口與2407插板的連接方向。2407EVM板上的JP1插座是14腳,它的第6腳已經(jīng)拔去,左起為1腳,從左往右,從下至上引腳數(shù)依次增加。14針JTAG連接線插座引腳順序如圖1.16所示。圖1.16排線插座引腳圖(2)USB仿真器USB仿真器使用時(shí),使用一根USB接口線。此USB接口線一端為USB-A接口,另一端為USB-B接口,USB-A接口連接PC機(jī),USB-B接口連接USB仿真器。關(guān)于14針JTAG連接線的接法同上。本實(shí)驗(yàn)指導(dǎo)書推薦的DSP軟件環(huán)境是CCC2000(4.1版),所有的例程都是以“mak”為項(xiàng)目后綴名稱。在發(fā)貨光盤中也提供CCS2000(2.0版),CCS2000(2.0版)的軟件兼容CCC2000(4.1版)的例程,只要CCC2000(4.1版)的例程放在英文目錄下,在CCS2000(2.0版)調(diào)用時(shí)會(huì)把“mak”為后綴的項(xiàng)目直接名轉(zhuǎn)化為以“pjt”為后綴的項(xiàng)目名。6.具體操作說明LF2407AEVM板上的T52,當(dāng)短路塊接1,2引腳表示在燒寫Flash方式,CPU工作在MC方式。接2,3引腳表示在燒寫RAM方式,CPU工作在MP方式。在燒寫Flash方式時(shí),用短路塊接T51的2,3引腳。在燒寫RAM方式時(shí),T51不使用短路塊接任何引腳。本實(shí)驗(yàn)指導(dǎo)書前面10個(gè)基礎(chǔ)性實(shí)驗(yàn),還有3個(gè)應(yīng)用型實(shí)驗(yàn)都使用燒寫RAM方式,實(shí)驗(yàn)11使用燒寫Flash方式。無論是從哪一種方式切換到另外一種方式,都需要注意T52和T51的連接方式。本實(shí)驗(yàn)指導(dǎo)書中所有實(shí)驗(yàn)都在2407EVM板上完成。把LF2407AEVM板插到主板上,“眾友”標(biāo)識(shí)在右上方,不特別聲明都使用燒寫RAM方式按照表1.20連線。表1.20硬件連接如果使用燒寫Flash方式,CPU工作在MC方式。一定要按照步驟操作,否則容易永久性損壞2407A的內(nèi)部Flash,導(dǎo)致不能使用內(nèi)部Flash空間。操作步驟如下所示。拆除以下連線:連接以下連線:7.注意事項(xiàng)(1)在配置DSP軟件環(huán)境和配置DSP的處理器工作環(huán)境前、在連接線之前請(qǐng)先關(guān)閉電源,在實(shí)驗(yàn)運(yùn)行過程中不要隨便斷電,否則DSP軟件環(huán)境需要重新打開。(2)把2407EVM板插入實(shí)驗(yàn)箱主板時(shí),需要注意2407EVM板上CZ1、CZ2、CZ3和CZ4分別對(duì)準(zhǔn)主板上的CZ1、CZ2、CZ3和CZ4。(3)本實(shí)驗(yàn)指導(dǎo)書中,只要在燒寫RAM情況下,2407EVM板上的P1.29和P1.31一直使用短路塊短接。如果要使用主板上的所有資源,引腳定義參考附錄:管腳分配表。其中DSP的數(shù)據(jù)、地址和相關(guān)控制信號(hào)線使用40針排線連接2407EVM板上的P1和主板上液晶屏上方J4。(4)在做實(shí)驗(yàn)時(shí)請(qǐng)不要用手觸摸芯片管腳,以免引起短路將芯片燒毀。(5)做完實(shí)驗(yàn)后,把連接線整理好并蓋上箱子,保持實(shí)驗(yàn)箱的整潔。\h第二章CCS軟件的使用\h2.1CCS50001.2的安裝與配置1.軟件安裝步驟①運(yùn)行光盤中客戶軟件\CCS50001.2\C5000install\setup,進(jìn)入引導(dǎo)界面。②選擇Install下的CodeComposerStudio進(jìn)入安裝界面。③按照默認(rèn)的方式安裝,裝在C:\ti下,然后重新啟動(dòng)計(jì)算機(jī)。④按“DEL”鍵進(jìn)入CMOS的設(shè)置界面CMOSSETUPUTILITY,將IntegratedPeripherals中的OnboardParalellPort改為378/IRQ,ParrallelPortMode改為EPP,保存退出。⑤進(jìn)入Windows后會(huì)出現(xiàn)CCSC50001.20,SetupCCSC50001.20的圖標(biāo),然后運(yùn)行光盤中客戶軟件\CCS50001.2\sdgomainbord\setup,進(jìn)入安裝界面。⑥按照默認(rèn)的方式安裝,文件裝在C:\Composer下。2.軟件設(shè)置步驟①打開SetupCCSC50001.20,進(jìn)入設(shè)置界面,如圖2.1所示。圖2.1設(shè)置界面②單擊“InstallaDeviceDriver”,進(jìn)入驅(qū)動(dòng)文件選擇界面,如圖2.2所示。選擇“C:\composer\sdgo5xx32.dll”,然后打開,出現(xiàn)如圖2.3所示界面,選擇“OK”按鈕。圖2.2驅(qū)動(dòng)文件選擇界面圖2.3選擇“OK”③再將“AvailableBoard/SimulatorType”中的“sdgo5xx32”移入“SystemConfiguration”中,出現(xiàn)如圖2.4所示界面。圖2.4將“sdgo5xx32”移入“SystemConfiguration”④單擊“Next”按鈕,出現(xiàn)如圖2.5所示界面,將“I/OPort”中的“0x240”改為“0x378”。圖2.5單擊“Next”按鈕⑤單擊“Next”按鈕,出現(xiàn)如圖2.6所示界面,單擊“AddSingle”按鈕,然后單擊“Finish”按鈕完成。圖2.6單擊“Finish”按鈕完成⑥關(guān)掉設(shè)置窗口,保存所做的改變。3.檢查是否能夠進(jìn)入CCS5000計(jì)算機(jī)與ZY13DSP12BC2實(shí)驗(yàn)箱通過并口P1相連,然后打開電源S1、S2,再單擊CCS5000軟件的圖標(biāo),檢查是否能夠進(jìn)入CCS5000。\h2.2CCS50001.2的使用方法\h2.2.1CCS文件名介紹在使用CCS前,應(yīng)該先了解以下軟件的文件名約定。?Project.mak:CCS定義的工程文件。?Program.c:C程序文件。?Program.asm:匯編語言程序文件。?Filename.h:C語言的頭文件,包括DSP/BIOSAPI模塊。?Filename.lib:庫文件。?Project.cmd:連接命令文件。?Program.obj:編譯后的目標(biāo)文件。?Program.out:可在目標(biāo)DSP上執(zhí)行的文件,可在CCS監(jiān)控下調(diào)試/執(zhí)行。?Project.wks:工作空間文件,可以記錄工作環(huán)境設(shè)置。?Program.cdb:CCS的設(shè)置數(shù)據(jù)庫文件,是使用DSP/BIOSAPI必需的,其他沒有使用DSP/BIOSAPI的程序也可以使用。當(dāng)新建一個(gè)設(shè)置數(shù)據(jù)庫時(shí),會(huì)產(chǎn)生下面的文件:Programcfg.cmdProgramcfg.h54Programcfg.s54\h2.2.2編寫一個(gè)簡單的程序這一部分將介紹如何在CCS下面新建一個(gè)程序,及如何編譯、連接、下載、調(diào)試程序。1.新建一個(gè)工程文件①如果CCS安裝在c:\ti目錄下,請(qǐng)?jiān)赾:\ti\myproject目錄下新建一個(gè)目錄,名為test。②將光盤test文件夾下的所有文件復(fù)制到新目錄中。③運(yùn)行CCS程序。④選擇“Project/New”菜單。⑤在“SaveNewProjectAs”窗口中,選擇新建的目錄,鍵入“test”作為文件名,然后單擊“Save”。CCS會(huì)新建一個(gè)名為test.mak的工程文件,它將保存工程文件設(shè)置和工程引用的相關(guān)文件。2.往工程中加入文件①選擇“Project/AddFilestoProject”,在文件類型選項(xiàng)中選擇*.c文件,選擇test.c,加入文件。②選擇“Project/AddFilestoProject”,在文件類型選項(xiàng)CMD文件(*.cmd),選擇test.cmd。③此時(shí),可以單擊工作窗口的工程視窗中test.mak旁的“+”號(hào),展開工程查看其中的文件。結(jié)果如圖2.7所示。圖2.7展開工程查看其中的文件④注意此時(shí),一些包含的文件不會(huì)出現(xiàn)在include目錄下,編譯后CCS會(huì)自動(dòng)加入,不必手動(dòng)執(zhí)行。3.瀏覽代碼和Windows的瀏覽器相似,只要打開“+”號(hào)展現(xiàn)下面的文件,然后雙擊文件的圖標(biāo),在主窗口就會(huì)顯示相應(yīng)文件的源代碼。4.編譯/執(zhí)行程序①選擇“Project/RebuildAll”,或工具條中的相應(yīng)按鈕。②編譯成功后,選擇“File/LoadProgram”,選擇剛編譯的可執(zhí)行程序test.out。③選擇“Debug/Run”,或工具條中的相應(yīng)圖標(biāo)。④運(yùn)行程序。5.程序調(diào)試的環(huán)境應(yīng)用(1)跟蹤/調(diào)試程序①選擇“Debut/Restart”,重新執(zhí)行程序。②不全速運(yùn)行,而是選擇“Debug/StepInto”或按“F8”鍵,單步執(zhí)行。③單步執(zhí)行程序的同時(shí),選擇“View/CPURegisters/CPURegister”,觀察主要寄存器的變化。(2)關(guān)于出現(xiàn)問題的處理如果在CCS的編譯連接過程出現(xiàn)問題,CCS都會(huì)給出提示,用戶可以通過閱讀提示,尋找問題出現(xiàn)在什么地方。如果是語法上的錯(cuò)誤,請(qǐng)查閱相關(guān)的語法資料;如果是環(huán)境參數(shù)設(shè)置上有問題,一般應(yīng)在“Project/Options”中進(jìn)行相應(yīng)的修改(如果是新用戶,最好不要更改缺省設(shè)置);如果是下載過程中出現(xiàn)問題,可以嘗試“Debug/ResetDSP”,或是按下硬件上的復(fù)位鍵。\h2.2.3CCS軟件應(yīng)用和DSP編程1.概述本節(jié)介紹DSP語言軟件的開發(fā)流程和涉及的軟件開發(fā)工具。一個(gè)DSP應(yīng)用軟件的標(biāo)準(zhǔn)開發(fā)流程如圖2.8所示。由圖2.8可見,軟件開發(fā)過程中將涉及C編譯器、匯編器、鏈接器等開發(fā)工具。不過,這里的C編譯器不像在PC上開發(fā)C程序一樣會(huì)輸出目標(biāo)文件(.obj),而是輸出滿足C5X條件的匯編程序(.asm)。而C5X中的C編程效率是較低的,所以它的C編譯器才輸出匯編程序,讓用戶可以對(duì)該匯編程序進(jìn)行最大限度的優(yōu)化,提高程序效率。C編譯器將在本章后面介紹。下面從匯編程序開始介紹軟件開發(fā)流程的各個(gè)環(huán)節(jié)。圖2.8DSP應(yīng)用軟件的標(biāo)準(zhǔn)開發(fā)流程編制一個(gè)匯編程序,需要經(jīng)歷下列步驟。①用文本編輯器(Editor)編輯滿足C5X匯編器(Assembler)格式要求的匯編源程序。②調(diào)用匯編器匯編該源文件,如果源文件中調(diào)用了宏,匯編器還會(huì)到宏庫中搜索該宏。③匯編之后生成格式為公共目標(biāo)文件格式(COFF,CommonObjectFileFormat)的目標(biāo)文件(.obj),稱為COFF目標(biāo)文件。④調(diào)用鏈接器(Linker)鏈接目標(biāo)文件,如果包含可運(yùn)行支持庫和目標(biāo)文件庫,鏈接器還會(huì)到所保護(hù)的庫中搜索所需要的成員。⑤鏈接之后生成可執(zhí)行的COFF執(zhí)行文件(.out)。⑥將COFF執(zhí)行文件下載到C5XDSP中執(zhí)行,同時(shí)也可借助調(diào)試工具(DebuggingTool)對(duì)程序進(jìn)行跟蹤調(diào)試或優(yōu)化,也可利用交叉參考列表器(Cross-referenceLister)和絕對(duì)列表器(AbsoluteLister)生成一些包含調(diào)試信息的表。下面先介紹匯編源文件(.asm)格式。2.匯編源文件(.asm)C5X的程序以段(Section)為基本單元構(gòu)成,一個(gè)程序文件由若干段構(gòu)成,每段又由若干語句(Statement)構(gòu)成。C5X的程序段分為初始化(Initialized)段和未初始化(Uninitialized)段兩大類。初始化段可以是程序代碼,也可以是程序中用到的常量、數(shù)據(jù)表等。我們可以從程序下載的角度來理解,初始化就是需要往程序空間寫數(shù)據(jù)(代碼或數(shù)據(jù))的段,如同初始化程序空間一樣。而未初始化段為變量,在下載時(shí),這些變量是沒有值的,所以無需向程序空間寫,只需留出一段空間以便在運(yùn)行時(shí)存放變量的值。所以這段空間在程序未運(yùn)行前是沒有初始化的。段的名稱和屬性可以由用戶自定義,如果用戶不定義,匯編器將按默認(rèn)的段來處理。C5X匯編器默認(rèn)的段有3個(gè):“.text”、“.data”、“.bss”。其中,“.text”為程序代碼段,“.data”為數(shù)據(jù)段,“.bss”為未初始化段。用戶自定義用“.sect”和“.usect”兩個(gè)匯編指示符來完成。其中,“.sect”用于定義初始化段,“.usect”用于定義未初始化段,語法如下:[symbol].sect“section_name”[symbol].usect“section_name”,length3.匯編器本節(jié)介紹C5X匯編器的使用。在編輯好匯編文件后就可以調(diào)用匯編器對(duì)文件進(jìn)行匯編。先來看看C5X匯編器的情況。(1)匯編器概述匯編器把匯編語言源文件匯編成COFF目標(biāo)文件。C5X匯編器為:asm500(algebraicassembler),用于匯編采用C5X的助記符指令編寫的源文件,這個(gè)匯編器可完成如下工作。①處理匯編語言源文件中的源語句,生成一個(gè)可重復(fù)定位的目標(biāo)文件。②根據(jù)要求,產(chǎn)生源程序列表文件,并提供對(duì)源程序列表文件的控制。③將代碼分成段,并為每個(gè)目標(biāo)代碼段設(shè)置一個(gè)段程序計(jì)數(shù)器SPC(SectionProgramCounter),并把代碼和數(shù)據(jù)匯編到指定的段中,在存儲(chǔ)器中為未初始化段留出空間。④定義(.def)和引用(.ref)全局符號(hào)(globalsymbol),根據(jù)要求,將交叉參考列表加到源程序列表中。⑤匯編條件段。⑥支持宏調(diào)用,允許在程序中或在庫中定義宏。匯編器接受匯編語言源文件作為輸入,匯編語言源文件可以是文本編輯器直接編寫的,也可以是由C語言經(jīng)編譯后得到的。(2)匯編器調(diào)用方法可以在命令行用如下命令格式調(diào)用匯編器,也可以在集成開發(fā)環(huán)境下由CCS調(diào)用:asm500[inputfile[objectfile[listingfile]]][-options]asm500為調(diào)用匯編器。Inputfile為匯編源文件名。如果不寫擴(kuò)展名,匯編器將使用缺省的.asm。Objectfile為匯編器輸出的COFF目標(biāo)文件名。如果不寫擴(kuò)展名,匯編器將使用缺省的.obj,如果連目標(biāo)文件名都不寫,匯編器將使用輸入的文件名作為目標(biāo)文件名。Listingfile為匯編器輸出的列表文件名。如果不寫列表文件名也不寫列表選項(xiàng)“—1”或“—x”,匯編器將不會(huì)生成列表文件。如果有列表文件名,將生成列表文件;如果沒有列表文件名,而有列表選項(xiàng),匯編器將使用輸入文件名生成擴(kuò)展名為.list的列表文件。Option為匯編選項(xiàng)。選項(xiàng)不分大小寫,可以放在命令行中匯編命令之后的任何地方。只要有連字符“—”就作為選項(xiàng)處理。不帶參數(shù)的單個(gè)字母選項(xiàng)可以組合在一起,如“—lc”等效于“—l—c”。而帶有參數(shù)的選項(xiàng),如“—I”,則必須單獨(dú)指定。4.COFF目標(biāo)文件TMS320C5X的匯編器和鏈接器都會(huì)生成公共目標(biāo)文件格式(COFF,CommonObjectFileFormat)的目標(biāo)文件。在本章中,將匯編器生成的文件稱為COFF的目標(biāo)文件,將鏈接器生成的文件稱為COFF執(zhí)行文件。目前,COFF目標(biāo)文件格式已被廣泛使用,因?yàn)樗С帜K化(段)編程,能夠提供有效靈活的管理代碼段和目標(biāo)系統(tǒng)(TargetSystem)存儲(chǔ)空間的方法。(1)COFF文件結(jié)構(gòu)①一個(gè)文件頭。長度為22字節(jié),包含COFF文件結(jié)構(gòu)的版本號(hào)、段頭的數(shù)量、創(chuàng)建日期、符號(hào)表起始地址和入口數(shù)量、可選文件頭的長度等信息。②可選的文件頭信息。由連接器生成,包含執(zhí)行代碼的長度(字節(jié))和起始地址、初始化數(shù)據(jù)的長度和起始地址、未初始化段的長度、程序入口地址等信息,以便在下載時(shí)進(jìn)行重定位。③各個(gè)段的頭信息列表。每個(gè)段都有一個(gè)頭,用于定義各段在COFF文件中的起始位置。段頭包含段的名稱、物理地址、虛擬地址、長度、原始數(shù)據(jù)長度等信息。④每個(gè)初始化段的原始數(shù)據(jù)。包含每個(gè)初始化段的原始數(shù)據(jù),即需要寫入程序存儲(chǔ)空間的代碼和初始化數(shù)據(jù)。⑤每個(gè)初始化段的重定位信息。匯編器自動(dòng)生成各初始化段的重定位入口信息,鏈接時(shí)再由鏈接器讀取該入口信息并結(jié)合用戶對(duì)存儲(chǔ)空間的分配進(jìn)行重定位。⑥每個(gè)初始化段的行號(hào)入口(entry)。主要用于C語言程序的符號(hào)調(diào)試,因?yàn)镃程序先被編譯為匯編程序,這樣,匯編器就會(huì)在匯編代碼前生成一個(gè)行號(hào),并將該行號(hào)映射到C源程序里相應(yīng)的行上,便于調(diào)試程序。⑦一個(gè)符合表。用于存放程序中定義的符合入口,以便調(diào)試。⑧一個(gè)字符串表。表中直接使用符號(hào)名稱,當(dāng)符號(hào)名稱超過8個(gè)字符時(shí),就在符合表中使用指針,該指針指向字符串表中對(duì)應(yīng)的符號(hào)名稱。(2)段的順序匯編器在將匯編源程序匯編成COFF目標(biāo)文件時(shí),將按“.text、.data、用戶自定義初始化段、.bss、用戶自定義的未初始化段”的順序?qū)⒏鞫畏湃肷傻腃OFF文件中。因?yàn)槲闯跏蓟危?bss和.usect)僅僅是用于在存儲(chǔ)空間中保留空間,并沒有代碼或數(shù)據(jù),所以未初始化段只有段頭,而沒有原始數(shù)據(jù)、重定位信息和行號(hào)等。另外,如果程序中沒有使用缺省的段(.text,.data和.bss),那么它們?cè)贑OFF文件中也沒有原始數(shù)據(jù)、重定位信息和行號(hào)等,因?yàn)樗鼈兊脑紨?shù)據(jù)長度為零。5.鏈接器匯編器生成COFF目標(biāo)文件后,就可以調(diào)用鏈接器進(jìn)行鏈接了。本節(jié)介紹C5X鏈接器的使用。(1)鏈接器概述C5X的鏈接器能夠把COFF目標(biāo)文件鏈接成可執(zhí)行文件(.out)。它允許用戶自行配置目標(biāo)系統(tǒng)的存儲(chǔ)空間,也就是為程序中的各個(gè)段分配存儲(chǔ)空間。鏈接器能根據(jù)用戶的配置,將各段重定位到指定的區(qū)域,包括各段的起始地址、符號(hào)的相對(duì)偏移等。因?yàn)閰R編器并不關(guān)心用戶的定義,而是直接將“.text”的起始地址設(shè)為000000H,后面接著是.data和用戶自定義段。如果用戶不配置存儲(chǔ)空間,鏈接器也將按同樣的方式定位各段。C5X的鏈接器能夠接受多個(gè)COFF目標(biāo)文件(.obj),這些文件可以是直接輸入的,也可以是目標(biāo)文件庫(objectlibrary)中包含的。在多個(gè)目標(biāo)文件的情況下,鏈接器將會(huì)把各個(gè)文件中的相同段組合在一起,生成COFF執(zhí)行文件。用鏈接器鏈接目標(biāo)文件時(shí),它要完成下列任務(wù):?將各段定位到目標(biāo)系統(tǒng)的存儲(chǔ)器中;?為符號(hào)和各段指定最終的地址;?定位輸入文件之間未定義的外部引用。用戶可以利用鏈接器命令語言來編制鏈接器命令文件(.cmd),自行配置目標(biāo)系統(tǒng)的存儲(chǔ)空間分配,并為各段指定地址。常用的命令指示符有MEMORY和SECTIONS這兩個(gè),利用它們可以完成下列功能:?為各段指定存儲(chǔ)區(qū)域;?組合各目標(biāo)文件中的段;?在鏈接時(shí)定義或重新定義全局符號(hào)。(2)鏈接器調(diào)用方法調(diào)用鏈接器的命令格式為:lnk500[-option][filename]……filenamen其中,lnk500為鏈接器調(diào)用命令。Filename為輸入文件名,可以是目標(biāo)文件、鏈接器命令文件或庫文件。輸入文件的缺省擴(kuò)展名是.obj。使用其他擴(kuò)展名時(shí)必須顯示指定。鏈接器能夠確定輸入文件是目標(biāo)文件還是包含鏈接器命令的ASCLL文件。鏈接器的缺省輸出文件名是a.out。Option為鏈接器的選項(xiàng),用于控制鏈接操作,可以放在命令行或鏈接器命令文件中的任何地方。鏈接器的調(diào)用方法有下列4種。①在命令行指定選項(xiàng)和文件名。例如:lnk500-olink.outfile1.obj2.obj。②只輸入lnk500命令,在鏈接器給出的提示符下輸入相應(yīng)內(nèi)容。Commandfiles:可以輸入一個(gè)或多個(gè)命令文件名。Objectfiles[.obj]:可以輸入一個(gè)或多個(gè)目標(biāo)文件,文件名之間用空格或逗號(hào)隔開。Outputfiles[a.out]:鏈接器輸出文件名,缺省為a.out。Option:選項(xiàng)可以在命令行中給出,也可以在這里給出。③把目標(biāo)文件名和選項(xiàng)放入一個(gè)鏈接器命令文件。假定一個(gè)命令文件linker.cmd包含有以下幾行:-olink.outfile1.objfile2.obj在命令行運(yùn)行鏈接器:link500linker.cmd,則鏈接器鏈接兩個(gè)文件file1.obj和file2.obj產(chǎn)生名為link.out的輸出文件。在使用命令文件時(shí),仍然可以在命令行使用選項(xiàng)和文件名,例如:lnk500-mfile1.mapfile2.cmdfile3.obj④在集成開發(fā)環(huán)境CCS下,先寫好鏈接命令文件和相應(yīng)的選項(xiàng),然后由CCS自行調(diào)用。(3)鏈接器命令文件如前所述,鏈接器命令文件允許用戶將鏈接信息放入一個(gè)文件中,以便于在相同情況下的多次調(diào)用,同時(shí),還可以靈活應(yīng)用MEMORY和SECTIONS命令配置存儲(chǔ)空間。鏈接器命令文件為ASCLL文件,包含以下內(nèi)容:?輸入文件名,可以是目標(biāo)文件,庫文件或其他命令文件;?鏈接器選項(xiàng);?MEMORY和SECTIONS命令,MEMORY用于指定目標(biāo)存儲(chǔ)器配置,SECTIONS用于指定段的地址;?賦值語句,用于定義全局符號(hào),并賦值。在鏈接器命令文件中,不能將下列保留字用作符合或段的名稱:alignDSECTlenorunALIGNflengthorgRUNAttrfillLENGTHoriginSECTIONSATTRFILLloadORIGINspareBlockgroupLOADpagetypeCOPYINOLOADrangeUNION6.C編譯器及其他本節(jié)介紹C編譯器、交叉參考列表器和絕對(duì)列表器。(1)C編譯器C編譯器包含3個(gè)功能模塊:語法分析、代碼優(yōu)化和代碼產(chǎn)生,如圖2.9所示。其中,語法分析(Parser)完成C語法檢查和分析;代碼優(yōu)化(Optimizer)對(duì)程序進(jìn)行優(yōu)化,以提高效率;代碼產(chǎn)生(CodeGenerator)將C程序轉(zhuǎn)換成C5X的匯編源程序。圖2.9C編譯器C5X的C編譯器可以單獨(dú)使用,也可以連同鏈接器一起完成編譯、匯編和鏈接的工作。C編譯器的調(diào)用格式為:cl500[-options][filenames][-z[link-options]][objectfiles]其中,cl500為調(diào)用命令。Filenames為輸入文件名。Object為編譯選項(xiàng)。如:-q屏蔽列表器輸出的提示信息。-z為調(diào)用鏈接器的指示,當(dāng)有-z時(shí)就表示在編譯之后要調(diào)用鏈接器。Link-options為調(diào)用鏈接器時(shí)的鏈接選項(xiàng)。例如,c1500symtab.cfile.cseek.asm就是將文件symtab.c和file.c編譯生成匯編程序seek.asm。(2)交叉參考列表器交叉參考列表器屬于調(diào)試工具,能以鏈接器輸出的文件為輸入,生成一個(gè)交叉參考列表器的調(diào)用命令格式為:xref500[-options][inputfilename[outputfilename]]其中,xref500為調(diào)用命令。Filename為輸入/輸出文件名。Option為選項(xiàng):-lnum指定輸出文件中每頁的行數(shù);-q屏蔽列表器輸出的提示信息。(3)絕對(duì)列表器絕對(duì)列表器屬于調(diào)試工具,能以鏈接器輸出的文件為輸入,生成一個(gè)列表文件(.abs)。該列表文件將列出程序代碼的絕對(duì)地址。絕對(duì)列表器的調(diào)用命令格式為:abs500[-options]inputfile其中,abs500為調(diào)用命令。Inputfile為輸入文件名。Option為選項(xiàng):-e改變程序文件的缺省命名規(guī)則(缺省規(guī)則:匯編文件為.asm,C文件為.c,頭文件為.h);-q屏蔽列表器輸出的提示信息。\h2.2.4CCS應(yīng)用詳解1.概述利用CCS集成開發(fā)環(huán)境,用戶可以在一個(gè)開發(fā)環(huán)境下完成工程定義、程序編輯、編譯鏈接、調(diào)試和數(shù)據(jù)分析等工作環(huán)節(jié)。使用CCS開發(fā)應(yīng)用程序的一般步驟如下。①打開或建立一個(gè)工程文件。工程文件中包括源程序(C或匯編)、目標(biāo)文件、庫文件、連接命令文件和包含文件。②使用CCS集成編輯環(huán)境,編輯各類文件。如頭文件(.h文件)、命令文件(.cmd文件)和源程序(.c,.asm文件)等。③對(duì)工程文件進(jìn)行編譯。如果有語法錯(cuò)誤,將在構(gòu)建(Build)窗口中顯示出來。用戶可以根據(jù)顯示的信息定位錯(cuò)誤位置,更改錯(cuò)誤。④排除程序的語法錯(cuò)誤后,用戶可以對(duì)計(jì)算結(jié)果/輸出數(shù)據(jù)進(jìn)行分析,評(píng)估算法性能。CCS提供了探針、圖形顯示、性能測試等工具來分析數(shù)據(jù)、評(píng)估性能。2.CCS的窗口、主菜單和工具條CCS應(yīng)用整個(gè)窗口由主菜單、工具條、工程窗口、編輯窗口、圖形顯示窗口、內(nèi)存單元顯示窗口和寄存器顯示窗口等構(gòu)成,如圖2.10所示。工程窗口用于組織用戶的若干程序構(gòu)成一個(gè)項(xiàng)目,用戶可以從工程列表中選中需要編輯和調(diào)試的特定程序。在源程序編輯/調(diào)試窗口中用戶既可以編輯程序,又可以設(shè)置斷點(diǎn)、探針、調(diào)試程序。反匯編窗口可以幫助用戶查看機(jī)器指令,查找錯(cuò)誤。內(nèi)存和寄存器顯示窗口可以查看、編輯內(nèi)存單元和寄存器。圖形顯示窗口可以根據(jù)用戶需要直接或經(jīng)過處理后顯示數(shù)據(jù)。用戶可以通過主菜單Windows條目來管理各窗口。圖2.10CCS應(yīng)用窗口3.關(guān)聯(lián)菜單在任一CCS活動(dòng)窗口中單擊鼠標(biāo)右鍵都可以彈出與此窗口內(nèi)容相關(guān)的菜單,稱其為關(guān)聯(lián)菜單(ContextMenu)。利用此菜單用戶可以對(duì)本窗口內(nèi)容進(jìn)行特定的操作。例如,在ProjectViewWindows窗口中單擊鼠標(biāo)右鍵,彈出菜單。選擇不同的條目,用戶完成添加程序,掃描相關(guān)性,關(guān)閉當(dāng)前工程等功能。4.主菜單主菜單中各選項(xiàng)的使用在后續(xù)的章節(jié)中會(huì)結(jié)合具體使用詳細(xì)介紹,在此僅簡略對(duì)菜單項(xiàng)功能作簡要說明。用戶如果需要了解更詳細(xì)的信息,請(qǐng)參閱CCS在線幫助“Commands”。5.常用工具條CCS將主菜單中常用的命令篩選出來,形成4類工具條:標(biāo)準(zhǔn)工具條、編輯工具條、工程工具條和調(diào)試工具條,依次如圖2.11所示。用戶可以單擊工具條上的按鈕執(zhí)行相應(yīng)的操作。圖2.11常用工具條\h2.2.5建立工程文件下面按照CCS開發(fā)應(yīng)用程序的一般步驟,先介紹工程文件的建立與使用。與VisualBasic、VisualC和Delphi等集成開發(fā)工具類似,CCS采用工程文件夾集中管理一個(gè)工程。一個(gè)工程包括源程序、庫文件、鏈接命令文件和頭文件等,它們按照目錄樹的結(jié)構(gòu)組織在工程文件中。工程構(gòu)建(編譯鏈接)完成后生成可執(zhí)行文件。一個(gè)典型的工程文件記錄下述信息:源程序文件名和目標(biāo)庫;編譯器、匯編器和鏈接器選項(xiàng);頭文件。1.創(chuàng)建、打開和關(guān)閉工程命令Project-New用于創(chuàng)建一個(gè)新的工程文件(后綴為“.mak”),此后用戶就可以編輯源程序、連接命令文件和頭文件等,然后加入到工程中。工程編譯鏈接后產(chǎn)生的可執(zhí)行程序后綴為“.out”。命令Project-Open用于打開一個(gè)已存在的工程文件。例如,用戶打開位于“c:\ti\test”目錄下的test.mak工程文件時(shí),工程中包含的各項(xiàng)信息被載入,其工程窗口如圖2.12所示。命令Project-Close用于關(guān)閉當(dāng)前工程文件。圖2.12工程窗口2.在工程中添加/刪除文件以下任一操作都可以添加文件到工程中:①選擇命令Project-AddFiletoProject…②在工程視圖中右鍵單擊調(diào)出關(guān)聯(lián)菜單,選擇AddFile…圖2.12所示的Source源文件及Libraries庫文件需要用戶指定加入,頭文件(Include文件)通過掃描相關(guān)性自動(dòng)加入到工程中。在工程視圖中右鍵單擊某文件,從關(guān)聯(lián)菜單中選擇“Removefromproject”可以從工程中刪除此文件。3.掃描相關(guān)性如前所述,頭文件加入到工程中通過“掃描相關(guān)性”完成。另外,在使用增量編譯時(shí),CCS同樣要知道哪些文件互相關(guān)聯(lián)。這些都通過“相關(guān)性列表”來實(shí)現(xiàn)。CCS的工程中保存了一個(gè)相關(guān)性列表,它指明每個(gè)源程序和哪些包含文件相關(guān)。在構(gòu)建工程時(shí),CCS使用命令Project+ShowDependencies或Project-ScanAllDependencies創(chuàng)建相關(guān)樹。源文件中以“#include”、“.include”和“.copy”指示的文件被自動(dòng)加入至CCS工程文件中。4.編輯源程序CCS集成編輯環(huán)境可以編輯任何文本文件,對(duì)C程序和匯編程序,還可以彩色高亮顯示關(guān)鍵字、注釋和字符串。CCS的內(nèi)嵌編輯器支持下述功能。①語法高亮顯示。關(guān)鍵字、注釋、字符串和匯編指令用不同的顏色顯示相互區(qū)別。②查找或替換??梢栽谝粋€(gè)文件和一組文件中查找替換字符串。③針對(duì)內(nèi)容的幫助。在源程序內(nèi),可以調(diào)用針對(duì)高亮顯示字的幫助。這在獲得匯編指令和GEL內(nèi)建函數(shù)幫助特別有用。④多窗口顯示??梢源蜷_多個(gè)窗口或?qū)ν晃募蜷_多個(gè)窗口。⑤可以利用標(biāo)準(zhǔn)工具條和編輯工具條幫子用戶快速使用編輯功能。⑥作為C語言編輯器,可以判別圓括號(hào)或大括號(hào)是否匹配,排除語法錯(cuò)誤。⑦所有編輯命令都有快捷鍵對(duì)應(yīng)。5.工具條和快捷鍵命令View-StandardToolbar和View-EditToolbar分別調(diào)出標(biāo)準(zhǔn)工具條和編輯工具條。CCS內(nèi)嵌編輯器所用快捷鍵可查閱在線幫助的“Help-CeneralHelp—UsingCodeComposerStudio+TheIntegratedEditor+UsingKeyboardShortcutsorDefaultKeyboardShortcuts”。用戶可以根據(jù)自己的喜好定義快捷鍵。除編輯命令外,CCS所有的菜單命令都可以定義快捷鍵。選擇Option-Keyboard命令打開自定義快捷方式對(duì)話框,選中需要定義快捷鍵的命令。如果此命令已經(jīng)有快捷鍵,則在Assigned框架中有顯示,否則為空白,用戶可以單擊“Add”按鈕,敲下組合鍵(一般為Ctrl+某鍵),則相應(yīng)按鍵描述顯示在“Pressnewshortcut”框中。6.查找或替換文字除具有與一般編輯器相同的查找、替換功能外,CCS還提供了一種“在多個(gè)文件中查找”的功能。這對(duì)在多個(gè)文件中追蹤、修改變量、函數(shù)特別有用。命令Edit-FindinFiles或單擊標(biāo)準(zhǔn)工具條的“多個(gè)文件中查找”按鈕,彈出如圖2.13所示的對(duì)話框。分別在“Findwhat”、“Infilesof”和“Infolder”中鍵入需要查找的字符串、搜尋目標(biāo)文件類型以及文件所在目錄,然后單擊“Find”按鈕即可。圖2.13“多個(gè)文件中查找”界面查找的結(jié)果顯示在輸出窗口中,按照文件名、字符串所在行號(hào)、匹配文字行依次顯示。7.使用書簽書簽的作用在于幫助用戶標(biāo)記著重點(diǎn)。CCS允許用戶在任意類型文件的任意一行設(shè)置書簽,書簽隨CCS工作空間(Workspace)保存,在下次載入文件時(shí)被重新調(diào)入。(1)設(shè)置書簽將光標(biāo)移到需要設(shè)置書簽的文字行,在編輯視窗中單擊右鍵,彈出關(guān)聯(lián)菜單,從“Bookmarks”子菜單中選中“SetaBookmark”?;蛘邌螕艟庉嫻ぞ邨l的“設(shè)置或取消標(biāo)簽”按鈕。光標(biāo)所在行被高亮標(biāo)識(shí),表示標(biāo)簽設(shè)置成功。設(shè)置多個(gè)書簽后,用戶可以單擊編輯工具條的“上一書簽”、“下一書簽”快速定位書簽。(2)顯示和編輯書簽列表以下兩種方法都可以顯示和編輯書簽列表。①在工程窗口中選擇Bookmark標(biāo)簽,得到書簽列表圖。用戶可以雙擊某書簽,則在編輯窗口,光標(biāo)跳轉(zhuǎn)至此書簽所在行。右鍵單擊之,用戶可以從彈出窗口中編輯或刪除此書簽。②選擇命令“Edit-Bookmarks”或單擊編輯工具條上的“編輯標(biāo)簽屬性”按鈕,如圖2.14所示。雙擊某書簽,則在編輯窗內(nèi)光標(biāo)跳轉(zhuǎn)至此書簽所在行,同時(shí)關(guān)閉此對(duì)話框。用戶也可以單擊某書簽并且編輯或刪除之。圖2.14“編輯標(biāo)簽屬性”界面8.構(gòu)建工程工程所需文件編輯完成后,可以對(duì)該工程進(jìn)行編譯連接,產(chǎn)生可執(zhí)行文件,為調(diào)試做準(zhǔn)備。CCS提供可4條命令構(gòu)建工程。①編譯文件:命令Project-Compile或單擊工程工具條“編譯當(dāng)前文件”按鈕,僅編譯當(dāng)前文件,不進(jìn)行鏈接。②增量構(gòu)建:單擊工程工具條“增量構(gòu)建”按鈕則只編譯那些自上次構(gòu)建后修改過的文件。增量構(gòu)建(incrementalbuild)只對(duì)修改過的源程序進(jìn)行編譯,先前編譯過、沒有修改的程序不再編譯。③重新構(gòu)建:命令Project+Rebuild或單擊工程工具條“重新構(gòu)建”按鈕重新編譯鏈接當(dāng)前工程。④停止構(gòu)建:命令Project-StopBuild或單擊工程工具條“停止構(gòu)建”按鈕停止當(dāng)前的構(gòu)建進(jìn)程。CCS集成開發(fā)環(huán)境本身并未包含編譯器和鏈接器,而是通過調(diào)用本章所述的軟件開發(fā)工具(C編譯器、匯編器和鏈接器)來編譯鏈接用戶程序。編譯器等所用參數(shù)可以通過工程選項(xiàng)設(shè)置。選擇命令Project-Options或從工程窗口的關(guān)聯(lián)菜單中選擇Options,彈出對(duì)話框,如圖2.15所示。在此對(duì)話框中用戶可以參閱有關(guān)編譯器、匯編器和連接器方面的內(nèi)容,或者查閱聯(lián)機(jī)幫助“UsingCodeComposerStudio+TheProjectEnvironment+SettingBuildOptions”。用戶也可以對(duì)特定的文件設(shè)置編譯鏈接選項(xiàng)。操作方法為在工程視窗中右鍵單擊需要設(shè)置的程序,選擇FileSpecificOptions然后在對(duì)話框中設(shè)置相應(yīng)選項(xiàng)。圖2.15BuildOptions對(duì)話框\h2.2.6調(diào)試CCS提供了異常豐富的調(diào)試手段。在程序執(zhí)行控制上,CCS提供了4種單步執(zhí)行方式。從數(shù)據(jù)流角度上,用戶可以對(duì)內(nèi)存單元和寄存器進(jìn)行查看和編輯,載入/輸出外部數(shù)據(jù),設(shè)置探針等。一般的調(diào)試步驟為:調(diào)入構(gòu)建號(hào)的可執(zhí)行程序,先在感興趣的程序段設(shè)置斷點(diǎn),然后執(zhí)行程序停留在斷點(diǎn)處,查看寄存器的值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論