第2章TMS320C55x的硬件結(jié)構(gòu)_第1頁
第2章TMS320C55x的硬件結(jié)構(gòu)_第2頁
第2章TMS320C55x的硬件結(jié)構(gòu)_第3頁
第2章TMS320C55x的硬件結(jié)構(gòu)_第4頁
第2章TMS320C55x的硬件結(jié)構(gòu)_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CPU寄存器第2章TMS320C55x的硬件結(jié)構(gòu)2.4CPU寄存器C55x的寄存器(見表2-8)C55x寄存器的映射地址及描述(見表2-9)2.4.1概況?注意事項:

ST0_55、ST1_55和ST3_55都有兩個訪問地址;

T3、RSA0L、REA0L和SP有兩個訪問地址;任何裝入BRC1的指令將相同的值裝入BRS1。

對于ST0_55、ST1_55和ST3_55,對于其中一個地址,所有的C55x位均可訪問;在另外一個地址(稱為保護地址),某些保護位不能被修改。保護地址是為了提供對C54x代碼的支持,以便寫入ST0、ST1以及PMST(C54x對應ST3_55)

對于T3、RSA0L、REA0L和SP,當使用DP直接尋址方式訪問存儲器映射寄存器時,將訪問兩個地址中更高的地址,即

T3=23H(不是0EH);

RSA0L=3DH(不是1BH);

REA0L=3FH(不是1CH);

SP=4DH(不是18H)表2-8寄存器總表(1)縮寫名稱大小AC0~AC3累加器0~340位AR0~AR7輔助寄存器0~716位BK03,BK47,BKC循環(huán)緩沖區(qū)大小寄存器16位BRC0,BRC1塊循環(huán)計數(shù)器0和116位BRS1BRC1保存寄存器16位BSA01,BSA23,BSA45,BSA67,BSAC循環(huán)緩沖區(qū)起始地址寄存器16位CDP系數(shù)數(shù)據(jù)指針(XCDP的低位部分)16位CDPHXCDP的高位部分7位CFCT控制流關系寄存器8位CSR計算單循環(huán)寄存器16位DBIER0,DBIER1調(diào)試中斷使能寄存器0和116位DP數(shù)據(jù)頁寄存器(XDP的低位部分)16位DPHXDP的高位部分7位IER0,IER1中斷使能寄存器0和116位IFR0,IFR1中斷標志寄存器0和116位IVPD,IVPH中斷向量指針16位表2-8寄存器總表(2)PC程序計數(shù)器24位PDP外設數(shù)據(jù)頁寄存器9位REA0,REA1塊循環(huán)結(jié)束地址寄存器0和124位RETA返回地址寄存器24位RPTC單循環(huán)計數(shù)器16位RSA0,RSA1塊循環(huán)起始地址寄存器0和124位SP數(shù)據(jù)堆棧指針16位SPHXSP和XSSP的高位7位SSP系統(tǒng)堆棧指針16位ST0_55~ST3_55狀態(tài)寄存器0~316位T0~T3暫時寄存器16位TRN0~TRN1變換寄存器0和116位XAR0~XAR7擴展輔助寄存器0~723位XCDP擴展系數(shù)數(shù)據(jù)指針23位XDP擴展數(shù)據(jù)頁寄存器23位XSP擴展數(shù)據(jù)堆棧指針23位XSSP擴展系統(tǒng)堆棧指針23位表2-9存儲器映射寄存器(1)

表2-9存儲器映射寄存器(2)

表2-9存儲器映射寄存器(3)

表2-9存儲器映射寄存器(4)

表2-9存儲器映射寄存器(5)

表2-9存儲器映射寄存器(6)

表2-9存儲器映射寄存器(7)

表2-9存儲器映射寄存器(8)

表2-9存儲器映射寄存器(9)

2.4.2累加器(AC0~AC3)C55x的CPU包括4個40位的累加器AC0、AC1、AC2、AC3AC0、AC1、AC2、AC3等價。任何一條使用一個累加器的指令,都可以通過編程來使用4個累加器中的任何一個在C54x兼容模式(C54CM=1)下,累加器AC0、AC1分別對應于C54x里的累加器A、B

每個累加器分為低字(ACxL)、高字(ACxH)和8個保護位(ACxG),用戶可以使用訪問存儲器映射寄存器的尋址方式,分別訪問這3部分

