SZDSPⅡ型開發(fā)實(shí)驗(yàn)平臺54X1_第1頁
SZDSPⅡ型開發(fā)實(shí)驗(yàn)平臺54X1_第2頁
SZDSPⅡ型開發(fā)實(shí)驗(yàn)平臺54X1_第3頁
SZDSPⅡ型開發(fā)實(shí)驗(yàn)平臺54X1_第4頁
SZDSPⅡ型開發(fā)實(shí)驗(yàn)平臺54X1_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGE15SZDSPⅡ型開發(fā)實(shí)驗(yàn)平臺使用指南第一章.實(shí)驗(yàn)系統(tǒng)標(biāo)準(zhǔn)配置TI主控板(2X、3X、5X)其中任意一種ALTERA、LATTICE、XILINX三公司中的任意一種CPLD或FPGA系統(tǒng)模板一塊3、高速或者高精度A/D、D/A板可選4、CAN總線接口5、USB接口6、同步串行口7、232、485異步串口電路8、語音芯片TLC320AD509、I/O擴(kuò)展電路10、語音電路11、CPLD、FPGA電路12、單片機(jī)管理單元13、撥碼功能選擇電路14、鍵盤、液晶屏電路15、數(shù)碼、發(fā)光二極管顯示電路16、機(jī)電控制模塊(可選)17、通信模塊(可選)18、視頻模塊(可選)實(shí)驗(yàn)儀的開關(guān)、插座定義及初始狀態(tài)J28是USB接口J24為CAN總線接口DB9插座是232異步串行接口J3是485接口M3是耳機(jī)插孔,語音輸出用M1是麥克風(fēng)插孔,語音輸入用J31是可外擴(kuò)的DSP高16位數(shù)據(jù)和高位地址線接口(位于主板的最左上方),其具體管腳定義如下:1~8腳是DSP的高位地址線A23~A16;9~24腳是DSP的高16位地址線D31~D16;J32是可外擴(kuò)的DSP低16位地址線和數(shù)據(jù)線接口,其具體管腳定義如下:1~16腳是DSP的低16位地址線A15~A0;17~32腳為DSP的低16為數(shù)據(jù)線D0~D15;31腳是電源端+5V,32腳是接地端GND。J43為DSPF2407的16位A/D引出端,其具體管腳分布如下:1~16是DSP2407的16位A/DADCIN00~ADCIN15;17腳是模擬地AGND,18腳是模擬電壓A3.3V。10、J33是CPLD或FPGA(以下簡稱CPLD)的I/O腳用來做控制線的輸出端,可做二次開發(fā)用,其接法口如下:1~10腳是DSP小系統(tǒng)上的CPLD的I/O引出端,可作為信號的輸出用;11~20腳是DSP小系統(tǒng)上的CPLD的I/O引出端,可作為信號的輸入輸出用;21、31腳是空腳;22腳是DSP的時(shí)鐘引出端;23、24、25腳分別可作為FLASH的寫控制、讀控制、片選;26、28腳為DSP小系統(tǒng)上CPLD的全局使能引出端,可作為信號輸入也可為全局使能信號;27、30腳為DSP小系統(tǒng)上CPLD的時(shí)鐘引出端,可作為輸入信號也可為時(shí)鐘輸入;29腳是DSP小系統(tǒng)上CPLD的引出端,可作為信號輸入;32腳是復(fù)位信號RESET。11、J14、J13、J11、J15、J44、J8、J45、J10是DSP小系統(tǒng)與主板的接口插座,其插入方式是看DSP的小系統(tǒng)板上的P1的方向,使P1(電源插座)在左上方方向?qū)?yīng)著往下插。12、J23、J22是CPLD模塊與主板的接口插座(DB25在左邊)13、J18、J16是AD、DA采集卡與主板的接口插座(模擬接口在右邊)14、J29是電源輸入端,其管腳具體分布如下:1、2、3、4腳分別是+5V、-5V、-12V、+12V輸入端;5和6腳是接地端。在次主板的右上角有四個發(fā)光二極管分別代表+5V、-5V、-12V、+12V電壓的有無,當(dāng)電壓接通時(shí),相應(yīng)的發(fā)光二極管就會亮。15、J42是DSPF2407的PWM引出端,其管腳具體分布如下:1~6腳是CAP1~CAP6;7~10腳是T1PWM~T4PWM;11~22腳是PWM1~PWM12;23腳是接地端GND;24腳為電源端3.3V;25、26腳分別是CLKINA、CLKINB;27、28為接地端GND;29、30是電源端5V的VCC。16、J2是液晶屏數(shù)據(jù)線和控制線可外擴(kuò)的接口,其具體管腳分布如下:1腳是接地端GND;2腳是電源端VCC;3、18腳是亮度調(diào)節(jié)端;4腳是RS;5腳是R/W;6腳是使能端E;7~14腳是數(shù)據(jù)線D0~D7;15、16是片選端CS1、CS2;17腳是電源端VCC;19是電源端VCC0;20腳是接地端GND;17、開關(guān)J39(右下角)是DSP與MCU工作時(shí)的選擇檔,當(dāng)開關(guān)往上撥時(shí)為單片機(jī)對外輸出有效,往下?lián)軙r(shí)是DSP對外控制有效。18、開關(guān)S33、S34(右上角)分別是+5V與+12V、-12V與-5V電源開關(guān),當(dāng)開關(guān)往下?lián)軙r(shí)為電壓輸入。19、開關(guān)S31(右下角)是選通HPI口時(shí)數(shù)據(jù)的方向選擇,開關(guān)往上撥表示不選通HPI口,往下?lián)転檫x中HPI口。第二章.系統(tǒng)硬件單元及模塊此部分為實(shí)際硬件連接原理圖,圖上相同標(biāo)號表示具有相同的電器連接。1、語音處理模塊圖一語音處理模塊模塊說明:音頻經(jīng)M2或M1輸入后,由2272濾波,通過AD50采集信號,然后由DSP5402的同步串口0(BDR0、BDX0、BCLKR0、BCLKX0、BFSX0、BFXR0)傳輸采集過來的數(shù)字信號,并由DSP對其進(jìn)行處理,將處理完成的數(shù)據(jù)存放在DRAM中,或在被某一條件觸發(fā)后回放,由LM386對輸出信號進(jìn)行功率放大,最后由M3(耳機(jī))或M4(喇叭)輸出。A/D采樣模塊圖二A/D采樣模塊模塊說明:此模塊采用了8位、高速采樣(20MHz)的A/D器件TLC5510。模擬信號通過J12插口輸入,然后經(jīng)過A/D采樣(J8為最后輸入A/D的信號),采用DSP的時(shí)鐘輸入(CLK),由DSP的地址和讀寫(即圖上所標(biāo)的OE信號)對A/D進(jìn)行控制,數(shù)據(jù)輸出到DSP的數(shù)據(jù)線,從而完成A/D的高速采樣。3、D/A轉(zhuǎn)換模塊圖三D/A轉(zhuǎn)換模塊模塊說明:此模塊采用AD公司的高精度16位的D/A轉(zhuǎn)換器件AD669。數(shù)據(jù)由DSP輸入,并由DSP對它進(jìn)行控制(LDAC、/CS、/L1),經(jīng)過轉(zhuǎn)換后輸出,可由J2插口進(jìn)行檢測。

