




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
DSP原理及應(yīng)用考試必備資料本人精心整理哦一、填空題部分:TI公司的定點DSP產(chǎn)品主要有TMS320C2000系列、TMS320C5000系列和TMS320C6000系列?!疌54xDSP中傳送執(zhí)行指令所需的地址需要用到PAB、CAB、DAB和EAB4條地址總線。DSP的內(nèi)部存儲器類型可分為隨機存取存儲器(RAM)和只讀存儲器(ROM)。其中RAM又可以分為兩種類型:單尋址RAM(SARAM)和雙尋址RAM(DARAM)。’C54xDSP的內(nèi)部總存儲空間為192K字,分成3個可選擇的存儲空間:64K字的程序存儲空間、64K字的數(shù)據(jù)存儲空間和64K字的I/O空間。從功能結(jié)構(gòu)上,’C54XDSP的CPU可以劃分成運算部件和控制部件兩大部分。’C54xDSP的尋址方式有七種,分別為立即尋址、絕對尋址、累加器尋址、直接尋址、間接尋址、存儲器映象寄存器尋址、堆棧尋址。在’C54xDSP尋址和指令系統(tǒng)中,Xmem和Ymem表示16位雙尋址操作數(shù),Dmad為16位立即數(shù),表示數(shù)據(jù)存儲器地址,Pmad為16位立即數(shù),表示程序存儲器地址。程序計數(shù)器的值可以通過復(fù)位操作、順序執(zhí)行指令、分支轉(zhuǎn)移,累加器轉(zhuǎn)移,塊重復(fù),子程序調(diào)用,從累加器調(diào)用子程序,中斷等操作改變?!疌54xDSP芯片采用了6級流水線的工作方式,即一條指令分為預(yù)取指、取指、譯碼、尋址、讀數(shù)和執(zhí)行6個階段。解決MMR寫操作的流水線沖突時,一般可用采用推薦指令和插入空操作指令的方法?!疌54xDSP定時器由3個16位存儲器映射寄存器組成:定時器寄存器(TIM)、定時器周期寄存器(PRD)和定時器控制寄存器(TCR)。主機接口(HPI,HostPortInterface)是TMS320C54x系列定點芯片內(nèi)部具有的一種接口部件,主要用于DSP與其他總線或CPU進行通信?!疌54xDSP的指令系統(tǒng)有助記符指令和代數(shù)指令兩種形式。COFF目標(biāo)文件中.text段通常包含可執(zhí)行代碼,.data段通常包含己初始化的數(shù)據(jù),.bss段中通常為未初始化的數(shù)據(jù)保留空間。DSP芯片的開發(fā)工具可以分為代碼生成工具和代碼調(diào)試工具兩類。1.DSP的狹義理解為數(shù)字信號處理器,廣義理解為數(shù)字信號處理方法。2.在直接尋址中,指令代碼包含了數(shù)據(jù)存儲器地址的低7位。當(dāng)ST1中直接尋址編輯方式位CPL=0時,與DP相結(jié)合形成16位數(shù)據(jù)存儲器地址;當(dāng)ST1中直接尋址編輯方式位CPL=1時,加上SP基地址形成數(shù)據(jù)存儲器地址。3.TMS320C54有兩個通用引腳,BIO和XF,BIO輸入引腳可用于監(jiān)視外部接口器件的狀態(tài);XF輸出引腳可以用于與外部接口器件的握手信號。39~32保護位31~16高階位15~0低階位4.累加器又叫做目的寄存器,它的作用是存放從ALU或乘法器/加法器單元輸出的數(shù)據(jù)。它的存放格式為5.桶形移位器的移位數(shù)有三中表達方式:立即數(shù);ASM;T低6位6.DSP可以處理雙16位或雙精度算術(shù)運算,當(dāng)C16=0位雙精度運算方式,當(dāng)C16=1為雙16位運算方式。7.復(fù)位電路有三種方式,分別是上電復(fù)位;手動復(fù)位;軟件復(fù)位。8.立即數(shù)尋址指令中在數(shù)字或符號常數(shù)前面加一個#號,來表示立即數(shù)。9.位倒序?qū)ぶ贩绞街?,AR0中存放的是FFT點數(shù)的一半。10.一般,COFF目標(biāo)文件中包含三個缺省的段:.text段;.data段和.bss段。11.匯編源程序中標(biāo)號可選,若使用標(biāo)號,則標(biāo)號必須從第一列開始;程序中可以有注釋,注釋在第一列開始時前面需標(biāo)上星號或分號,但在其它列開始的注釋前面只能標(biāo)分號。12.’C5402有23條外部程序地址線,其程序空間可擴展到1M,內(nèi)程序區(qū)在第0頁。13.指令執(zhí)行前有關(guān)寄存器及數(shù)據(jù)存儲器單元情況如下圖所示,請在下圖分別填寫指令執(zhí)行后有關(guān)寄存器及數(shù)據(jù)存儲器單元的內(nèi)容。ADD*AR3+,14,AA0000001200A0000002700C1C1AR30101AR301000100h15000100h1500數(shù)據(jù)存儲器在C語言和C55x匯編語言的混合程序設(shè)計中,C函數(shù)的參數(shù)和返回值傳遞到C55x的寄存器中。在函數(shù)“l(fā)ongfunc(int*p1,inti2,inti3,inti4)”中,*p1傳遞到AR0寄存器,i2傳遞到T0寄存器,i4傳遞到AR1寄存器,返回值由AC0寄存器傳遞。匯編語言“mov*AR0,AC0”使用的尋址方式是間接尋址模式,“mov#0x3,DPH”使用的尋址方式是直接尋址模式,“mov*(#0x011234),T2”使用的尋址方式是絕對尋址模式。指令執(zhí)行前AC0的值是0012345678,那么匯編語句“AND#0x7f,AC0”,執(zhí)行之后,AC0的值是0000000078。C55x的鏈接器命令文件中,SECTIONS命令的主要作用是告訴鏈接器如何將輸入段組合成輸出段,以及在存儲器何處存放輸出。MEMORY命令的主要作用是定義目標(biāo)系統(tǒng)的存儲器配置圖,包括對存儲器各部分的命名,以及規(guī)定它們的起始地址和長度。填空:●OVLY=(0),片內(nèi)RAM僅配置到到數(shù)據(jù)存儲空間。●DROM=(1),片內(nèi)ROM配置程序和數(shù)據(jù)存儲空間?!馭T1的CPL=(1)表示選用對戰(zhàn)指針SP的直接尋址方式。●ST1的C16=(1)表示ALU工作在雙精度算術(shù)運算式。●軟件中斷是由(INTR)(TRAD)(RESET)產(chǎn)生的?!駮r鐘發(fā)生器包括一個(內(nèi)部振蕩電路)和一個(鎖相環(huán)電路)?!駹顟B(tài)寄存器ST1中CPL=0表示(使用DP),CPL=1表示(使用SP)●累加器尋址的兩條指令分別是(READASmem)(WRITASmem)●鏈接器對段的處理主要通過(MEMORY)和(SECTIONS)兩個命令完成。●所有的TMS320C54x芯片內(nèi)部都包含(程序)存儲器和(數(shù)據(jù))存儲器?!袼械腃OFF目標(biāo)文件都包含以下三種形式的段:(.text文本段.data數(shù)據(jù)段.bss保留空間段)?!馮MS320C54x有8組16位總線(1組程序總線,3組數(shù)據(jù)總線,4組地址總線)?!馮MS320C54xDSP具有兩個(40)位累加器。累加器A的(AG或32~39)位是保護位?!駥τ?2位數(shù)尋址時,如果尋址的第一個字處在偶地址,那么第二個就處在(下一個高)地址;如果尋址的第一個字處在奇地址,那么第二個就處在(前一個低)地址?!瘛瘛瘛瘛瘛瘛馜SP芯片特點:有(改進的哈佛結(jié)構(gòu))、(低功耗設(shè)計)和(高度并行性)(多處理單元)(特殊DSP指令)等特點?!馜SP片內(nèi)寄存器在C語言中一般采用(指針)方式來訪問,常常采用的方法是將DSP寄存器地址的列表定義在(頭文件)?!馮MS320C54x有3個16位寄存器作為狀態(tài)和控制寄存器(ST0)(ST1)(PMST)?!馮MS320C54x的三類串行口:(標(biāo)準(zhǔn)同步串行口)(緩沖串行口)(時分多路串行口)?!馮MS320C54x的工作方式狀態(tài)寄存器PMST提供了三個控制位,包括(MP/非MC)、(OVLY)、(DROM)?!馦EMORY的作用(是用于描述系統(tǒng)實際的硬件資源,用來定義用戶設(shè)計的系統(tǒng)中所包含的各種形式的存儲器,以及他們占據(jù)的地址范圍)?!馭ECTIONS的作用(是用于描述段如何定位到家當(dāng)?shù)挠布Y源上。將輸出段定位到所定義的存儲器中)。●直接尋址就是在指令中包含有數(shù)據(jù)存儲器地址的(低7位)用作偏移地址,并與(基地地址)組成16位的數(shù)據(jù)存儲器地址?!駮r鐘發(fā)生器為TMS320C54x提供時鐘信號,時鐘發(fā)生器可以由(內(nèi)部振蕩電路)或(外部時鐘電路)驅(qū)動?!裢靶鸵莆患拇嫫髂馨演斎氲臄?shù)據(jù)進行(0-31)位的左移和(0-15)位右移。●即尋址方式中的立即數(shù)有兩種數(shù)值形式,數(shù)值的位數(shù)為(3、5、8、9)位時為短立即數(shù),數(shù)值的位數(shù)為(16)位時為長立即數(shù)。●MP/非MC=(1),允許片內(nèi)ROM配置到程序存儲空間?!馦P/非MC=(0),禁止片內(nèi)ROM配置到程序存儲空間?!馩VLY=(1),片內(nèi)RAM配置程序和數(shù)據(jù)存儲空間。●DROM=(0),禁止ROM配置到到數(shù)據(jù)存儲空間。二、簡答題1.什么是定點DSP芯片和浮點DSP芯片?各有什么優(yōu)缺點?解:按數(shù)據(jù)的定點格式工作的DSP芯片稱為定點DSP;按數(shù)據(jù)的浮點格式工作的DSP芯片稱為浮點DSP;定點DSP的價格便宜,功耗低,但運算精度低;浮點DSP的價格較高,C語言編程調(diào)試方便,運算精度高。2.簡述流水線操作的基本原理。解:流水線操作是各指令以機器周期為單位相差一個時鐘周期,連續(xù)并行工作的情況。其本質(zhì)是DSP多條總線彼此獨立地同時工作,使得同一條指令在不同機器周期內(nèi)占用不同總線資源。同時,不同指令在同一機器周期內(nèi)占用不同總線資源。3.’C54xDSP有哪些重復(fù)操作?各有什么優(yōu)點?解:有單條指令重復(fù)執(zhí)行和程序塊重復(fù)執(zhí)行兩種重復(fù)操作。單條指令重復(fù)操作功能,可以使乘法/累加和數(shù)據(jù)塊傳送那樣的多周期指令在執(zhí)行一次之后變成單周期指令,大大提高了這些指令的執(zhí)行速度。利用塊重復(fù)操作進行循環(huán),是一種零開銷循環(huán)。4.軟件可編程等待狀態(tài)發(fā)生器的功能是什么?解:軟件可編程等待狀態(tài)產(chǎn)生器可以將外部總線周期擴展到7個機器周期(C549、C5402、C5410和C5420為14個機器周期),這樣’C54xDSP可以方便地與慢速的片內(nèi)存儲器和I/O器件接口。TMS320C54x有多少條16位總線?這些總線各有什么作用?(6分)答:’C54x共有4組8條16位總線1條程序總線(PB):傳送取自程序存儲器的指令代碼和立即操作數(shù)。3條數(shù)據(jù)總線(CB、DB、EB):CB和EB傳送從數(shù)據(jù)存儲器讀出的操作數(shù);EB傳送寫到存儲器中的數(shù)據(jù)。4條地址總線(PAB、CAB、DAB、EAB)傳送相應(yīng)指令所學(xué)要的代碼。TMS320C54x片內(nèi)存儲器一般包括哪些種類?如何控制存儲器片內(nèi)或片外的分配?(6分)答:TMS320C54x的片內(nèi)存儲空間分為3個可選擇的存儲空間:64K的程序空間,64K的數(shù)據(jù)空間和64K的I/O空間,所有TMS320C54x芯片都包括RAM、SARAM、DARAM。程序空間:MP/MC=14000H~FFFFH片外MP/MC=04000H~EFFFH片外FF00H~FFFFH片內(nèi)OVLY=10000H~007FH保留0080H~007FH片內(nèi)OVLY=00000H~3FFFH片外數(shù)據(jù)空間:DROM=1F000H~FEFFH只讀空間FF00H~FFFH保留DROM=0F000H~FEFFH片外當(dāng)TMS320C54xCPU接收到可屏蔽的硬件中斷時,滿足哪些條件中斷才能被響應(yīng)?(6分)答:(1)出現(xiàn)多個中斷時,此中斷的優(yōu)先級最高(2)INTM=0允許全局中斷(3)IMR中的響應(yīng)相應(yīng)位為1,開放此中斷。TMS320C54x硬件復(fù)位地址為多少?如何確定中斷向量地址?計算INT0(IPTR=001H)的中斷向量地址。(6分)答:復(fù)位后,復(fù)位向量地址為:0080H確定地址方式:IPTR+左移2位后的中斷向量序列號10H左移2位后成為40H,IPTR=001H,則中斷向量地址為00C0H若輔助寄存器AR0的值為0x0005H,AR3的值為0x030FH,請分別給出下列尋址方式修改后的輔助寄存器的值。(6分)*AR3+;AR3=0310H*AR3+0;AR3=0314H*AR3(15);AR3=0324H分別解釋以下指令的功能。(6分)LD#80h,A;把立即數(shù)80H裝入累加器ALD80h,A;把80H為地址的數(shù)據(jù)裝如累加器ALD#80h,16,A;把立即數(shù)80H左移16位后裝如累加器A根據(jù)你的理解,試列舉DSP芯片的特點?(5分)答:哈佛結(jié)構(gòu);多總線結(jié)構(gòu);指令系統(tǒng)的流水線操作;專用的硬件乘法器;特殊的DSP指令;快速的指令周期;豐富的外設(shè)TMS320C55x芯片的總線結(jié)構(gòu)有何特點,主要包括哪些總線?它們的功能是什么?(6分)答:TMS320C55xDSP采用先進的哈佛結(jié)構(gòu)并具有十二組總線,其獨立的程序總線和數(shù)據(jù)總線允許同時讀取指令和操作數(shù),實現(xiàn)高度的并行操作。采用各自分開的數(shù)據(jù)總線分別用于讀數(shù)據(jù)和寫數(shù)據(jù),允許CPU在同一個機器周期內(nèi)進行兩次讀操作數(shù)和一次寫操作數(shù)。獨立的程序總線和數(shù)據(jù)總線允許CPU同時訪問程序指令和數(shù)據(jù)。包括12條總線,分別是:PAB和PB、BAB和BB、CAB和CB、DAB和DB、EAB和EB、FAB和FB。功能:DSP為了降低功耗采取了哪些措施?(6分)答:雙電壓供電;多種工作模式TMS320C55x的總存儲空間為多少?可分為哪3類,它們的大小是多少?存儲器空間的各自作用是什么?(6分)答:程序空間16MByte;I/O空間64KWords;數(shù)據(jù)空間8MWordsTMS320C55x有哪些尋址方式,它們是如何尋址的?試為每種尋址方式列舉一條指令(6分)答:直接尋址模式,mov#K16,DP;間接尋址模式,mov*AR0,AC0;絕對尋址模式,mov*(#0x011234),T2;MMR尋址模式,mov*abs16(#AR2),T2;寄存器位尋址模式,btstp@30,AC1;圓形尋址模式。將C源程序轉(zhuǎn)換成可執(zhí)行文件需要經(jīng)過哪些步驟?(6分)答:創(chuàng)建C源文件;創(chuàng)建工程文件;創(chuàng)建連接器命令文件;編譯整個工程文件;鏈接;生成可執(zhí)行文件常用的TMS320C55x匯編命令有哪些,它們的作用是什么?(5分)指令:●ADD#4568H,8,A,B//將4568H左移8位與A相加,賦給B?!馎DDA,-8,B//將A右移8位加上B,保存于B。●ADD*AR3+,14,A//將AR3左移4加上A→A?!馜STB,*AR1-//B存到長字單元→AR1中,且AR減1?!馤DMAR1,A//存儲器映像寄存器尋址方式,將映像寄存器加載累加器AR1→A的低位,其余位置0?!馤D#10H,4,A//將10H左移4位加載到累加器A中。●LDMMMR,A//●MAC*AR3+,*AR4+,A,B//AR3.AR44+A→B,AR3與AR3都加1。●MVKDSAMPLE,*AR5//SAMPLE→AR5中?!馦VDD*AR3+,*AR5+//數(shù)據(jù)存儲器內(nèi)部傳送數(shù)據(jù)AR3→AR5,且指令結(jié)束后AR3與AR5加1?!馦PYATEMP2//B<=A.Temp2,T=Temp2?!馪PT#99NOP//重復(fù)NOP100次?!馭TLA,@quot//將累加器A的低16位字存放在quot的存儲單元中?!馭TLB,*AR3+//將累加器的低位移位后加載到AR3所指地址?!馱RITASMEM//將A的內(nèi)容寫入SMEM中。●●●●●●●●●LD#0032H,4,A//立即數(shù)0032H先左移4位后,再加載累加器A.●STM#1000H,*AR2//立即數(shù)1000H存儲到AR2指向的地址單元●MAC#345,A,B//立即數(shù)345與T寄存器內(nèi)值相乘后與累加器A值相加,結(jié)果加載累加器B.●MVDD*AR3-,100H//AR3指向的地址單元的值傳送給地址100H單元,AR3中地址減一?!馤DM*AR1,A//AR1指向的地址單元的值加載到累加器A.三、問答題:1.’C54xDSP的串行口有哪些類型?各有什么特點?解:有標(biāo)準(zhǔn)同步串口SP、緩沖同步串口BSP、多路緩沖串口McBSP、時分多路同步串口TMD四種。緩沖串口(BSP)是一個增強型的標(biāo)準(zhǔn)串口,它由一個全雙工雙緩沖串口和一個自動緩沖單元(ABU)組成。由于其中的串行口與標(biāo)準(zhǔn)串口的功能相同,因此在標(biāo)準(zhǔn)模式下,緩沖串口的操作與標(biāo)準(zhǔn)串口的工作方式是一樣的。不過無論是標(biāo)準(zhǔn)模式還是自動緩沖模式,BSP都提供了一些增強功能。主要包括了可編程控制的串口時鐘、可選擇時鐘和幀同步信號的正負極性,能夠以每幀8位、10位、12位和16位傳輸數(shù)據(jù)。通過配置BSP的控制寄存器,BSP還能實現(xiàn)忽略幀同步信號的數(shù)據(jù)傳輸。時分復(fù)用串行口TDM采用時分復(fù)用技術(shù),將多個外部器件復(fù)用與’C54x進行串行通信,每一個時隙對應(yīng)于其中的1路通信。TDM可以和外部的多個應(yīng)用接口實現(xiàn)方便靈活的數(shù)據(jù)交換?!疌54x最多可以和8個外部器件接口通信。多通道緩沖串口(McBSP)是在緩沖串口的基礎(chǔ)上發(fā)展起來的增強版。McBSP具有高速、全雙工、可與各種總線標(biāo)準(zhǔn)的器件直接接口等特點,它為DSP使用者在不同方面的應(yīng)用提供了方便,尤其適合在通信領(lǐng)域的應(yīng)用。簡答:■CPU響應(yīng)中斷有哪些條件?中斷處理一般過程是什么?對于軟件中斷和非可屏蔽中斷,CPU立即響應(yīng)。如果是可屏蔽中斷,只有滿足以下條件才能響應(yīng):1優(yōu)先權(quán)利最高;2ST1中的INTM=0即允許可屏蔽中斷;3IMR中相位為1,允許可屏蔽中斷。中斷流程:1接受中斷請求;2響應(yīng)中斷;3執(zhí)行中斷服務(wù)程序。■簡述鏈接器命令文件中的MEMORY和SECTIONS。MEMORY命令用于描述系統(tǒng)實際的硬件資源,用來定義用戶設(shè)計的系統(tǒng)中所包含的各種形式的存儲器,以及他們占據(jù)的地址范圍。SECTIONS命令用于描述段如何定位到家當(dāng)?shù)挠布Y源上。將輸出段定位到所定義的存儲器中?!龊喪鯰MS320C54x芯片的主要特點。1CPU(中央處理單元)利用其專用的硬件邏輯和高度并行性提高芯片的處理性能。2存儲器具有192k字可尋址存儲空間 (包括64K字程序存儲空間、64K字?jǐn)?shù)據(jù)存儲空間和64K字I/O空間)。。3高度專業(yè)化的指令集能夠快速地實現(xiàn)算法冰用于高級語言編程優(yōu)化。4片內(nèi)外設(shè)和專用電路采用模塊化的結(jié)構(gòu)設(shè)計,可以快速的推出新的系列產(chǎn)品。5TMS320C54x執(zhí)行單周期定點指令時間為25/20/15/12.5/10ns,每秒指令數(shù)位40/66/100MIPS。6TMS320C54x電源由IDLE1、IDLE2、IDLE3功耗下降指令控制功能,以便DSP工作在節(jié)電模式下,使之更適合于手機。7在片仿真接口,片上的JTAG接口符合IEEE1149.1邊界掃描邏輯接口標(biāo)準(zhǔn),可與主機連接,用于芯片的仿真和測試?!龊喪鯰MS320C54x芯片存儲器的分配方法。TMS320C54x采用改進的哈佛結(jié)構(gòu)。存儲空間由三個獨立可選的存儲空間組成:64k字的程序存儲空間、64k的數(shù)據(jù)存儲空間、64k的I/O存儲空間。TMS320C54x的工作方式狀態(tài)寄存器PMST提供了三個控制位:MP/非MC、OVLY、DROM,用于在存儲空間中配置片內(nèi)存儲器。MP/非MC:微處理器/微型計算機工作方式位。OVLY:RAM重疊位。DROM:數(shù)據(jù)ROM位?!龊喪鲋苯訉ぶ芳捌鋬煞N方式:直接尋址就是在指令中包含有數(shù)據(jù)存儲器地址的低7位,用著7位作為偏移地址,并與基地址值組成一個16位的數(shù)據(jù)存儲器地址。直接尋址分為數(shù)據(jù)頁指針直接尋址、堆棧指針直接尋址兩種。數(shù)據(jù)頁指針直接尋址:當(dāng)狀態(tài)寄存器ST1中的CPL位等于0時,ST0中的DP值與指令中的7位地址一起形成16位數(shù)據(jù)存儲器地址;堆棧指針直接尋址:當(dāng)ST1中的CPL位等于1時,將指令中的7位地址與16位堆棧指針SP相加,形成16位的數(shù)據(jù)存儲器地址?!龊喪鑫淮a倒尋址的主要用途及實現(xiàn)方法。位碼倒尋址的主要用于FFT算法中。實現(xiàn)方法:ARO存放的整數(shù)N是FFT點數(shù)的一半,一個輔助寄存器只想一個數(shù)據(jù)存放的物理單元,當(dāng)使用位碼倒尋址把ARO加到輔助寄存器中時,地址以位倒序的方式產(chǎn)生,即進位是從左向右,而不是通常的從右向左?!龆褩ぶ返淖饔檬鞘裁??壓棧和彈出堆棧是如何實現(xiàn)的?系統(tǒng)堆棧用來在中斷或調(diào)用子程序期間自動存放程序計數(shù)器,也能用來存放用戶當(dāng)前的程序環(huán)境或傳遞數(shù)據(jù)值。處理器使用一個16位存儲器映像寄存器的一個堆棧指針來尋址堆棧,SP始終指向存放在對戰(zhàn)中的最后一個單元。當(dāng)調(diào)用一個子程序或一個中斷響應(yīng)發(fā)生時,PC會被自動壓棧,堆棧指針SP指向存放最后一個數(shù)據(jù)的堆棧單元;返回時,返回地址從堆棧中彈出并裝入PC。堆棧存放數(shù)據(jù)是從高地址向低地址進行的,壓入堆棧時,先減小SP,再將數(shù)據(jù)壓入堆棧;彈出對戰(zhàn)士,先從堆棧彈出數(shù)據(jù),在增加SP值。■簡述TMS320C54x宏命令及其功能。宏命令是源程序中具有獨立功能的一段程序代碼,它可以根據(jù)用戶的需要,由用戶創(chuàng)建自己的指令。宏命令一經(jīng)定義,便可在以后的程序中多次調(diào)用,從而可以簡化和縮短源程序。功能:定義自己的宏,重新定義已存在的宏、簡化長的或復(fù)雜的匯編代碼、訪問由歸檔器創(chuàng)建的宏庫、處理一個宏中的字符串、控制展開列表。使用過程:宏定義,宏調(diào)用,宏展開?!霎嫵鰠R編程序的編輯、匯編和鏈接過程圖,并說明各部分的作用?3.答:編輯:程序代碼的編寫,生成.asm文件。匯編:利用TMS320C54x的匯編器對已經(jīng)編好的一個或者多個源文件分別進行匯編,并生成.lst(列表)文件和.obj(目標(biāo))文件。鏈接:利用TMS320C54x的鏈接器LNK500,根據(jù)鏈接器命令文件(.cmd)對已經(jīng)匯編過的一個或是多個目標(biāo)文件(.obj)進行鏈接,生成.map文件和.out文件。■簡述流水線的6個獨立階段并介紹其功能。1程序預(yù)取指:將所要取指的地址放在程序地址總線上;2取指:從程序總線上取指令字,并裝入指令寄存器;3指令譯碼:對IR中的內(nèi)容譯碼,產(chǎn)生執(zhí)行指令所需要的一系列控制信號;4尋址:數(shù)據(jù)地址產(chǎn)生單元在數(shù)據(jù)地址總線上輸出讀操作數(shù)的地址。;5讀:從數(shù)據(jù)總線和控制總線上讀操作數(shù);6執(zhí)行指令:從數(shù)據(jù)總線上寫數(shù)據(jù)?!?54■■■簡述TMS320C54x芯片的中斷系統(tǒng)。中斷系統(tǒng)是計算機發(fā)展史上的一個里程碑。也是衡量微處理器性能好壞的一項主要指標(biāo)。中斷系統(tǒng)既支持硬件中斷,又支持軟件中斷。無論是哪種中斷都可以分為可屏蔽中斷和非可屏蔽中斷。中斷系統(tǒng)包括:中斷結(jié)構(gòu)、中斷流程、中斷編程?!龊喪龃型ㄐ?,并描述TMS320C54x的三個串口。串行通信是發(fā)送器將并行數(shù)據(jù)逐位移出成為串行數(shù)據(jù)流,接收器將串行數(shù)據(jù)流以一定的時序和一定的格式呈顯在連接收/發(fā)器的數(shù)據(jù)線上。三類串行口:標(biāo)準(zhǔn)同步串行口(SPI):有兩個獨立的緩沖器用于傳送數(shù)據(jù),接收緩沖器和發(fā)送緩沖器,每個緩沖器有一條可屏蔽的中斷線。串行數(shù)據(jù)可以按8位字或16位字轉(zhuǎn)換。緩沖串行口(BSP):在標(biāo)準(zhǔn)同步串行口的基礎(chǔ)上增加了一個自動緩沖單元,BSP是一種增強型標(biāo)準(zhǔn)串行口,它是全雙工的,并有兩個可設(shè)置大小的緩沖區(qū)。時分多路串行口(TDM):允許同一個串口以分時方式傳送多路數(shù)據(jù),TDM為多處理器通信提供了一種簡單而有效的方式?!觥觥觥觥觥觥龆蔚淖饔檬鞘裁??COFF目標(biāo)文件包含哪些段?所謂段,是指連續(xù)地占有存儲空間的一個代碼塊或數(shù)據(jù)塊,是COFF文件中最重要的概念。一個目標(biāo)文件中的每一個段都是分開的和各不相同的。所有的COFF目標(biāo)文件都包含一下三種形式的段:.text文本段.data數(shù)據(jù)段.bss保留空間段■TMS320C54x有哪幾種基本的尋址方式?立即尋址、絕對尋址、累加器尋址、直接尋址、間接尋址、存儲器映像寄存器尋址、堆棧尋址?!鲆粋€典型的DSP系統(tǒng)通常由哪些部分組成?畫出原理框圖。A/D、DSF、D/A。100101001110010101110101001011000■簡述存儲器映像寄存器尋址地址產(chǎn)生及其地址產(chǎn)生的兩種方式。存儲器映像寄存器是用來修改存儲器映像寄存器的,但不影響當(dāng)前數(shù)據(jù)頁指針DP或堆棧指針SP的值。1在直接尋址方式下,不管當(dāng)前DP或SP為何值,是數(shù)據(jù)寄存器地址的高9位強制置0,數(shù)據(jù)存儲器地址的低7位則來自于指令字;2在間接尋址方式,只使用當(dāng)前輔助寄存器的低7位作為數(shù)據(jù)存儲器地址的低7位,地址的高9位為0,指定的輔助寄存器的高9位在尋址后被強制置0?!龊喪鲦溄悠鞯淖饔煤凸δ堋f溄悠鞯淖饔镁褪歉鶕?jù)鏈接命令或鏈接命令文件(.cmd),將一個或多個COFF目標(biāo)文件鏈接起來,生成存儲器映像文件(.map)和可執(zhí)行文件的輸出文件(.out)。功能:1將各個段配置到目標(biāo)系統(tǒng)的存儲器中;2對各個符號和段進行重新定位,并給他們制定一個最終的地址;3結(jié)局輸入文件之間未定義的外部引用問題?!鯤PI接口有幾個寄存器?他們的作用是什么?1HPI存儲器:用于TMS320C54x與主機間傳送數(shù)據(jù)。地址從1000H到17FFH,空間容量為2K字。2HPI地址寄存器:由主機對其直接訪問,存放當(dāng)前尋址HPI存儲單元的地址。3HPI數(shù)據(jù)鎖存器:有主機對其直接訪問,存放當(dāng)前進行讀/寫的數(shù)據(jù)。4HPI控制寄存器:TMS320C54x和主機都能對其直接訪問,用于主處理與DSP相互握手,實現(xiàn)相互中斷請求。5HPI控制邏輯:用于處理HPI與主機之間的接口信號。四、閱讀指令并填空1.BANZ2000h,*AR3-2.CMPRGT,AR33.ADD*AR3+,14,A4.SUBA,-8,B5.MPY*AR3+,A五、程序題:寫出計算的主要匯編程序,并給程序添加注釋,畫出程序的流程圖。解:程序及注釋:.bssx,20 ;給變量x分配20個字單元.bssy,1 ;給變量y分配1個字單元STM#x,AR1 ;取x地址STM#19,AR2 ;設(shè)置循環(huán)次數(shù)LD#0,A ;累加器清零loop:ADD*AR1+,A ;累加x分量BANZloop,*AR2- ;循環(huán)是否結(jié)束,沒有結(jié)束則繼續(xù)累加STLA,@y ;把結(jié)果存入y流程圖:程序填空1.實現(xiàn)計算z=x+y-w的程序。.title"example1.asm".mmregsSTACK.usect"STACK",10h.bssx,1.bssy,1.bssw,1.bssz,1.defstart.datatable:.word10,26,23.textstart:STM#0,SWWSRSTM#STACK+10h,SP;初始化堆棧指針SPSTM#x,AR1RPT#2MVPDtable,*AR1+;數(shù)據(jù)從程序存儲器傳送到數(shù)據(jù)存儲器CALLSUMBend:BendSUMB:LD@x,AADD@y,ASUB@w,A;實現(xiàn)減法運算STLA,@zRET.end2.實現(xiàn)對數(shù)組X[5]={1,2,3,4,5}的初始化,然后將數(shù)據(jù)存儲器中的數(shù)組X[5]復(fù)制到數(shù)組Y[5]。最后實現(xiàn)數(shù)組X和數(shù)組Y中對應(yīng)元素相乘并累加,即z=1*1+2*2+3*3+4*4+5*5.mmregs.bssx,5.bssy,5.bssz,1.defstarttable:.word1,2,3,4,5.textstart:STM#x,AR1RPT4MVPDtable,*AR1+;從程序存儲器傳送到數(shù)據(jù)存儲器數(shù)組X[5]STM#x,AR2STM#y,AR3RPT4MVDD*AR1,*AR3;從數(shù)據(jù)存儲器數(shù)組X[5]傳送到Y(jié)[5]SSBXFRCT;準(zhǔn)備整數(shù)乘法STM#x,AR2STM#y,AR3STM#z,AR4RPTZ4MAC*AR2+,*AR3+,ASTLA,*AR4End:Bend.end分析程序回答問題.def_c_int00.mmregsstack:.usect"stack",10h.bssa,4.bssx,4.bssy,1.datatable:.word1,2,4,3.word8,6,4,2.text_c_int00:STM#stack+10h,spSTM#a,AR1RPT#7MVPDtable,*AR1+CALLsumend:Bendsum:STM#a,AR3STM#x,AR4RPTZA,#3MAC*AR3+,*AR4+,ASTLA,@yret.end說明該程序的功能:(4分)答:a1*x1=a2*x2+a3*x3+a4*x4說明以下各量的理論值(4分)A:2Aa1的地址:81H內(nèi)容:1AR1:88HAR3:84H程序:●設(shè)計一存儲空間為100個單元的堆棧。將棧底地址指針?biāo)蚐P,對其初始化。Size.set100;設(shè)置堆??臻g的大小為100Stack.usect"STK",size;設(shè)置堆棧段的首地址和堆??臻gSTM#stack+size,SP●利用SUBC完成整除法,41H/7H=9H,余數(shù)是2H。LD#0041H,BSTM#0100H,AR2STM#0110H,AR3ST#0007H,*AR2RPT#15SUBC*AR2,BSTLB,*AR3+STHB,*AR3●編寫求解加、減法的程序,計算z=x+y-w。.title"ex41.asm".mmregsSTACK.usect“STACK”,10H.bssx,1.bssy,1.bssw,1.bssz,1.defstartTable:.word6,7,9.textStart:STM#0,SWWSRSTM#STACK+10H,SPSTM#x,AR1RPT#2MVPDtable,*AR1+LD@x,AADD@y,ASUB@w,ASTLA,@zEnd:Bend.end●假設(shè)目標(biāo)存儲器的配置如下:程序存儲器:EPROME000h~FFFFH(片外)數(shù)據(jù)存儲器:SPRAM0060H~007FH(片內(nèi));DARAM0080H~017FH(片內(nèi))要求編寫鏈接命令文件ex421.cmd。此命令用來鏈接ex421.obj和vector.obj兩個目標(biāo)文件(輸入文件),并生成一個映像文件ex421.map,以及一個可執(zhí)行的輸出文件ex421.out。標(biāo)號"start"是程序的入口。答案:ex421.objvectors.obj-oex421.out-mex421.map-estartMEMORY{PAGE0:EPROM:org=0E000H,len=100Hvecs:org=0FF80H,len=04Hvecs1:org=0FFC8H,len=04HPAGE1:SPRAM:org=0060H,len=20HDARAM:org=0080H,len=100H}SECTIONS{.text:>EPROMPAGE0.bss:>SPRAMPAGE1.data:>EPROMPAGE0STACK:>DARAMPAGE1.vectors:>vecsPAGE0INT_2:>vecs1PAGE0}●閱讀下列匯編源程序,在每條語句后寫出注釋,并敘述程序的功能。.title"cjy4.asm".mmregsSTACK.usect"STACK",10H.bssa,4;為a分配4個存儲單元.bssx,4;為x分配4個存儲單元.bssy,1;為結(jié)果y分配1個存儲單元.defstart.data;定義數(shù)據(jù)代碼段table:.word1*32768/10;在table開始的8個.word2*32768/10;地址放數(shù)據(jù).word-3*32768/10.word4*32768/10.word8*32768/10.word6*32768/10.word-4*32768/10.word-2*32768/10.text;定義可執(zhí)行程序代碼段start:SSBXFRCT;設(shè)置FRCT位,表示進行小數(shù)乘STM#x,AR1;將x的首地址傳給AR1RPT#7;重復(fù)8次下條指令MVPDtable,*AR1+;將程序空間8個數(shù)傳給數(shù)據(jù)存儲器STM#x,AR2;將數(shù)據(jù)存儲器第一個數(shù)x1的地址傳給AR2STM#a,AR3;將數(shù)據(jù)存儲器第五個數(shù)a1的地址傳給AR3RPTZA,#3;將A清零,重復(fù)4次下條指令MAC*AR2+,*AR3+,A;執(zhí)行乘法累加和,結(jié)果放在A中STHA,@y;將A的高端字存入結(jié)果y,低端字省去end:Bend;原處循環(huán)等待.end●編寫一段程序,將PM中的10個數(shù)據(jù)首先傳送到DM中(以地址0016H開始),再將該數(shù)據(jù)傳送到地址以0058H開始的DM中。(PM:程序存儲器;DM:數(shù)據(jù)存儲器)?!瘛瘛瘛瘛瘛瘛窬幊虒崿F(xiàn)小數(shù)乘法,要求將變量temp1裝入累加器高16位與temp2相乘,結(jié)果存入temp3。SSBXFRCT;置FRCT標(biāo)志位,準(zhǔn)備小數(shù)乘法LDtemp1,16,A;將變量temp1裝入累加器A的高16位MPYAtemp2;完成temp2與累加器A的高16位相乘,結(jié)果放入B累加器,并將temp2裝入T寄存器STHtemp3;將乘積結(jié)果的高16位存入變量temp3●將數(shù)組x[5]初始化為{1,2,3,4,5}。(共10分).data;定義初始化數(shù)據(jù)段起始地址TBL:.word1,2,3,4,5;為標(biāo)號地址TBL;開始的5個單元賦初值.sect“.vectors”;定義自定義段,并獲得該段起始地址BSTART;無條件轉(zhuǎn)移到標(biāo)號為START的地址.bssx,5;為數(shù)組x分配5個存儲單元.text;定義代碼段起始地址START:STM#x,AR5;將x的首地址存入AR5RPT#4;設(shè)置重復(fù)執(zhí)行5次下條指令MVPDTBL,*AR5+end:Bend.end●閱讀下列匯編源程序,在每條語句后寫出注釋,并敘述程序的功能。.title“cjy1.asm”;為匯編源程序取名.mmregs;定義存儲器映象寄存器STACK.usect“STACK”,30H;設(shè)置堆棧.bssx,10;為數(shù)組x分配10個存儲單元.bssy,10;為數(shù)組y分配10個存儲單元.datatable:.word1,2,3,4,5,6,7,8,9,10.defstart;定義標(biāo)號start.textstart:STM#0,SWWSR;復(fù)位SWWSRSTM#STACK+30H,SP;初始化堆指針STM#x,AR1;將目的地首地址賦給AR1RPT#19;設(shè)定重復(fù)傳送的次數(shù)為20次MVPDtable,*AR1+;程序存儲器傳送到數(shù)據(jù)存儲器STM#x,AR2;將x的首地址存入AR2STM#y,AR3;將y的首地址存入AR3RPT#19;設(shè)置重復(fù)執(zhí)行20次下條指令MVDD*AR2+,*AR3+;將地址x開始的20個值復(fù)制到地址y開始的20個單元end:Bend.end程序功能:將數(shù)據(jù)存儲器中的數(shù)組x[10]復(fù)制到數(shù)組y[10]。用C55x匯編語言實現(xiàn)計算的程序。(10分)答:mpym*AR0+,*AR1+,AC0mpym*AR0+,*AR1+,AC1addAC1,AC0mpym*AR0+,*AR1+,AC1addAC1,AC0mpym*AR0+,*AR1+,AC1addAC1,AC0或者:mpym*AR0+,*AR1+,AC0||rpt#2macm*AR0+,*AR1+,AC0用C55x匯編語言實現(xiàn)計算的程序。(10分)答:mpym*AR0+,*AR1+,AC3masm*AR0+,*AR1+,AC3以8點的FFT為例,用C55x的匯編語言實現(xiàn)FFT的算法,并且解釋該算法的實現(xiàn)方法。(20分)答:.sect"fft_code" _fft:aadd#(ARGS-Size+1),SP;Adjuststackforlocalvarsmovmmap(ST1_55),AR2;SaveST1,ST3movmmap(ST3_55),AR3movAR2,fft.d_ST1movAR3,fft.d_ST3btst@#0,T1,TC1;CheckSCALEflagset mov#0x6340,mmap(ST1_55);SetCPL,XF,SATD,SXAM,FRCT(SCALE=1)mov#0x1f22,mmap(ST3_55);Set:HINT,SATA,SMULxccdo_scale,TC1mov#0x6300,mmap(ST1_55);SetCPL,XF,SATD,SXAM(SCALE=2)do_scalemovT2,fft.d_T2;SaveT2||mov#1,AC0movAC0,fft.d_L;InitializeL=1||sftsAC0,T0;T0=EXPmovAC0,fft.d_N;N=1<<EXPmovXAR1,XCDP;CDP=pointertoU[]movXSP,XAR4 add#fft.d_temp,AR4;AR4=pointertotempmovXAR0,XAR1;AR1pointstosamplebuffermovT0,T1movXAR0,XAR5;CopyexterndbitstoXAR5 outer_loop;for(L=1;L<=EXP;L++)movfft.d_L,T0;note:Sincethebufferis||mov#2,AC0;arrangedinre,impairssftsAC0,T0;theindextothebuffernegT0 ;isdoubled||movfft.d_N,AC1;ButtherepeatcoutnerssftlAC1,T0;arenotdoubledmovAC0,T0;LE=2<
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年工業(yè)底板項目投資價值分析報告
- 高效烤箱節(jié)能改造企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 設(shè)計師品牌集成店行業(yè)跨境出海戰(zhàn)略研究報告
- 護師個人工作計劃格式
- 應(yīng)屆生畢業(yè)實習(xí)個人總結(jié)
- 初中總務(wù)處個人工作計劃范文
- 保安隊工作計劃
- 學(xué)生會秘書部工作計劃例文
- 2025宣傳冊設(shè)計制作合同范本
- 電腦自助買賣期貨合同書
- 2024至2030年中國調(diào)味品市場前景預(yù)測及投資研究報告
- 江蘇省南通市通州區(qū)通州區(qū)育才中學(xué)2023-2024學(xué)年英語八下期末檢測試題含答案
- 靜配中心腸外營養(yǎng)液TPN藥物配置的操作方法課件
- 醫(yī)院感染應(yīng)急預(yù)案及流程圖
- 廢活性炭管理制度范文
- YYT 0972-2016 有源植入醫(yī)療器械 植入式心律調(diào)節(jié)設(shè)備用四極連接器系統(tǒng) 尺寸和試驗要求
- DB44-T 2480-2024 鋁及鋁合金深井鑄造安全技術(shù)規(guī)范
- 胸痛診療科普課件
- 人教版七年級歷史《第7課 遼、西夏與北宋的并立》課件
- 重癥肺炎的護理
- JJF1030-2023溫度校準(zhǔn)用恒溫槽技術(shù)性能測試規(guī)范
評論
0/150
提交評論