2.4.3變換寄存器TRN0、TRN1C55x有2個變換寄存器TRN0、TRN1用途:在比較-選擇-極值指令里使用比較兩個累加器的高段字和低段字后,執(zhí)行選擇兩個16位極值的指令,以更新TRN0和TRN1。比較累加器的高段字后更新TRN0,比較累加器的低段字后更新TRN1在比較完兩個累加器的全部40位后,執(zhí)行選擇一個40位極值的指令,以更新被選中的變換寄存器(TRN0或TRN1)

2.4.4T寄存器(T0-T3)

用途存放乘法、乘加以及乘減運算里的一個乘數(shù)存放D單元里加法、減法和裝入運算的移位數(shù)用交換指令交換輔助寄存器(AR0-AR7)和T寄存器中的內(nèi)容時,跟蹤多個指針值在D單元ALU里作雙16位運算時,存放Viterbi蝶形的變換尺度CPU包括4個16位通用T寄存器:T0、T1、T2、T32.4.5用作數(shù)據(jù)地址空間和I/O空間的寄存器

表2-10用作數(shù)據(jù)地址空間和I/O空間的寄存器1.輔助寄存器(XAR0~XAR7/AR0~AR7)低字的作用:用于AR間接尋址模式,以及雙AR間接尋址模式。提供7位數(shù)據(jù)頁內(nèi)的16位偏移量(形成一個23位地址);存放位地址;作為通用寄存器或計數(shù)器。高7位用于指定要訪問數(shù)據(jù)空間的數(shù)據(jù)頁訪問屬性:

XARn只能用專用指令訪問;

ARn可用專用指令訪問,也可以作為存儲器映射寄存器訪問;

ARnH不能單獨訪問,必須通過訪問XARn來訪問ARnHCPU在存儲器中映射了一個系數(shù)數(shù)據(jù)指針(CDP)和一個相關的擴展寄存器(CDPH):2.系數(shù)數(shù)據(jù)指針(XCDP/CDP)CPU可以連接這個寄存器形成一個擴展系數(shù)數(shù)據(jù)指針(XCDP)高7位(CDPH)用于指定要訪問數(shù)據(jù)空間的數(shù)據(jù)頁低字(CDP)用來作為16位偏移量與7位數(shù)據(jù)頁形成一個23位地址XCDP或CDP用在CDP間接尋址方式和系數(shù)間接尋址方式中,CDP可用于任何指令中訪問一個單數(shù)據(jù)空間值,在雙MAC指令中,它還可以獨立地提供第三個操作數(shù)。表2-12XCDP的訪問屬性

3.循環(huán)緩沖區(qū)首地址寄存器CPU有5個16位的循環(huán)緩沖區(qū)首地址寄存器:BSA01,BSA23,BSA45,BSA67,BSAC作用:定義循環(huán)的首地址每個循環(huán)緩沖區(qū)首地址寄存器與一個或兩個特殊的指針相關聯(lián)4.循環(huán)緩沖區(qū)大小寄存器三個16位的循環(huán)緩沖區(qū)大小寄存器(BK03,BK47,BKC)用途:指定循環(huán)緩沖區(qū)大?。ㄗ畲鬄?5535)每個循環(huán)緩沖區(qū)大小寄存器與一個或四個特殊的指針相關聯(lián)5.數(shù)據(jù)頁寄存器(XDP/DP)CPU在存儲器中映射了一個數(shù)據(jù)頁寄存器(DP)和一個相關的擴展寄存器(DPH)CPU連接這兩個寄存器形成一個擴展數(shù)據(jù)頁寄存器(XDP)DPH指定要訪問數(shù)據(jù)空間的7位數(shù)據(jù)頁低字(DP)用來代表一個16位偏移地址用途:在基于DP的直接尋址方式中,XDP指定23位地址在k16絕對尋址方式中,DPH與一個16位的立即數(shù)連接形成23位地址表2-15XDP寄存器的訪問屬性6.外設數(shù)據(jù)頁指針(PDP)對于PDP直接尋址方式,9位的外設數(shù)據(jù)頁指針(PDP)選擇64K字I/O空間中的一個128字頁面7.堆棧指針(XSP/SP,XSSP/SSP)有關堆棧指針數(shù)據(jù)堆棧指針(SP)系統(tǒng)堆棧指針(SSP)相關擴展寄存器(SPH)當訪問數(shù)據(jù)堆棧時,CPU連接SPH和SP形成一個擴展的堆棧指針(XSP),指向最后壓入數(shù)據(jù)堆棧的數(shù)據(jù)SPH代表7位數(shù)據(jù)頁SP指向頁中某個具體地址當訪問系統(tǒng)堆棧時,CPU連接SPH和SSP形成一個擴展的堆棧指針(XSSP),指向最后壓入系統(tǒng)堆棧的數(shù)據(jù)表2-16堆棧指針的訪問屬性2.4.6程序流寄存器(PC、RETA、CFCT)程序流寄存器(3個)寄存器描述PC24位的程序計數(shù)器。存放I單元里解碼的1~6字節(jié)代碼的地址.當CPU執(zhí)行中斷或調(diào)用子程序時,當前的PC值(返回地址)存起來,然后把新的地址裝入PC。當CPU從中斷服務或子程序返回時,返回地址重新裝入PCRETA返回地址寄存器。如果所選擇的堆棧配置使用快速返回,則在執(zhí)行子程序時,RETA就作為返回地址的暫存器。RETA和CFCT一起,高效執(zhí)行多層嵌套的子程序??捎脤iT的32位裝入和存儲指令,成對地讀寫RETA和CFCTCFCT控制流關系寄存器。CPU保存有激活的循環(huán)記錄(循環(huán)的前后關系)。如果選擇的堆棧配置使用快速返回,則在執(zhí)行子程序時,CFCT就作為8位循環(huán)關系的暫存器。RETA和CFCT一起,高效執(zhí)行多層嵌套的子程序。可用專門的32位裝入和存儲指令,成對地讀寫RETA和CFCTCFCT寄存器