4、交通燈模塊圖四交通燈模塊模塊說明:此模塊既可以由DSP控制,也可以由單片機(jī)控制,同時(shí)還可以由CPLD直接控制到達(dá)運(yùn)行結(jié)果。DSP或單片機(jī)對圖中JTD1~JTD8送數(shù)據(jù)(數(shù)據(jù)與JTD1~JTD8相對應(yīng)),通過CPLD做邏輯,從而實(shí)現(xiàn)模擬交通燈的功能。5、鍵盤模塊圖五鍵盤模塊模塊說明:此模塊可做按鍵輸入,其輸入信號由系統(tǒng)中的CPLD進(jìn)行邏輯處理發(fā)中斷給單片機(jī),同時(shí)由CPLD進(jìn)行編碼輸出,單片機(jī)直接掃描,從而達(dá)到按鍵輸入的效果。6、數(shù)碼管顯示模塊圖六數(shù)碼管顯示模塊模塊說明:該模塊同樣是可由DSP、單片機(jī)、CPLD控制顯示的模塊。工作時(shí)可由DSP或單片機(jī)對其寫數(shù)據(jù)(十六進(jìn)制數(shù)),例如對數(shù)碼管的第零位為1時(shí),就可對其送入數(shù)據(jù)10H,然后通過CPLD譯碼顯示輸出。7、異步串行口模塊圖七232異步串口模塊模塊說明:該模塊可由單片機(jī)的串行接收(RXD)和發(fā)送(TXD)對它進(jìn)行數(shù)據(jù)的接收與發(fā)送操作,從而實(shí)現(xiàn)異步串行輸出。8、液晶屏顯示模塊圖八液晶屏顯示模塊模塊說明:本模塊是由單片機(jī)對其進(jìn)行控制(圖中的RS、R/W、LCDE、CS1、CS2)并寫入數(shù)據(jù),從而進(jìn)行各種顯示,可通過可調(diào)電位器U6對它進(jìn)行亮度的調(diào)節(jié)(出廠已經(jīng)調(diào)節(jié)好,一般情況不要去調(diào)節(jié))。9、譯碼顯示模塊圖九發(fā)光二極管譯碼顯示模塊模塊說明:該圖上相同的標(biāo)號表示有相同的電器連接,此模塊也可由DSP、單片機(jī)或CPLD對圖中的LED1~LED8進(jìn)行控制(其數(shù)據(jù)輸入與LED1~LED8相對應(yīng)),從而達(dá)到譯碼顯示的效果。10、串口485模塊圖十485串口模塊模塊說明:該模塊是由單片機(jī)的發(fā)送(TXD)與接收(RXD)信號對其進(jìn)行操作,然后通過485處理輸出,上圖中U10可調(diào)節(jié)匹配電阻。11、CAN總線模塊圖十一CAN總線模塊模塊說明:該模塊可于外接模塊進(jìn)行通信。DSP對它的控制信號CANRX和CANTX對它進(jìn)行操作,從而達(dá)到CAN總線傳輸。上圖中U19可調(diào)節(jié)匹配電阻。12、HPI口與單片機(jī)的接口模塊圖十二HPI口與單片機(jī)的接口模塊模塊說明:HPI接口的數(shù)據(jù)線通過245后直接掛到單片機(jī)的數(shù)據(jù)線上,其控制信號則由單片機(jī)的地址線和讀寫信號經(jīng)過CPLD做邏輯后來對其(HINT、WRD、HRDY、A4L、A3L、HCS、PULE1、PULE2)控制。13、同步串口D/A輸出模塊圖十三同步串口模塊模塊說明:該模塊由DSP的信號SPISIMO和SPICLK對其進(jìn)行操作,從而驗(yàn)證同步串口D/A實(shí)驗(yàn)。上圖中U21可調(diào)節(jié)參考電壓。第三章.主控板說明5402主控板的說明一5402主控板的標(biāo)準(zhǔn)配置1、DSP芯片TMS320VC5402PGE100一片2、CPLD芯片一片3、RAM芯片摩托羅拉MCM6343(128K*16BIT)二片4、FLASH芯片A28F10二片5、電平轉(zhuǎn)換和驅(qū)動電路6、電源模塊二5402主控板的插座定義J1為CPLD的I/O腳的擴(kuò)展,將其引到主板從而控制其他電路。具體管腳功能(如下圖)是:1~20腳是CPLD引出的I/O腳I/O1~I/O20;21腳為此板+12V引入;22腳為DSP的時(shí)鐘引出端HCLKOUT;23~25腳分別為FLASH的片選信號FCE、輸出使能信號FOE、寫信號FEW;26~30腳為CPLD的特殊輸入腳分別是全局使能GOE1、時(shí)鐘輸入Y1、全局使能GOE0、可用輸入TCK、時(shí)鐘輸入Y2;31腳是3.3V電壓輸出復(fù)位RS;32腳為DSP5402的復(fù)位/RS;這些管腳都可以作為二次開發(fā)時(shí)信號的輸入輸出之用。其具體相對于該板上的245的操作見框圖二。注意:這些I/O腳所對應(yīng)的主控板上CPLD的管腳分布是23-IO1,24-IO2,26-IO3,27-IO4,28-IO5,29-IO6,30-IO7,32-IO8,33-IO9,34-IO10,35-IO11,40-IO12,41-IO13,42-IO14,43-IO15,45-IO16,46-IO17,47-IO18,48-IO19,49-IO20,67-FCE,58-FOE,57-FEW,13-GOE1,62-GOE0,65-Y1,60-Y2,59-TCK。IO1IO3IO5IO7IO9IO11IO13IO15IO17IO19–12VFCEFWEY1TCKRS1357911131517192123252729312468101214161820222426283032IO2IO4IO6IO8IO10IO12IO14IO16IO18IO20CLKFOEGOE1GOE0Y2/RS插座J12、J2是DSP5402數(shù)據(jù)線引出口,1~16腳D0~D15。3、J3是CPLD的下載接口,如下圖:TCKTMSTDITDORESEND3.3VGNDBSCAN插座J34、J4為CPLD的BSCAN跳線,當(dāng)BSCAN信號接高電平(3.3V)時(shí),CPLD的TDI、TCK、TMS、TDO可作為其專用輸入腳,當(dāng)BSCAN信號接地(GND)時(shí)為CPLD的下載可編程方式。其插座如圖:GNDBSCAN3.3V123插座J45、J5是DSP的MP/MC信號與地相接為微計(jì)算機(jī)方式(另一種是微處理器方式),即要使系統(tǒng)工作在微計(jì)算機(jī)方式時(shí)將此插座兩腳連接起來。6、J6(CLKMD1)、J7(CLKMD2)、J8(CLKMD3)是DSP時(shí)鐘模式輸入信號的選擇,插上短路子是接地,否則是選擇該時(shí)鐘方式,其具體的方式參考DSP5402的資料。CLKMD1GNDCLKMD2GNDCLKMD3GND121212插座J6插座J7插座J87、J9為LVC4245電壓輸入3.3和5V(VCC)的選擇方式,如圖:3.3VLVCCVCC123插座J98、J10為FLASH芯片的電壓輸入3.3V和5V(VCC)的選擇,如圖:VCCFVCC3.3V123插座J109、J11是DSP5402的地址線輸出端,插座1~16腳是地址A15~A0,其17、18腳是電源+5V,19、20腳接地端。10、J12是DSP5402的地址線輸出端,插座8~2腳是地址A16~A22。11、J13是DSP5402的特征腳輸出端,其15~22腳是HPI的數(shù)據(jù)引出端HD0~HD7,詳細(xì)管腳圖如下:BDR0BCLKX0BFSX0BDR1BCLKX1BFSX1HD0HD2HD4HD6HCNTL0HBICHDS11357911131517192123252729312468101214161820222426283032IACKBDX0BCLKR0BFSR0BDX1BCLKR1BFSR1HD1HD3HD5HD7HCNTL1HCSHRDYHRWHINT插座J1312、J14為LVC4245的方向選擇端,當(dāng)它的方向選擇信號DIR與高電平+3.3V(VCC)相接時(shí)信號方向是A到B端,與低電平(GND)相接時(shí)。信號方向是B到A端,具體說明見框圖一和框圖二。插座如圖:VCCDIRGND123插座J1413、J15是FLASH的編程電壓選擇端,如果需要+12V則需外接如下圖:+5VVPP+12V123插座J1514、JP1是DSP5402的JTAG端,如下圖:TMSTDI3.3VTDOTCKTCKEMU01357911132468101214TRSTGNDGNDGNDGNDEMU1插座JP115、JP2是LVC4245的輸出使能信號OE的選擇端,如下圖+3.3VOEGND123插座JP216、P1為電源插座,引入+5V的電壓。內(nèi)芯為+5V。三5402主控板的硬件連接框圖板上地址、數(shù)據(jù)線的連接方式如下(J2、J12、J11的具體管腳參考上述管腳定義):框圖一板上控制線的連接方式如下(J1、J14的具體管腳參考上述管腳定義):框圖二DSP芯片對雙口RAM進(jìn)行操作時(shí),其I/O地址是8000H:框圖三DSP芯片與HPI口的連接方式如下:框圖四DSP對FLASH進(jìn)行操作時(shí)的連接方式,它的地址是框圖五第四章.啟動硬件仿真系統(tǒng)4.1硬件仿真器的安裝與使用4.1.1硬件仿真系統(tǒng)的安裝第一步、取出SZ-DSPII實(shí)驗(yàn)平臺,檢查配件是否齊全(見實(shí)驗(yàn)平臺內(nèi)的裝箱單)A.關(guān)閉PC機(jī)電源,將專用25芯并口電纜插入并口中,注意插接要穩(wěn)固。安裝好后,用專用25芯并口電纜的另一頭連接仿真器。啟動PC機(jī),驅(qū)動程序在仿真器隨機(jī)光盤里。第二步、不連接電源,將DSP(所配置如LF2407、VC5402、VC33等)板按照主板說明書插入實(shí)驗(yàn)箱上的插槽中(出廠時(shí)已插好)。第三步、開啟電源。如安裝成功:此時(shí),實(shí)驗(yàn)平臺上的+12V、-12V、+5V、-5V指示燈亮起。4.1.2硬件仿真器的使用硬件仿真器是數(shù)字信號處理系統(tǒng)開發(fā)的必備工具,它是采用邊界掃描技術(shù)和DSP芯片通過JTAG口相連接。實(shí)現(xiàn)了主機(jī)對DSP芯片的完全檢測和控制。可以通過JTAG和相應(yīng)的軟件的再現(xiàn)調(diào)試開發(fā)工作。硬件仿真器的用法比較簡單,只要將JTAG連接正確(出廠時(shí)已經(jīng)連接好),DSP芯片能夠正常工作并且軟件調(diào)試環(huán)境配置正確即可以應(yīng)用。上面給出JTAG的定義;4.2開發(fā)系統(tǒng)軟件安裝配置和應(yīng)用4.2.1開發(fā)系統(tǒng)軟件安裝CodeComposerStudio軟件安裝系統(tǒng)要求要使用CodeComposerStudio,你的操作平臺必須滿足以下的要求:●IBMPC(或兼容機(jī))●MicrosftWindow98●32M內(nèi)存,100M硬盤空間,奔騰處理器,SVGA(800*600)CodeComposerStudio的安裝完整的安裝CCS軟件包括以下兩個步驟:(1)安裝CCS到系統(tǒng)中。將CCS安裝光盤放入到光盤驅(qū)動器中,運(yùn)行CCS安裝程序setup.exe,將CCS安裝在C盤根目錄下。安裝完成后,在桌面會有“CCSC50001.20”和“setupCCSC50001.20”兩個快捷方式圖標(biāo)。分別對應(yīng)CCS應(yīng)用程序和CCS配置程序。(2)運(yùn)行CCS配置程序設(shè)置驅(qū)動程序。如果CCS是在硬件目標(biāo)板上運(yùn)行,則先要安裝目標(biāo)板驅(qū)動卡,然后運(yùn)行“CCSsetup”配置驅(qū)動程序,最后才能執(zhí)行CCS。除非用戶改變CCS應(yīng)用平臺類型,否則只需運(yùn)行一次CCS配置程序。4.3CCS軟件的設(shè)置安裝CCS軟件與普通的程序安裝類似,沒有特殊要求。下面介紹安裝完成后如何設(shè)置CCS軟件。運(yùn)行軟件(即桌面上的SetupCCStudio圖標(biāo))。點(diǎn)擊InstallaDeviceDriver,選擇光盤附帶的相應(yīng)的驅(qū)動程序。例如:54X系列:EPP開發(fā)器為sdgo5xx32.dll;2X系列:EPP開發(fā)器為sdgo2xx32.dll;此時(shí),AvailableBoard/SimulatorType一欄中會出現(xiàn)相應(yīng)的驅(qū)動圖標(biāo);把該圖標(biāo)拖動到最左邊的SystemConfiguration一欄中,出現(xiàn)BoardProperties對話框。在BoardName&DataFile欄中,點(diǎn)擊NEXT;進(jìn)入下一頁,會顯示板卡的I/O口值,將I/O口值修改為0x378,再點(diǎn)擊NEXT,在ProcessorConfiguration窗中,在AvailableProcessor選擇然后,點(diǎn)擊AddSingle,對話框右邊出現(xiàn)CPU-1圖標(biāo)。Finish,CodeComposerStudioSetup程序,選擇保存。再重新啟動PC機(jī)時(shí)將BIOS的并行端口模式設(shè)置為:EPP方式。至此設(shè)置成功!運(yùn)行CCSC50001.20軟件,成功進(jìn)入界面,則說明軟硬件安裝成功。4.4CCS文件名介紹在使用CCS前,應(yīng)該先了解以下軟件的文件名約定(在編寫程序時(shí)最好在某一盤符根目錄下建立一文件夾,將所有的用戶文件放置該文件夾中,建議最好用字母來作為所有文件的文件名,而不要用漢字或數(shù)字):project.makCCS定義的工程文件program.cC程序文件program.asm匯編語言程序文件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.cdbCCS的設(shè)置數(shù)據(jù)庫文件,是使用DSP/BIOSAPI必須的,其他沒有使用DSP/BIOSAPI的程序也可以使用,當(dāng)新建一個設(shè)置書記眼庫時(shí),會產(chǎn)生下面的文件。programcfg.cmd連接命令文件programcfg.h54頭文件programcfg.h54匯編原文件4.5編寫一個簡單的程序這一部分將介紹如何在CCS下面新建一個程序,及如何編譯、連接、下載、調(diào)試程序。

