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

下載本文檔

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

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論