CPU由內(nèi)部位按照一定規(guī)則來存放循環(huán)的前后關系,即子程序里循環(huán)的狀態(tài)(激活和未激活)當CPU執(zhí)行中斷或調(diào)用子程序時,循環(huán)關系位就存放在CFCT里當CPU從中斷或調(diào)用子程序返回時,循環(huán)關系位就從CFCT恢復表2-18CFCT各位的含義2.4.7中斷管理寄存器表2-19中斷管理寄存器

中斷向量指針(IVPD,IVPH)DSP中斷向量指針(IVPD)主機中斷向量指針(IVPH)16位,指向256字節(jié)的程序空間中的中斷向量表(IV0~IV15和IV24~IV31),這些中斷向量供DSP專用16位,指向256字節(jié)的程序空間中的中斷向量表(IV16~IV23),這些中斷向量供DSP和主機共享使用?說明:如果IVPD和IVPH的值相同,所有中斷向量可能占有相同的256字節(jié)大小的程序空間;DSP硬件復位時,IVPD和IVPH都被裝入到FFFFH地址處;IVPD和IVPH均不受軟復位的影響

表2-20中斷向量地址?在修改IVP之前應確保:INTM=1,即所有可屏蔽中斷不能響應。每個硬件不可屏蔽中斷對于原來的IVPD和修改后的IVPD都有一個中斷向量和中斷服務程序。由16位的中斷向量指針加上一個5位的中斷編號后左移3位組成一個24位的中斷地址。

2.中斷標志寄存器(IFR0,IFR1)表2-21中斷標志寄存器IFR1表2-22中斷標志寄存器IFR016位的中斷標志寄存器IFR0和IFR1包括所有可屏蔽中斷的標志位當一個可屏蔽中斷向CPU提出申請時,IFR中相應的標志位置1,等待CPU應答中斷可以通過讀IFR標志已發(fā)送申請的中斷,或?qū)?到IFR相應的位撤銷中斷申請,即寫入1清相應位為0中斷被響應后將相應位清0,器件復位將所有位清03.中斷使能寄存器(IER0,IER1)表2-23中斷使能寄存器IER1表2-24中斷使能寄存器IER0通過設置IER0、IER1的位為

1,打開相應的可屏蔽中斷