我們將新建一個簡單的程序,在窗口顯示“HelloWorld”4.5.1新建一個工程1)如果你的CCS安裝在C:\ti目錄下,請?jiān)贑:\ti\myproject目錄下新建一個目錄,名為hello2)將c:\ti\c5400\tutorial\hello下的所有文件拷貝到新目錄中3)運(yùn)行CCS程序4)選擇ProjectAs菜單5)在窗口中,選擇你新建的目錄,鍵入myhello作為文件名,然后點(diǎn)擊Save.CCS會給你新建一個叫myhello.mak的工程文件,他將保存你的工程文件設(shè)置,和工程引用的相關(guān)文件。4.5.2往工程中加入文件1)選擇project/AddFilestoProject,選擇hello.c,加入文件中.2)選擇project/AddFilestoProject,在文件類型選項(xiàng)中選擇ASM文件(*.a*,*.s*).選擇vector.asm,加入文件,這個文件中包括了一些匯編指令,使RESET中斷能指向C程序的入口c-int00.在其中你還可以定義其他的中斷向量,或可以使用DSP/BIOS自動定義所有的中斷向量.3)選擇project/AddFilestoProject,在文件類型選項(xiàng)中選擇CMD文件(*.cmd).選擇hello.cmd4)選擇project/AddFilestoProject在文件類型選項(xiàng)中選擇庫文件(*.o*,*.lib).選擇c:\ti\c5400\cgtools\lib目錄,選擇rts.lib文件.5)此時(shí),可以在工作窗口的工程視窗myhello.mak旁的+號,展開工程查看其中的文件結(jié)果如下圖所示:6)注意此時(shí),一些包含的文件不會出現(xiàn)在inclde目錄下,編譯后CCS會自動加入,不必手動執(zhí)行.4.5.3瀏覽代碼和windows的瀏覽器相似,只要打開+號展現(xiàn)下面的文件,然后雙擊文件的圖標(biāo),在主窗口就會顯示相應(yīng)文件的原始代碼。4.5.4編譯/執(zhí)行程序1)選擇project/RebuildAll或工具條中的相應(yīng)按鈕。2)編譯成功后,選擇File/LoadProgram。選擇你剛編譯的可執(zhí)行程序myhello.out3)選擇Debug/Run,或工具條中的相應(yīng)圖標(biāo)。4)運(yùn)行程序后,在標(biāo)準(zhǔn)輸出窗口中會出現(xiàn)“helloworld!”.4.6程序調(diào)試的環(huán)境應(yīng)用4.6.1跟蹤/調(diào)試程序1)選擇Debut/Restart,重新執(zhí)行程序2)不全速運(yùn)行,而是選擇Debug/StepInto或按F8,單步執(zhí)行.3)單步執(zhí)行程序的View/CPURegisters/CPURegister觀察主要寄存器的變化。4)對不熟悉的指令,可查找相應(yīng)說明。4.6.2自己練習(xí)的內(nèi)容選擇Project/Option,找到DefineSymbols對話窗,填入FILEIO,然后,重新編譯/下載程序,看看有什么變化,如有問題不能解決,請查找CCS的英文幫助手冊。4.6.3關(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í)的默認(rèn)設(shè)置,不熟悉的用戶最好不要隨意修改)。如果是下載過程中出現(xiàn)問題,可以嘗試Oebug/ResetDSP,或按下硬件上的復(fù)位鍵。4.7CCS軟件應(yīng)用和DSP編程4.7.1概述本節(jié)介紹DSP應(yīng)用軟件的開發(fā)流程和涉及到的軟件開發(fā)工具。一個DSP應(yīng)用軟件的標(biāo)準(zhǔn)開發(fā)流程如圖所示。C源程序C源程序連接器COFF目標(biāo)文件宏偉、匯編器匯編源程序C編程器連接器COFF目標(biāo)文件宏偉、匯編器匯編源程序C編程器目標(biāo)文件庫運(yùn)行支持庫目標(biāo)文件庫運(yùn)行支持庫COFF執(zhí)行文件COFF執(zhí)行文件調(diào)試工具C5XDSP絕對列表交叉參考列表調(diào)試工具C5XDSP絕對列表交叉參考列表由上圖可見,軟件開發(fā)過程中將涉及到C編譯器、匯編器、連接器等開發(fā)工具。不過,這里的C編程器不像在PC上開發(fā)C程序一樣會輸出目標(biāo)文件(.obj),而是輸出滿足C5X條件的匯編語言(.asm)。而C5X中的C編程效率是較低的,所以它的C編譯器才輸出匯編程序,讓用戶可以對該匯編程序進(jìn)行最大限度的優(yōu)化,提高程序效率。C編譯器將在本章后面介紹,下面從匯編程序開始介紹軟件開發(fā)流程的各個環(huán)節(jié)。編制一個匯編程序,需要經(jīng)歷下列步驟:(1)用文本編輯器(Editor)編輯滿足C5X匯編器(Assembler)格式要求的匯編源程序調(diào)用匯編器匯編該源文件,如果源文件中調(diào)用了宏,匯編器還會到宏庫中搜索該宏。匯編之后生成格式為公共目標(biāo)文件格式(COFF,CommonObjectFileFormat)的目標(biāo)文件(.obj),稱為COFF目標(biāo)文件.調(diào)用連接器(Linker)連接目標(biāo)文件,如果包含了運(yùn)行支持庫和目標(biāo)文件庫,連接器還會到所保護(hù)的庫中搜索所需的成員。連接之后生成可執(zhí)行的COFF執(zhí)行文件(.out)將COF執(zhí)行文件下載到C5XDSP中執(zhí)行。同時(shí)也可借助調(diào)試工具(DebuggingTool)對程序進(jìn)行跟蹤調(diào)試和優(yōu)化,也可利用交叉參考列表器(Cross-referenceLister)和絕對列表器(AbsoluteLister)生成一些包含調(diào)試信息的表。下面先介紹匯編文件(.asm)格式。4.7.2匯編源程序(.asm)格式C5X的程序以段(Section)為基本單元構(gòu)成,一個程序文件由若干段構(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個:“.text”、“.data”、“.bss”。其中,“,text”為程序代碼段,而“.data”為數(shù)據(jù)段,“.bss”為變量段,所以“.text”和“.data”是初始化段,而“.bss”是未初始化段,用戶自定義用“.sect”和“.usect”兩個匯編指示符來完成。其中“.sect”用于定義初始化段,“.usect”用于定義未初始化段,語法如下:symbol.set“section-name”symbol.set“section-name”,length4.7.3匯編器本節(jié)介紹C5X匯編器的使用,在編輯好匯編文件后就可調(diào)用匯編器對文件進(jìn)行匯編。先來看看C5X匯編器的情況。匯編器概述匯編器把匯編語言源文件匯編成COFF目標(biāo)文件。TMS320C5X匯編器為:asm500(algebraicassembler)。用于匯編采用C5X的助記符指令編寫的源文件:這個匯編器可完成如下工作:處理匯編語言源文件中的源語句,生成一個可重新定位的目標(biāo)文件;根據(jù)要求,產(chǎn)生源程序列表文件,并提供對源程序列表文件的控制;將代碼分成段,并為每個目標(biāo)代碼段設(shè)置一個段程序計(jì)數(shù)器SPC(SectionProgranCounter),并大代碼和數(shù)據(jù)匯編到指定的段中,在存儲器中為未初始化段留出空間;定義(.def)和引用(.ref)全局符號(globalsymbol),根據(jù)要求,將交叉參考列表加到源程序列表中;匯編條件段;支持宏調(diào)用,允許在程序中或在庫中定義宏。匯編器接受匯編語言源文件作為輸入,匯編語言源文件可以是文本編輯器直接編寫的也可以是由C語言竟編譯后得到的。匯編器調(diào)用方法可以在命令行用如下命令格式調(diào)用匯編器,也可以在集成開發(fā)環(huán)境下由CCS調(diào)用asm500(inputfile(objectfile(listingfile)))(-options)asm500為調(diào)用代數(shù)匯編器。Inputfile為匯編源文件文件名。如果不寫擴(kuò)展名,匯編器將使用缺省的.asm。Objectfile為匯編器輸出的COFF目標(biāo)文件名。如果不寫擴(kuò)展名,匯編器將使用缺省的.obj,如果連目標(biāo)文件名都不寫,匯編器將使用輸入的文件名作為目標(biāo)文件名。Listingfiel為匯編器輸出的列表文件名。如果不寫列表文件名也不寫列表選項(xiàng)—1或-X,匯編器將不會生成列表文件。如果有列表文件名,將生成列表文件;如果沒有列表文件名,而有列表選項(xiàng),匯編器將使用輸入文件名生成擴(kuò)展名為.list的列表文件。Options為匯編選項(xiàng)。選項(xiàng)不分大小寫,可以放在命令行中匯編命令之后的任何地方。只要有連字符“—”就作為選項(xiàng)處理。不帶參數(shù)的單個字母選項(xiàng)可以組合在一起,如—lc等效與—1—c。而帶有參數(shù)的選項(xiàng),如—1,則必須單獨(dú)指定。4.7.4COFF目標(biāo)文件TMS320C5X的匯編器和連接器都會生成公共目標(biāo)文件格式(COFF,CommimnObjectFileFormat)的目標(biāo)文件。在本章中,將匯編器生成的文件稱為COFF的目標(biāo)文件,將連接器生成的文件稱為COFF執(zhí)行文件。目前,COFF目標(biāo)文件格式已被廣泛使用,因?yàn)樗С帜K化(段)編程,能夠提供有效靈活的管理代碼段和目標(biāo)系統(tǒng)(TargetSystem)存儲空間的方法。COFF文件結(jié)構(gòu)1、一個文件頭長度為22字節(jié),包含COFF文件結(jié)構(gòu)的版本號,段頭的數(shù)量,創(chuàng)建日期、符號表起始地址和入口數(shù)量、可選文件頭的長度等信息??蛇x的文件頭信息由連接器生成,包含執(zhí)行代碼的長度(字節(jié))和起始地址、初始化數(shù)據(jù)的長度和起始地址、未初始化段的長度、程序入口地址等信息,以便在下載是進(jìn)行重定位。各個段的頭信息列表每個段都有一個頭,用于定義各段在COFF文件中的起始位置。段頭包含段的名稱、物理地址、虛擬地址、長度、原始數(shù)據(jù)長度等信息。4、每個初始化段的原始數(shù)據(jù)包含每個初始化段的原始數(shù)據(jù),即需要寫入程序存儲空間的代碼和初始化數(shù)據(jù).5、每個初始化段的重定位信息匯編器自動生成各初始化段的重定位入口信息,連接時(shí)再由連接器讀取該入口信息并結(jié)合用戶對存儲空間的分配進(jìn)行重定位.每個初始化段的行號入口(entry)主要用于C語言程序的符號調(diào)試.因?yàn)镃程序先被編譯為匯編程序,這樣,匯編器就會在匯編代碼前生成一個行號,并將該行號映射到C源程序里相應(yīng)的行上,便于調(diào)試程序。7、一個符號表用于存放程序中定義的符號的入口,以便調(diào)試。8、一個字符串表表中直接使用符號名稱:當(dāng)符號名稱超過8個字符時(shí),就在符號表中使用指針,該指針指向字符串表中對應(yīng)的符號名稱。段的順序匯編器在將匯編源程序匯編成COFF目標(biāo)文件時(shí),將按“.text..data.用戶自定義初始化段、.bss.用戶自定義未初始化段”的順序?qū)⒏鞫畏湃肷傻腃OFF文件中。因?yàn)槲闯跏蓟危?bss和.usect)僅僅是用于在存儲空間中保留空間,并沒有代碼或數(shù)據(jù),所以未初始化只有段頭,而沒有原始數(shù)據(jù)、重定位信息和行號等。另外,如果程序中沒有使用缺省的段(.text,.data和.bss),那么它們在COFF文件中也沒有原始數(shù)據(jù)、重定位信息和行號等,因?yàn)樗鼈兊脑紨?shù)據(jù)長度為零。4.7.5鏈接器匯編器生成COFF目標(biāo)文件后,就可以調(diào)用鏈接器進(jìn)行鏈接了。本節(jié)介紹C5X鏈接器的使用。鏈接器概述C5X的鏈接器能夠把COFF目標(biāo)文件鏈接成可執(zhí)行文件(.out)。它允許用戶自行配置目標(biāo)系統(tǒng)的存儲空間,也就是為程序中的各段分配存儲空間。鏈接器能根據(jù)用戶的配置,將各段重定位到指定的區(qū)域,包括各段的起始地址、符號的相對偏移等。因?yàn)閰R編器并不關(guān)心用戶的定義,而是直接將“.text”的起始地址、符號的相對偏移等,因?yàn)閰R編器并不關(guān)心用戶的定義,而是直接將“.text”的起始地址設(shè)為000000h,后面接著是.data和用戶自定義段。如果用戶不配置存儲空間,鏈接器也將按同樣的方式定位各段。C5X的鏈接器能夠接受多個COFF目標(biāo)文件(.obj),這些文件可以是直接輸入的,也可以是目標(biāo)文件庫(obiectlibrary)中包含的。在多個目標(biāo)文件的情況下,鏈接器將會把各個文件中的相同段組合在一起,生成COFF執(zhí)行文件。用鏈接器鏈接目標(biāo)文件時(shí),它要完成下列任務(wù):將各段定位到目標(biāo)系統(tǒng)的存儲器中;為符號和各段指定最終的地址;定位輸入文件之間未定義的外部引用。用戶可以利用鏈接器命令語言來編制鏈接器命令文件(.cmd),自行配置目標(biāo)系統(tǒng)的存儲空間分配,并為各段指定地址。常用的命令指示符有MEMORY和SECTIONS這兩個,利用它們可以完成下列功能:為各段指定存儲區(qū)域;組合各目標(biāo)文件中的段;在鏈接時(shí)定義或重新定義全局符號。鏈接器調(diào)用方法調(diào)用鏈接器的命令格式為:Ink500(-options)filenamel……filenamen其中.Ink500為鏈接器調(diào)用命令。Filename為輸入文件名,可以是目標(biāo)文件、鏈接器命令文件和庫文件。輸入文件的缺省擴(kuò)展名是.obj。使用其他擴(kuò)展名時(shí)必須顯示指定。鏈接器能夠確定輸入文件是目標(biāo)文件還是包含鏈接器命令的ASCLL文件。連接器的缺省輸出文件名是.a.out。Options為鏈接器的選項(xiàng),用于控制鏈接器操作,可以放在命令行或鏈接器命令文件的任何地方。鏈接器的調(diào)用方法有下列4種:定選項(xiàng)和文件名。例如:Ink500-olink.outfile1.objfile2.obj.輸入Ink500命令,在鏈接器給出的提示符下輸入相應(yīng)內(nèi)容;Commandfiles:可以輸入一個或多個目標(biāo)文件;Objectfiles(.obj):可以輸入一個或多個目標(biāo)文件,文件名之間用空格或逗號隔開;Outputfile(a.out)Option:鏈接器輸出文件名,缺省為a.out;Option:選項(xiàng)可以在命令行中給出,也可以在這里給出。把目標(biāo)文件名和選項(xiàng)放入一個鏈接器命令文件。假定一個命令文件linker.cmd包含有以下幾行:-olink.outfile1.objfile2.obj在命令行運(yùn)行鏈接器:Ink500linker.cmd。則鏈接器鏈接兩個文件fild1.obj和file2.obj產(chǎn)生名為Iink.out的輸出文件。在使用命令文件時(shí),仍然可以在命令行使用選項(xiàng)和文件名,例如:Ink500-mfile1.mapfile2.cmdfile3.obj在集成開發(fā)環(huán)境CCS下,先寫好連接命令文件和相應(yīng)的選項(xiàng),然后由CCS自行調(diào)用。鏈接器命令文件如前所述,連接器命令文件允許用戶將鏈接信息放如一個文件中,以便于在相同情況下的多次調(diào)用,同時(shí)還可以靈活應(yīng)用MEMORY和SECTIONS命令配置存儲空間。鏈接器命令文件為ASCLL文件,包含以下內(nèi)容:輸入文件名,可以是目標(biāo)文件,庫文件或其他命令文件;鏈接器選項(xiàng);MEMORY和SECTIONS命令,MEMORY用于指定目標(biāo)存儲器配置,SECTIONS用于指定段的地址;賦值語句,用于定義全局符號,并賦值。注意,在鏈接器命令文件中,不能將下列保留字用作符號或段的名稱:4.7.6C編譯器及其他本節(jié)介紹C編譯器、交叉參考列表器和絕對列表器。C編譯器C編譯器包含三個功能模塊:語法分析、代碼優(yōu)化和代碼產(chǎn)生,如下圖所示。其中,語法分析()完成C語法檢查和分析;代碼優(yōu)化()對程序進(jìn)行優(yōu)化,以便提高效率;代碼產(chǎn)生()將C程序轉(zhuǎn)換成C5X的匯編源程序。C編譯器C編譯器匯編源程序C源程序匯編源程序C源程序代碼產(chǎn)生優(yōu)化可選語法分析代碼產(chǎn)生優(yōu)化可選語法分析C5X的C編程器可以單獨(dú)使用,也可以連同鏈接器一起完成編譯、匯編和鏈接的工作.C編譯器的調(diào)用格式為:C1500(-options)(filenames)(-z(link-options))(objectfiles)其中,C1500為調(diào)用命令。Filenames為輸入文件名。Objectfiles為調(diào)用連接器時(shí)輸入的目標(biāo)文件。Options為編譯選項(xiàng).。如:-q屏蔽列表器輸出提示信息。-z為調(diào)用鏈接器的知識,當(dāng)有-z時(shí)就表示在編譯之后要調(diào)用鏈接器。Link-options為調(diào)用鏈接器時(shí)的鏈接選項(xiàng)。例如:C1500symtab.cfile.c.seek.asm就是將文件symtab.c和file.c編譯生成匯編程序seek.asm。2、交叉參考列表器交叉參考列表器屬于調(diào)式工具,能以鏈接器輸出的文件為輸入,生成一個交叉參考列表。該交叉參考列表將列出程序中的符號、符號的定義機(jī)器引用等。交叉參考列表器的調(diào)用格式為:xref500(-options)(inputfilename(outputfilename))其中,xref500為調(diào)用命令。Filenames為輸入/輸出文件名。Options為選項(xiàng).:-lnum指定輸出文件中每頁的行數(shù);-q屏蔽列表器輸出提示信息。3、絕對列表器絕對列表器屬于調(diào)試工具,能以鏈接器輸出的文件為輸入,生成一個列表文件()。該列表文件將列出程序代碼的絕對地址。絕對列表器的調(diào)用格式為:其中,abs500為調(diào)用命令。Inputfile為輸入文件名。Options為選項(xiàng):-e.改變程序文件的缺省命名規(guī)則(缺省規(guī)則:匯編文件為asm,C文件為.c頭文件為.h);-q屏蔽列表器輸出提示信息。4.8CCS應(yīng)用詳解4.8.1概述利用CCS集成開發(fā)環(huán)境,用戶可以在一個開發(fā)環(huán)境下完成工程定義、程序編輯、編譯連接、調(diào)試和數(shù)據(jù)分析等工作環(huán)節(jié)。使用CCS開發(fā)應(yīng)用程序的一般步驟為:打開或創(chuàng)建一個工程文件。工程文件中包括源程序(C或匯編)、目標(biāo)文件、庫文件、連接命令文件和包含文件。關(guān)于工程文件的使用請參見2.3節(jié)。使用CCS集成編輯環(huán)境,編輯各類文件。如頭文件(文件),命令文件(文件)和源程序(.C,.文件)等。CCS集成編輯環(huán)境使用請參見2.4節(jié)。對工程進(jìn)行編譯。如果有語法錯誤,將在構(gòu)建(B)窗口中顯示出來。用戶可以根據(jù)顯示的信息定位錯誤位置,更換錯誤。有關(guān)編譯和調(diào)試的進(jìn)一步描述參見2.5至2.9節(jié)(4)排除程序的語法錯誤后,用戶可以對計(jì)算結(jié)果/輸出數(shù)據(jù)進(jìn)行分析,評估算法性能。CCS提供了探針、圖形顯示、性能測試等工具來分析數(shù)據(jù)、評估性能。4.8.2CCS的窗口、主菜單和工具條CCS應(yīng)用窗口下圖為一個典型CCS集成開發(fā)環(huán)境窗口示例。整個窗口由主菜單、工具條、工程窗口、編輯窗口、圖形顯示窗口、內(nèi)存單元顯示窗口和寄存器顯示窗口等構(gòu)成。工程窗口用來組織用戶的若干程序構(gòu)成一個項(xiàng)目,用戶可以從工程列表中選中需要編輯和調(diào)試的特定程序。在源程序編輯/調(diào)試窗口中用戶既可以編輯程序、又可以設(shè)置斷點(diǎn)、探針,調(diào)試程序。反匯編窗口可以幫助用戶查看機(jī)器指令,查找錯誤。內(nèi)存和寄存器顯示窗口可以查看、編輯內(nèi)存單元和寄存器。圖形顯示窗口可以根據(jù)用戶需要直接或經(jīng)過處理后顯示數(shù)據(jù)。用戶可以通過主菜單Windows條目來管理各窗口。關(guān)聯(lián)菜單在任一CCS活動窗口中單擊鼠標(biāo)右鍵都可以彈出與此窗口內(nèi)容相關(guān)的菜單,我們稱其為關(guān)聯(lián)菜單(ContextMenu)。利用此菜單,用戶可以對本窗口內(nèi)容進(jìn)行特定操作。例如,在Pro-jectViewWindows窗口中單擊鼠標(biāo)右鍵,彈出下圖所示菜單。選擇不同的條目,用戶完成添加程序,掃描相關(guān)性,關(guān)閉當(dāng)前工程等功能。主菜單主菜單中各選項(xiàng)的使用在后續(xù)的章節(jié)中會結(jié)合具體使用詳細(xì)介紹,在此僅簡略對菜單項(xiàng)功能作簡要說明.用戶如果需要了解更詳細(xì)的信息,請參閱CCS在線幫助“Commands”。常用工具條CCS將主菜單中常用的命令篩選出來,形成四類工具條:標(biāo)準(zhǔn)工具條,編輯工具條,工程工具條和調(diào)試工具條,依次如圖所示。用戶可以單擊工具條上的按鈕執(zhí)行相應(yīng)的操作。標(biāo)準(zhǔn)工具條編輯工具條工程工具條4.8.3建立工程文件下面按照CCS開發(fā)應(yīng)用程序的一般步驟,先介紹工程文件的建立與使用.與VisualBasic,VisualC和Delphi等集成開發(fā)文件工具類似,CCS采用工程文件來集中管理一個工程。一個工程包括源程序、庫文件、鏈接命令文件和文頭文件等,他們按照目錄樹的結(jié)構(gòu)組織在工程文件中。工程構(gòu)建(編譯連接)完成后生成可執(zhí)行文件。一個典型的工程文件記錄下述信息:源程序文件名和目標(biāo)庫;頭文件。工程視窗顯示了工程的整個內(nèi)容。例如下圖顯示了工程Hello.mak所包含的內(nèi)容。其中,Include文件夾包含源文件中以“.include”聲明的文件,文件夾包含所有后綴為“.lib”的庫文件,文件夾包含所有的后綴為“.c”和“.asm”的源文件。文件夾上的“+”符號表示該文件夾被折疊,“——”表示該文件夾被展開。創(chuàng)建、打開和關(guān)閉工程命令用于創(chuàng)建一個新的工程文件(后綴為“.mak”)此后用戶就可以編輯源程序、連接命令文件和頭文件等,然后加入到工程中。工程編譯鏈接后產(chǎn)生的可執(zhí)行程序后綴“.out”。命令ProjectOpen用于打開一個已存在的工程文件。例如,用戶打開位于“c:\ti\c5400\tutorial\hello”目錄下的hello.mak工程文件時(shí),工程中包含的各項(xiàng)信息被載人,其工程窗口如前面圖所示。命令ProjectClose用于關(guān)閉當(dāng)前工程文件。在工程中添加/刪除文件以下任一操作都可以添加文件到工程中;(1)選擇命令Project—AddFilestoProject…(2)在工程視圖中右鍵單擊調(diào)出關(guān)聯(lián)菜單,選擇AddFiles…上圖所示的Source源文件及Libraries庫文件需要用戶指定加入,頭文件(Include文件)通過掃描相關(guān)性自動加入到工程中。在工程視圖中右鍵單擊某文件,從關(guān)聯(lián)菜單中選擇”Removefromproject”可以從工程中刪除此文件.4.8.3..3.掃描相關(guān)性如前所述,頭文件加入到工程中通過“掃描相關(guān)性”完成。另外,在使用增量編譯時(shí)(參見2.5節(jié)“構(gòu)件工程”),CCS同樣要知道哪些文件相互相關(guān)聯(lián)。這些都通過“相關(guān)性列表”來實(shí)現(xiàn)。CCS的工程中保存了一個相關(guān)聯(lián)性列表,它指明每個源程序和那些包含文件相關(guān)。在構(gòu)建工程時(shí),CCS使用命令Project+ShowDependencies或ProjectScanAllDependencies創(chuàng)建相關(guān)樹。在源文件中以“#include”、“。indluce”和“.copy”指示的文件被自動加入CJ工程文件中。編輯源程序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)。工具條和快捷鍵命令ViewStandardToolbar和View—EditToolbar分別調(diào)出標(biāo)準(zhǔn)工具條和編輯工具條。工具條上的按鈕含義參見2.2.4。CCS內(nèi)嵌編輯器所用快捷鍵可查閱在線幫助的“Help—UsingCodeComposerStudio+TheIntegratedEditor+UsingKeyboardShortcuts個DefaulteyboardShortcuts”。用戶可以根據(jù)自己的喜好定義快捷鍵。除編輯命令外,CCS所有的菜單命令都可以定義快捷鍵。選擇OptionKeyboard命令打開自定義快捷方式的對話框,選中需要定義快捷鍵的命令。如果此命令已經(jīng)有快捷鍵,則在Assigned框架中有顯示,否則為空白。用戶可以點(diǎn)擊Add按鈕,敲下組合鍵(一般為Ctfi+某鍵),則響應(yīng)按鍵描述顯示在“Pressnewshon-cut”框中。查找替換文字除具有與一般編輯器相同的查找、替換功能外,CCS還提供了一種“在多個文件中查找”功能。這對在多個文件中追蹤、修改變量、函數(shù)特別有用。命令EditFiles或點(diǎn)擊標(biāo)準(zhǔn)工具條的“多個文件中查找”按鈕,彈出如下對話框如下圖所示。分別在“Findwhat”、“Infilesof”和“Infolder”中鍵入需要查找的字符、搜尋目標(biāo)文件類型以及文件所在目錄,然后點(diǎn)擊“Find”按鈕就可。查找的結(jié)果顯示在輸出窗口中,按照文件名、字符串所在行號、匹配文字行依次顯示。使用書簽書簽的作用在于幫助用戶標(biāo)記著重點(diǎn)。CCS允許用戶在任意類型文件的任意一行設(shè)置書簽,書簽隨CCS工作空間(Workspace)保存,在下次載入文件時(shí)被重新調(diào)入。設(shè)置書簽將光標(biāo)移到需要設(shè)置書簽的文字行,在編輯視窗中單擊右鍵,彈出關(guān)聯(lián)菜單,從“Book,marks”子菜單中選中“SetaBookmark”?;蛘唿c(diǎn)擊編輯工具條的“設(shè)置或取消標(biāo)簽”按鈕。光標(biāo)所和在行被高亮標(biāo)識,表示標(biāo)簽設(shè)置成功。設(shè)置多個書簽后,用戶可以點(diǎn)擊編輯工具條的“上一書簽”、“下一書簽”快速定位書簽。顯示和編輯書簽列表以下兩種方法都可以顯示和編輯書簽列表。在工程窗口中選擇Bookmark標(biāo)簽,得到書簽列表如下圖所示。用戶可以雙擊某書簽,則在編輯窗口,光標(biāo)跳轉(zhuǎn)至此書簽所在行。右鍵單擊之,用戶可以從彈出窗口中編輯或刪除此書簽。選擇命令“EditBookmarks”或點(diǎn)擊編輯工具條上的“編輯標(biāo)簽屬性”按鈕,得到下圖所示書簽編輯對話框。雙擊某書簽,則在編輯窗內(nèi)光標(biāo)跳轉(zhuǎn)至此書簽所在行,同時(shí)關(guān)閉此對話框。用戶也可以單擊某書簽并且編輯或刪除之。4.8.4構(gòu)建工程工程所需文件編輯完成后,可以對該工程進(jìn)行編譯鏈接,產(chǎn)生可執(zhí)行文件,為調(diào)試作準(zhǔn)備。CCS提供了4條命令構(gòu)建工程:編譯文件:命令ProjectComplie或單擊工程工具條“編譯當(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)建:命令ProjectStopBuild或單擊工程工具條“停止構(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。彈出對話框如下圖所示。在此對話框用戶可以設(shè)置有關(guān)編譯器,匯編器和鏈接器選項(xiàng)。有關(guān)選項(xiàng)的具體含義用戶參閱有關(guān)編譯器,匯編器和鏈接器等方面的內(nèi)容,或者查閱聯(lián)機(jī)幫助“UsingCodeComposerStudio+TheprojectEnvironment+SettingBuildOptions”用戶也可以對特定的文件設(shè)置編譯連接選項(xiàng)。操作方法為在工程視窗中右鍵單擊需要設(shè)置的程序,選擇FileSpecificOptionso然后在對話框中設(shè)置相應(yīng)選項(xiàng)。4.8.5調(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è)置斷點(diǎn),然后執(zhí)行程序停留在斷點(diǎn)處,查看寄存器的值或內(nèi)存單元的值,對中間數(shù)據(jù)進(jìn)行在線(或輸出)分析。反復(fù)這個過程直到程序完成預(yù)期的功能。載入可執(zhí)行程序命令File—LoadProgram載入編譯鏈接好的可執(zhí)行程序。用戶也可以修改“ProgramLoad”屬性,使得在構(gòu)建工程后自動裝入可執(zhí)行程序。設(shè)置方法為選擇命令Option—ProgramLoado使用反匯編工具在某些時(shí)候(例如調(diào)試C語言關(guān)鍵代碼),用戶可能需要深入到匯編指令一級。此時(shí)可以利用CCS的反匯編工具。用戶的執(zhí)行程序(不論是C程序或是匯編程序)載入目標(biāo)板或仿真器時(shí),CCS調(diào)試器自動打開一個反匯編窗口。對每一條可反匯編的語句,反匯編窗口顯示對應(yīng)的反匯編指令(某些C語句一條可能應(yīng)于幾條反匯編指令),語句所處地址和操作碼(即二進(jìn)制機(jī)器指令)O當(dāng)前程序指針PC(ProgramPoint)所在語句用彩色高亮表示。當(dāng)源程序?yàn)镃代碼時(shí),用戶可以選擇使用混合C源程序(C源代碼和反匯編指令顯示在同一窗口)或匯編代碼(只有反匯編指令)模式顯示。除在反匯編窗口中可以顯示反匯編代碼外,CCS還允許用戶在調(diào)試窗口中混合顯示C和匯編語句。用戶可以選擇命令View—MixedSource/Asm則在其前面出現(xiàn)一對選中標(biāo)志。選擇Debug—GoMain調(diào)試器開始執(zhí)行程序并停留在處C源程序顯示在編輯窗中,與C語句對應(yīng)的匯編代碼以暗色顯示在C語句下面。程序執(zhí)行控制在調(diào)試程序時(shí),用戶會經(jīng)常用到復(fù)位、執(zhí)行、單步執(zhí)行等命令。我們統(tǒng)稱其為程序執(zhí)行控制。下面我們依次介紹CCS的目標(biāo)板(包括仿真器)復(fù)位,執(zhí)行和單步操作。CCS提供了3種方法復(fù)位目標(biāo)板(1)ResetDSP:Debug—ResetDSP命令初始化所有的寄存器內(nèi)容并暫停運(yùn)行中的程序。如果目標(biāo)板不響應(yīng)命令,并且用戶正在使用一基于核的設(shè)備驅(qū)動,則DSP核可能被破壞,用戶需要重新裝入核代碼。對仿真器,CCS復(fù)位所有寄存器到其上電狀態(tài)。(2)Reset:Debug—Reset命令將PC恢復(fù)到當(dāng)前載入程序的人口地址。此命令不執(zhí)行當(dāng)前程序。(3)GoMain:Debug—GoMain命令在主程序人口處置一臨時(shí)斷點(diǎn),然后開始執(zhí)行。當(dāng)程序被暫?;蛴龅揭粋€斷點(diǎn)時(shí),臨時(shí)斷點(diǎn)被刪除。此命令提供了一快速方法來運(yùn)行用戶應(yīng)用程序。CCS提供了4種程序執(zhí)行操作執(zhí)行程序。命令為DebugRun或單擊調(diào)試工具條上的“執(zhí)行程序”按鈕。程序運(yùn)行直到遇見斷點(diǎn)為止。暫停程序。命令為DebugHalt或單擊調(diào)試工具條上的“暫停程序”按鈕。動畫程序。命令為DebugAnimate或單擊調(diào)試工具條上的“動畫程序”按鈕。用戶可以反復(fù)運(yùn)行執(zhí)行程序,直到遇見斷點(diǎn)為止。自由運(yùn)行。命令為DebugRunFree。此命令禁止所有斷點(diǎn),包括探針斷點(diǎn)和Profile斷點(diǎn),然后運(yùn)行程序。在自由運(yùn)行中對目標(biāo)處理器的任何訪問都將恢復(fù)斷點(diǎn)。若用戶在基于JTAG設(shè)備驅(qū)動上使用模擬時(shí)此命令將斷開與目標(biāo)處理器的連接,用戶可以拆卸JTAG或MPSD電纜。在自由運(yùn)行狀態(tài)下用戶也可以對目標(biāo)處理器進(jìn)行硬件復(fù)位。注意在仿真器中RunFree無效。3.CCS提供的單步執(zhí)行操作CCS提供的單步執(zhí)行操作有4種類型,它們在調(diào)試工具條上分別有對應(yīng)的快捷按鈕。羅列如下:(1)單步進(jìn)入(快捷鍵F8)。命令為Debug—StepInto或單擊調(diào)試工具條上的“單步進(jìn)入”按鈕。當(dāng)調(diào)試語句不是最基本的匯編指令時(shí),此操作將進(jìn)入語句內(nèi)部(如子程序或軟件中斷)調(diào)試。(2)單步執(zhí)行。命令為DebugStepOver或單擊調(diào)試工具條上的“單步執(zhí)行”按鈕。此命令將函數(shù)或子程序當(dāng)作一條語句執(zhí)行,不進(jìn)其內(nèi)部調(diào)試。(3)單步跳出(快捷鍵Shift+)。命令為DebugStepOut或單擊調(diào)試工具條上的“單步跳出”按鈕。此命令將從子程序跳出。(4)執(zhí)行到當(dāng)前光標(biāo)處(快捷鍵Ctfi+F10)。命令DebugRuntoCursor或單擊調(diào)試工具條上的“執(zhí)行到當(dāng)前光標(biāo)處”按鈕。此命令使程序運(yùn)行到光標(biāo)所在的語句處。斷點(diǎn)設(shè)置斷點(diǎn)的作用在于暫停程序的運(yùn)行,以便觀察/修改中間變量或寄存器數(shù)值。CCS提供了兩斷點(diǎn):軟件斷點(diǎn)和硬件斷點(diǎn)。這可以在斷點(diǎn)屬性中設(shè)置。設(shè)置斷點(diǎn)應(yīng)當(dāng)避免以下兩種情形:將斷點(diǎn)設(shè)置在屬于分支或調(diào)用的語句上。將斷點(diǎn)設(shè)置在塊重復(fù)操作的倒數(shù)第一或第二條語句上。軟件斷點(diǎn)只有當(dāng)斷點(diǎn)被設(shè)置而且被允許時(shí),斷點(diǎn)才能發(fā)揮作用。下面我們依次介紹斷點(diǎn)的設(shè)置,刪除斷點(diǎn)和斷點(diǎn)的使能。斷點(diǎn)設(shè)置有兩種方法可以增加一條斷點(diǎn)。使用斷點(diǎn)對話框選擇命令DebugBreakpoints將彈出對話框如下圖所示。在“BreakpointType”攔中可以選擇“五條件斷點(diǎn)(BreakatLocation)”或“有條件斷點(diǎn)(Breakatldca”。NifexpressionisTURE)”。在“Location”攔中填寫需要中斷的指令地址。用戶可以觀察反匯編指令,確定指令所處地址。對C代碼,由于一條C語句可能對應(yīng)若干條匯編指令,難以用唯一地確定位置.為此用戶可以采用“fileNamelinelineNumbe廠”的形式定位源程序中的一條C語句。例如“hello.Cline32”指明hello.c在程序第32行處語句設(shè)置斷點(diǎn)。斷點(diǎn)類型和位置設(shè)置完成后,依次單擊“Add”和“OK”按鈕即可。斷點(diǎn)設(shè)置成功后,該語句條用彩色光條顯示如果用戶選擇的是帶條件斷點(diǎn),則“Expression”欄有效,用戶可以按照2.13節(jié)所述GEL語法輸入合適的表達(dá)式。當(dāng)此表達(dá)式運(yùn)算結(jié)果為真(true=1)時(shí),則程序在斷點(diǎn)位置暫停。否則繼續(xù)執(zhí)行下去。(2)采用工程工具條將光標(biāo)移到需要設(shè)置斷點(diǎn)的語句上,點(diǎn)擊工程工具條上的“設(shè)置斷點(diǎn)”按鈕。則在該語句位置設(shè)置一斷點(diǎn),默認(rèn)情況下為“無條件斷點(diǎn)”。用戶也可以使用斷點(diǎn)對話框修改斷點(diǎn)屬性,例如“五條件斷點(diǎn)”改變“有條件斷點(diǎn)”。斷點(diǎn)的刪除在上圖所示斷點(diǎn)對話框中,單擊“Breakpoint”列表中的一個斷點(diǎn),然后點(diǎn)擊“Delete”按鈕即可刪除此斷點(diǎn)。點(diǎn)擊“Deleteall”按鈕或工程工具條上的“取消所有斷點(diǎn)”按鈕,將刪除所有斷點(diǎn)。允許和禁止斷點(diǎn)在上圖所示斷點(diǎn)對話框中,單擊“EnableAll”或“DisableAll”將允許或禁止所有斷點(diǎn)。“允許”狀態(tài)下,斷點(diǎn)位置前的復(fù)選框中“對勾”符號,注意只有當(dāng)設(shè)置一斷點(diǎn),并使其“允許”時(shí),斷點(diǎn)才發(fā)揮作用。硬件斷點(diǎn)硬件斷點(diǎn)與軟件斷點(diǎn)相比,它并不修改目標(biāo)程序,因此適用于在ROM存儲器中設(shè)疊斷點(diǎn)的命令為:。對兩種不同的應(yīng)用目的,其設(shè)置方法為:1、對指令欄截(ROM程序中設(shè)置斷點(diǎn)),在斷點(diǎn)類型()欄中選擇“”?!啊睓谥刑钊胫谜Z句的地址,其方法與前面所述軟件斷點(diǎn)大眾設(shè)置一樣。“”欄中填入發(fā)計(jì)數(shù),既此指令執(zhí)行多少次后斷點(diǎn)才發(fā)生作用。依次單擊“”和“OK”按鈕即可。2、內(nèi)存讀寫的中斷,在斷點(diǎn)類型()欄中選擇()或(////)?!啊睓谥刑钊氪娴刂?。“”欄中填入發(fā)計(jì)數(shù)N。則當(dāng)讀寫此內(nèi)存單元。N次后,硬件斷點(diǎn)發(fā)生作用。硬件斷點(diǎn)的允許/禁止和刪除方法與軟件斷點(diǎn)的相同,不再述。探針斷點(diǎn)CCS的探針斷點(diǎn)提供了一種手段允許用戶在特定時(shí)刻從外部文件中讀人數(shù)據(jù)或?qū)懗鰯?shù)據(jù)到外部文件中。2.10節(jié)詳細(xì)介紹了探針斷點(diǎn)的設(shè)置與使用,此處略去不述。內(nèi)存、寄存器和變量操作在調(diào)試過程中,用戶可能需要不斷觀察和修改寄存器、內(nèi)存單元和數(shù)據(jù)變量。下面,我們依次介紹如何修改內(nèi)存塊,然后查看和編輯內(nèi)存單元、寄存器和數(shù)據(jù)變量。內(nèi)存塊操作CCS提供的內(nèi)存塊操作包括拷貝數(shù)據(jù)和填充數(shù)據(jù)塊。這在數(shù)據(jù)塊初始化時(shí)較為有用。1.拷貝數(shù)據(jù)塊功能:拷貝某段內(nèi)存到一新位置。命令:Edit—Memory—Cory,在對話框中填入源數(shù)據(jù)塊首地址、長度和內(nèi)存空間即可。2.填充數(shù)據(jù)塊功能:用特定數(shù)據(jù)填充某段內(nèi)存命令:Edit—Memory--Fill,在對話框中填寫內(nèi)存首地址、長度、填充數(shù)據(jù)和內(nèi)存空間類型即可。查看、編輯內(nèi)存CCS允許顯示特定區(qū)域的內(nèi)存單元數(shù)據(jù)。方法為選擇ViewMemory或單擊調(diào)試工具條上的“顯示內(nèi)存數(shù)據(jù)”按鈕。在彈出對話框中輸入內(nèi)存變量名(或?qū)?yīng)地址)、顯示方式即可顯示指定地址內(nèi)存單元。為改變內(nèi)存窗口顯示窗口中單擊右鍵,從關(guān)聯(lián)菜單中選擇Properties即彈出選項(xiàng)對話框。如下圖所示:內(nèi)存窗口選項(xiàng)包括以下內(nèi)容:(1)Address:輸入需要顯示內(nèi)存區(qū)域的起始地址。(2)QValue:顯示整數(shù)時(shí)使用的Q值(定位位置)。新的整數(shù)值=整數(shù)/2Q。(3)Format:從下拉菜單中選取數(shù)據(jù)顯示的格式。(4)UseIEEEFloat:是否使用IEEEE浮點(diǎn)格式。(5)Page:選擇顯示的內(nèi)存空間類型一程序、數(shù)據(jù)或I/O。(6)EnableReferenceBuffer:選擇此檢查將保存一特定區(qū)域的內(nèi)存快照以便用于比較。例如:用戶允許“EnableReferenceBuffer”選擇,并定義了地址范圍為0X0000—0X002F。此區(qū)段的數(shù)據(jù)將保存到主機(jī)內(nèi)存中。每次用戶執(zhí)行暫停目標(biāo)板、命中一斷點(diǎn)、刷新內(nèi)存等操作時(shí),編譯器都將比較參考緩沖區(qū)(ReferenceBuffer)與當(dāng)前內(nèi)存段的內(nèi)容數(shù)值發(fā)生變化的內(nèi)存單元將用紅色突出顯示。(7)StartAddress:用戶希望保存到參考緩沖區(qū)(ReferenceBuffer)的內(nèi)存段的起始地址。只有當(dāng)用戶選中“EnableReferenceBuffer”檢查框時(shí)此區(qū)域才被激活。(8)EndAddress:用戶希望保存到參考緩沖區(qū)的內(nèi)存段的終止地址。只有當(dāng)用戶選中“EnableReferenceBuffer”檢查框時(shí)此區(qū)域才被激活。(9)UpdateReferenceBufferAutomatically:若選擇此檢查框,則參與緩沖區(qū)的內(nèi)容將自動被內(nèi)存段(由定義參考緩沖區(qū)的起始/終止地址所規(guī)定的內(nèi)存區(qū)域)的當(dāng)前內(nèi)容覆蓋。在““欄下拉條中,用戶可以選擇多種顯示格式顯示內(nèi)存單元。編輯某一內(nèi)存單元的方法為:在內(nèi)存窗口中鼠標(biāo)左鍵雙擊需要修改的內(nèi)存單元,或者選擇命令,在對話框中指定需要修改的內(nèi)存單元地址和內(nèi)存空間類型,并輸入新的數(shù)據(jù)值即可。注意輸入數(shù)據(jù)前面加前綴“0X”為十六進(jìn)制,否則為十進(jìn)制。凡是前面所講到的需要輸入數(shù)值(修改地址、數(shù)據(jù))的場合,均可以輸入C表達(dá)式。C表達(dá)式由函數(shù)名,已定義的變量符號,運(yùn)算式等構(gòu)成。下面的例子都是合法的C表達(dá)式。例C表達(dá)式舉例MyFunction0x000+2*35*(mydata+10)(int)MyFunction+0x100PC+0X10CPU寄存器1.顯示寄存器選擇命令ViewCPURegistersCPURegister或單擊調(diào)試工具條上的“顯示寄存器”按鈕。CCS將在CCS窗口下方彈出一寄存器查看窗口2.編輯寄存器有3種方法可以修改寄存器的值;命令Edit+EditRegister。在寄存器窗口雙擊需要修改的寄存器。在寄存器窗口單擊右鍵,從彈出的菜單中選擇需要修改的寄存器。三種方法都將彈出一編輯對話框,在對話框中指定寄存器(如果在“”欄中不是所期望的寄存器)和新的數(shù)值即可。編輯變量命令EditEditVariable可以直接編輯用戶定義的數(shù)據(jù)變量,在對話框中填入變量名(Variable)和新的數(shù)值(Value)即可。用戶輸入變量名后,CCS會自動在Value欄中顯示原值。注意變量名前應(yīng)加“關(guān)”前綴,否則顯示的是變量地址。在變量名輸入欄,用戶可以輸入C表達(dá)式,也可以采用偏移地址@內(nèi)存頁方式來指定某內(nèi)存單元。例如:*0X1000@prog,0x2000@io和0X1000@data等通過觀察窗口查看變量在程序運(yùn)行中,用戶可能需要不間斷地觀察某個變量的變化情況CCS提供了觀察窗口(WatchWindow)用于在調(diào)試過程中實(shí)時(shí)地查看和修改變量值。加入觀察窗口查看變量選擇命令View—WatchWindow或單擊調(diào)試工具條上的“打開觀察窗口”按鈕,則觀察窗口出現(xiàn)在CCS的下部位置。CCS最多提供4個觀察窗口,在每一個觀察窗口中用戶都可以定義若干個觀察變量。有3種方法可以定義觀察變量:移到觀察窗口中按“Insert”鍵,彈出表達(dá)式加入對話框,在對話框中填入變量符號即可。光標(biāo)移到觀察窗口中單擊右鍵,從彈出菜單中選擇“InsertNewExpression”,在表達(dá)式加入對話框中填入變量符號即可。源文件窗口或反匯編窗口雙擊變量,在該變量反白顯示,右鍵單擊選擇“AddtoWatchWindows”則該變量直接進(jìn)入當(dāng)前觀察窗可列表。表達(dá)式的變量符號當(dāng)作地址還是變量處理取決于目標(biāo)文件是否包含有符號調(diào)試信息。若在編譯連接時(shí)有-G選項(xiàng)(此意味著包含符號信息),則變量符號當(dāng)作真實(shí)變量值處理,否則作為地址。對于后一種情況,為顯示該內(nèi)存單元的值,應(yīng)當(dāng)在其前面加上前綴號“關(guān)”。2.刪除某觀察變量有兩種方法可以從觀察窗口中刪去某變量:擊觀察窗口中某變量,選中后該變量以彩色亮條顯示。按“”鍵,則從列表中刪除此變量。中某變量,右鍵單擊,然后選擇“”3、觀察數(shù)組或結(jié)構(gòu)變量某些變量可能包含多個單元,如數(shù)組,結(jié)構(gòu)、指針等C這些變量加入到觀察窗口中時(shí),會有“+”或“-”的前綴?!?”表示此變量的組成單元已展開顯示,“+”表示此變量被折疊,組成單元內(nèi)容不顯示。用戶可以通過選中變量,然后按回車鍵來切換這兩種狀態(tài)。4、變量顯示格式用戶可以在變量名后邊跟上格式后綴以顯示不同數(shù)據(jù)格式C例如:或等。用戶可以用“快速觀察”按鈕來觀察某變量。有兩種操作方法:試窗口中雙擊選中需要觀察的變量,使其反白。點(diǎn)擊調(diào)試工具條上的“快速觀察”按鈕。中需要觀察的變量后,右鍵單擊從關(guān)聯(lián)菜單中選擇“”菜單。操作完成后,在彈出對話框中單擊“”按鈕,即可將變量加入到觀察窗口變量列表中。