0,關閉相應的可屏蔽上電復位時,將所有IER位清0。ER0、IER1不受軟件復位指令和DSP熱復位的影響,在全局可屏蔽中斷使能(INTM=1)之前應初始化它們。4.調(diào)試中斷使能寄存器(DBIER0,DBIER1)僅當CPU工作在實時仿真模式調(diào)試暫停時,這兩個16位的調(diào)試中斷使能寄存器才會使用如果CPU工作在實時方式下,DBIER0、DBIER1將被忽略2.4.8循環(huán)控制寄存器單循環(huán)指令可以重復執(zhí)行一個單周期指令或并行執(zhí)行兩個單周期指令,重復次數(shù)N被裝在RPTC中,指令將被重復執(zhí)行N+1次。在一些無條件單指令循環(huán)操作中,可以使用CSR設置重復次數(shù)。1.單指令循環(huán)控制寄存器(RPTC,CSR)2.塊循環(huán)寄存器(BRC0,BRC1,BRS1,RSA0,RSA1,REA0,REA1)塊循環(huán)指令可以實現(xiàn)2級嵌套,一個塊循環(huán)(1級)嵌套在另一個塊循環(huán)(0級)內(nèi)部當C54CM=0,即工作在C55x方式下,才實現(xiàn)2級嵌套當無循環(huán)嵌套時,CPU使用0級寄存器當出現(xiàn)循環(huán)嵌套時,CPU對于1級嵌套使用1級寄存器當C54CM=1,即工作在C54x方式下只能使用0級寄存器,通過借助塊重復標志寄存器(BRAF)完成嵌套表2-25塊循環(huán)寄存器2.4.9狀態(tài)寄存器ST0_55ST0_55(以及ST1_55和ST3_55)有兩個訪問地址。所有位都可以由第一個地址訪問,而在另一個地址(保護地址)里,加黑部分不能修改;保護地址是為了支持把C54x的代碼寫入ST0、ST1和PMST累加器溢出標志(ACOV0,ACOV1,ACOV2,ACOV3)當累加器AC0、AC1、AC2或AC3有數(shù)據(jù)溢出時,相應的ACOV0、ACOV1、ACOV2或ACOV3被置1,直到發(fā)生以下任一事件:復位CPU執(zhí)行條件跳轉(zhuǎn)、調(diào)用、返回,或執(zhí)行一條測試ACOVx狀態(tài)的指令被指令清0溢出方式受M40位的影響當M40=0時,溢出檢測在第31位,與C54x兼容當M40=1時,溢出檢測在第39位2.進位位(CARRY)進位/借位的檢測取決于M40位當M40=0時,由第31位檢測進位/借位當M40=1時,由第39位檢測進位/借位當D單元ALU做加法運算時,若產(chǎn)生進位,則置位CARRY;如果不產(chǎn)生進位時,則將CARRY清0例外:使用以下語句(將Smem移動16位),有進位時置位CARRY,無進位時不清0。ADDSmem<<#16,[ACx,]ACy當D單元ALU做減法運算時若產(chǎn)生借位,將CARRY清0。如果不產(chǎn)生借位,則置位CARRY。例外:使用以下語句(將Smem移動16位),有借位時CARRY清0,無借位時CARRY不變。SUBSmem<<#16,[ACx,]ACyCARRY位可以被邏輯移位指令修改。對帶符號移位指令和循環(huán)移位指令,可以選擇CARRY位是否需要修改目的寄存器是累加器時,用以下指令修改CARRY位,以指示計算結(jié)果

MIN [src,]dst MAX [src,]dst ABS [src,]dst NEG [src,]dst可以通過下面兩條指令對CARRY清零和置位:

BCLR CARRY ;清零

BSET CARRY ;置位3.DP位域DP位域占據(jù)ST0_55的第8~0位提供與C54x兼容的數(shù)據(jù)頁指針C55x有一個獨立的數(shù)據(jù)頁指針DPDP(15~7)的任何變化都會反映在ST0_55的DP位域上?;贒P的直接尋址方式,C55x使用完整的數(shù)據(jù)頁指針DP(15~0),因此不需要使用ST0_55的DP位域。如果想裝入ST0_55,但不想改變DP位域的值,可以用OR或AND指令。所有能影響一個測試/控制位的指令,都可以選擇影響TC1還是TC2TCx或關于TCx的布爾表達式,都可以在任何條件指令里用作觸發(fā)器可以通過下面指令對TCx置位和清零:

BCLR TC1; TC1清零

BSET TC1; TC1置位

BCLR TC2; TC2清零

BSET TC2; TC2置位4.測試/控制位(TC1,TC2)