4.8.6數(shù)據(jù)輸入與結(jié)果分析在開發(fā)應(yīng)用程序時(shí),常常需要使用外部數(shù)據(jù)。例如,用戶為了驗(yàn)證某個算法的正確性,需要輸入原始數(shù)據(jù),DSP程序處理完后,需要對輸出結(jié)果進(jìn)行分析。CCS提供了兩種方法來調(diào)用和輸出數(shù)據(jù)。數(shù)據(jù)讀入/寫出功能,即調(diào)用命令“”這種方式適用于偶爾的、手工:讀入和寫出數(shù)據(jù)場合。用探針()功能。即設(shè)置探針,通過將探針與外部文件關(guān)聯(lián)起來讀出讀入和寫出數(shù)據(jù)。這種方式適用于自動調(diào)入和輸出數(shù)據(jù)場合。4.8..6.1載入/保存數(shù)據(jù)“載入/保存數(shù)據(jù)”功能允許用戶在程序執(zhí)行的任何時(shí)刻從外部文件中讀入數(shù)據(jù)或保存數(shù)據(jù)文件中。需要注意的是,載入數(shù)據(jù)的變量應(yīng)當(dāng)是預(yù)先被定義并且有效的。載入外部數(shù)據(jù)程序執(zhí)行到適當(dāng)?shù)臅r(shí)候,需要向某變量定義的緩沖區(qū)載入數(shù)據(jù)時(shí),選擇命令File—Data--Load命令,彈出文件載入對話框,選擇預(yù)先準(zhǔn)備好的數(shù)據(jù)文件。此后,彈出一對話框如下圖所示。“Address”欄和“Length”欄已被文件頭信息自動填入。用戶也可以在對話框中重新指定變量名(或緩沖區(qū)首地址)和數(shù)據(jù)塊長度。保存數(shù)據(jù)到文件中程序執(zhí)行到適當(dāng)時(shí)候需要保存某緩沖區(qū)時(shí),選擇命令File—Data--Store彈出…—對話框要求給出輸出文件名。完成后,彈出—“StoreMemoryintoFileo”對話框。輸入需要保存變量名(或數(shù)據(jù)塊首地址)和長度,單擊“OK”按鈕即可。外部文件輸入/輸出CCS提供了一種“探針(probe)”斷點(diǎn)來自自動讀寫外部文件。所謂探針是指CCS在源程序某條語句上設(shè)置的一種斷點(diǎn)。每個探針斷點(diǎn)都有相應(yīng)的屬性(由用戶設(shè)置)用來與一個文件的讀/寫相關(guān)聯(lián)。用戶程序運(yùn)行到探針斷點(diǎn)所在語句時(shí),自動讀入數(shù)據(jù)或?qū)⒂?jì)算結(jié)果輸出到某文件中(依次斷點(diǎn)屬性而定)由于文件的讀寫實(shí)際上調(diào)用的是操作系統(tǒng)功能,因此不能保證這種數(shù)據(jù)交換的實(shí)時(shí)性。有關(guān)實(shí)時(shí)數(shù)據(jù)交換功能請參考幫助。置探針斷點(diǎn)。將光標(biāo)移到需要設(shè)置探針的語句上,點(diǎn)擊工程工具條上的“設(shè)置探針”按鈕。光標(biāo)所在語句被彩色光條高亮顯示。取消設(shè)置的探針,亦點(diǎn)擊按鈕。此操作僅定義程序執(zhí)行到何時(shí)讀入或?qū)懗鰯?shù)據(jù)。命令“FileFile10”。顯示對話框如下圖所示。在此對話框中選擇文件輸

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論