測試/控制位用于保存一些特殊指令的測試結(jié)果,使用要點如下:2.4.10狀態(tài)寄存器ST1_55如果C54CM=0C55x忽略ASM,C55x移位指令在暫存寄存(T0~T3)里指定累加器的移位值,或者直接在指令里用常數(shù)指定移位值。如果C54CM=1C55x以兼容方式運行C54x代碼,ASM用于給出某些C54x移位指令的移位值,移位范圍-16~15。1.ASM位如果C54CM=0,C55x不使用BRAF。如果C54CM=1,C55x以兼容方式運行C54x代碼,BRAF用于指定或控制一個塊循環(huán)操作的狀態(tài)。在由調(diào)用、中斷或返回引起的代碼切換過程中,都要保存和恢復BRAF的值。當執(zhí)行遠程跳轉(zhuǎn)(FB)或遠程調(diào)用(FCALL)指令時,BRAF自動清零。2.BRAF位如果C54CM=0,C55x忽略C16

指令本身決定是用單32位操作還是雙16位操作。如果C54CM=1,C55x以兼容方式運行C54x代碼,C16會影響某些指令的執(zhí)行。當C16=0時,關閉雙16位模式,D單元ALU執(zhí)行一條指令是以單32位操作(雙精度運算)形式當C16=1時,打開雙16位模式,D單元ALU執(zhí)行一條指令是以兩個并行的16位操作(雙16位運算)形式3.C16位如果C54CM=0,C55xCPU不支持C54x代碼如果C54CM=1,C55x的CPU支持C54x編寫的代碼在使用C54x代碼時就必須置位該模式,所有C55xCPU的資源都可以使用在移植代碼時,可以利用C55x增加的特性優(yōu)化代碼4.C54CM位可用以下指令或偽指令來改變模式:BCLRC54CM ;清零C54CM(運行時).C54CM_off ;告知匯編器C54CM=0BSETC54CM ;置位C54CM(運行時).C54CM_on ;告知匯編器C54CM=1如果CPL=0,CPL決定選擇DP直接尋址模式如果CPL=1,CPL決定選擇SP直接尋址模式可用以下指令和偽指令來改變尋址模式:BCLRCPL ;清零CPL(運行時).CPL_off ;告知匯編器CPL=0BSETCPL ;置位CPL(運行時).CPL_on ;告知匯編器CPL=15.CPL位如果FRCT=1,C55x打開小數(shù)模式。乘法運算的結(jié)果左移一位進行小數(shù)點調(diào)整。兩個帶符號的Q15制數(shù)相乘,得到一個Q31制數(shù)時,就要進行小數(shù)點調(diào)整。如果FRCT=0,C55x關閉小數(shù)模式。乘法運算的結(jié)果不移位??捎孟旅娴闹噶钋辶愫椭梦籉RCT:BCLRFRCT ;清零FRCTBSETFRCT ;置位FRCT6.FRCT位如果HM=0,C55x繼續(xù)執(zhí)行內(nèi)部程序存儲器的指令。如果HM=1,C55x停止執(zhí)行內(nèi)部程序存儲器的指令??捎孟旅娴闹噶钋辶愫椭梦籋M:BCLRHM ;清零HMBSETHM ;置位HM7.HM位當DSP得到HOLD信號時,會將外部接口總線置于高阻態(tài)。根據(jù)HM的值,DSP也可以停止內(nèi)部程序執(zhí)行。如果INTM=0,C55x使能所有可屏蔽中斷如果INTM=1,C55x禁止所有可屏蔽中斷使用INTM位需要注意的要點:INTM位能夠全局使能或禁止可屏蔽中斷,但是它對不可屏蔽中斷無效。在使用INTM位時,要使用狀態(tài)位清零和置位指令來修改INTM位。其它能影響INTM位的,只有軟件中斷指令和軟件置位指令。8.INTM位CPU響應中斷請求時,自動保存INTM位。特別地,CPU把ST1_55保存到數(shù)據(jù)堆棧時,INTM位也被保存起來。執(zhí)行中斷服務子程序(ISR)之前,CPU自動置位INTM位,禁止所有的可屏蔽中斷。ISR可以通過清零INTM位,來重新開放可屏蔽中斷。中斷返回指令,從數(shù)據(jù)堆棧恢復INTM位的值。在調(diào)試器實時仿真模式下,CPU暫停時,忽略INTM位,CPU只處理臨界時間中斷。如果M40=0,D單元的計算模式選擇32位模式:第31位是符號位計算過程中的進位取決于第31位由第31位判斷是否溢出飽和過程,飽和值是007FFFFFFFh(正溢出)或FF80000000h(負溢出)累加器和0的比較,用第31~0位來進行可對整個32位進行移位和循環(huán)操作9.M40位累加器左移或循環(huán)移位時,從第31位移出累加器右移或循環(huán)移位時,移入的位插入到第31位上對于累加器帶符號位的移位如果SXMD=0,則累加器的保護位值要設為0如果SXMD=1,累加器的保護位要設為第31位的值;對于累加器的任何循環(huán)移位或邏輯移位,都要清零目的累加器的保護位如果M40=1,D單元的計算模式選擇40位的帶符號移位模式:第39位是符號位計算過程中的進位取決于第39位由第39位判斷是否溢出飽和過程,飽和值是7FFFFFFFFFh(正溢出)或8000000000h(負溢出)累加器和0的比較,用第39~0位來進行可對整個40位進行移位和循環(huán)操作累加器左移或循環(huán)移位時,從第39位移出累加器右移或循環(huán)移位時,移入的位插入到第39位上如果SATD=0,關閉D單元的飽和模式,不執(zhí)行飽和模式如果SATD=1,打開D單元的飽和模式如果D單元內(nèi)的運算產(chǎn)生溢出,則結(jié)果值飽和飽和值取決于M40位M40=0,CPU的飽和值為007FFFFFFFh(正溢出)或FF80000000h(負溢出)M40=1,CPU的飽和值為7FFFFFFFFFh(正溢出)或8000000000h(負溢出)10.SATD位如果SXMD=0,關閉D單元的符號擴展模式對于40位的運算,16位或更小的操作數(shù)都要補0,擴展至40位對于條件減法指令,任何16位的除數(shù)都可以得到理想的結(jié)果當D單元的ALU被局部配置為雙16位模式時,D單元ALU的高16位補零擴展至24位。累加器值右移時,高段和低段的16位補零擴展累加器帶符號移位時,如果是一個32位操作(M40=0),累加器的保護位(第39~32位)填零累加器帶符號右移時,移位值補零擴展11.SXMD位如果SXMD=1時,打開符號擴展模式:對于40位的運算,16位或更小的操作數(shù),都要符號擴展至40位對于條件減法指令,16位的除數(shù)必須是正數(shù),其最高位(MSB)必須是0當D單元的ALU局部配置為雙16位模式時,D單元ALU的高16位值帶符號擴展至24位。累加器右移時,高段和低段的16位都要帶符號擴展累加器帶符號移位時,其值帶符號擴展如果是一個32位操作(M40=0),則將第31位的值,復制到累加器的保護位(第39~32位)累加器帶符號右移時,除非有限定符uns()表明它是無符號的,否則移位值都要被帶符號擴展。對于無符號運算(布爾邏輯運算、循環(huán)移位和邏輯移位運算),不管SXMD的值是什么,輸入的操作數(shù)都要被補零擴展至40位。對于乘加單元MAC里的運算,不管SXMD值是多少,輸入的操作數(shù)都要帶符號擴展至17位。如果指令里的操作數(shù)是在限定符uns()里,則不管SXMD值是多少,都視為無符號的用下面的指令清零和置位SXMD:

BCLRSXMD ;清零SXMDBSETSXMD ;置位SXMDXF是通用的輸出位,能用軟件處理且可輸出至DSP引腳用下面的指令清零和置位XF:BCLRXF ;清零XFBSETXF ;置位XF12.XF位2.4.11狀態(tài)寄存器ST2_55ARnLC(n=0、1、2、3、4、5、6、7)位決定ARn用作線性尋址還是循環(huán)尋址。ARnLC=0:線性尋址ARnLC=1:循環(huán)尋址1.AR0LC~AR7LC位域

用狀態(tài)位清零/置位指令來清零/置位ARnLC。例:BCLRAR3LC ;清零AR3LCBSETAR3LC ;置位AR3LC如果ARMS=0,輔助寄存器(AR)間接尋址的CPU模式采用DSP模式操作數(shù),該操作數(shù)能有效執(zhí)行DSP專用程序。這些操作數(shù)里,有的在指針加/減時使用反向操作數(shù)。短偏移操作數(shù)不可用。如果ARMS=1,輔助寄存器(AR)間接尋址的CPU模式采用控制模式操作數(shù),該操作數(shù)能為控制系統(tǒng)的應用優(yōu)化代碼的大小。短偏移操作數(shù)*ARn(short(#k3))可用。其它偏移需要在指令里進行2字節(jié)擴展,而這些有擴展的指令不能和其他指令并行執(zhí)行。2.ARMS位用下面的指令和偽指令來改變模式:BCLRARMS ;清零ARMS(運行時).ARMS_off ;告知編譯器ARMS=0BSETARMS ;置位ARMS(運行時).ARMS_on ;編譯器ARMS=1CDPLC位決定系數(shù)數(shù)據(jù)指針(CDP)是用線性尋址(CDPLC=0),還是循環(huán)尋址(CDPLC位=1)用下面的指令清零和置位CDPLC:BCLRCDPLC;清零CDPLCBSETCDPLC;置位CDPLC3.CDPLC位DBGM位用于調(diào)試程序里有嚴格時間要求的部分如果DBGM=0,使能該位如果DBGM=1,禁止該位。仿真器不能訪問存儲器和寄存器。軟件斷點仍然可以使CPU暫停,但不會影響硬件斷點或暫停請求4.DBGM位

為了保護流水,只能由狀態(tài)位清零/置位指令修改DBGM,其它指令都不會影響DBGM位:

BCLR DBGM ;清零DBGM BSET DBGM ;置位DBGM當CPU響應一個中斷請求時,會自動保護DBGM位的狀態(tài)。確切地說,當CPU把ST2_55保存到數(shù)據(jù)堆棧時,DGBM位就被保存起來執(zhí)行一個中斷服務子程序(ISR)前,CPU自動置位DBGM,禁止調(diào)試。ISR可以通過清零DBGM位,重新使能調(diào)試EALLOW使能(EALLOW=1)或禁止(EALLOW=0)對非CPU仿真寄存器的寫訪問當CPU響應一個中斷請求時,自動保存EALLOW位的狀態(tài)。確切地說,當CPU把ST2_55保存到數(shù)據(jù)堆棧時,也就是保存了EALLOW位執(zhí)行一個中斷服務子程序(ISR)前,CPU自動清EALLOW位,禁止訪問仿真寄存器。ISR通過置位EALLOW位,可以重新開放對仿真寄存器的訪問中斷返回指令,從數(shù)據(jù)堆棧恢復EALLOW位5.EALLOW位

在D單元執(zhí)行的一些指令里,CPU將rnd()括號里的操作數(shù)取整。取整操作的類型取決于RDM的值如果RDM=0,CPU給40位的操作數(shù)加上8000h(即215),然后CPU清零第15~0位,產(chǎn)生一個24位或16位的取整結(jié)果若結(jié)果是24位的整數(shù),只有第39~16位是有意義的若結(jié)果是16位的整數(shù),只有第31~16位是有意義的6.RDM位如果RDM=1,取整至最接近的整數(shù)。取整結(jié)果取決于40位操作數(shù)的第15~0位:If(0=<(位15-0)<8000h)

CPU清零第15~0位

If(8000h<(位15-0)<10000h)

CPU給該操作數(shù)加上8000h,再清零第15~0位

If((位15-0)==8000h) If(位31-16)是奇數(shù)

CPU給該操作數(shù)加上8000h,再清零第15~0位2.4.12狀態(tài)寄存器ST3_55?說明:

ST3_55的第11~8位總是寫作1100b(Ch)檢查是否已完成程序cache清零CACLR=0:已經(jīng)完成。清零過程完成時,cache硬件清零CACLR位CACLR=1:未完成。所有的cache塊無效清零cache所需的時間周期數(shù)取決于存儲器的結(jié)構(gòu)當cache清零后,指令緩沖器單元里的預取指令隊列的內(nèi)容會自動清零1.CACLR位使能或禁止程序cacheCAEN=0:禁止。cache控制器不接收任何程序要求,所有的程序要求都由片內(nèi)存儲器或片外存儲器(根據(jù)解碼的地址而定)來處理。CAEN=1:使能。依據(jù)解碼的地址,可以從cache、片內(nèi)存儲器或片外存儲器提取程序代碼。當清零CAEN位禁止cache時,I單元的指令緩沖隊列的內(nèi)容會自動清零2.CAEN位CAFRZ能鎖定程序cacheCAFRZ=0:cache工作在默認操作模式CAFRZ=1:cache被凍結(jié)(其內(nèi)容被鎖

溫馨提示

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

評論

0/150

提交評論