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

下載本文檔

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

文檔簡(jiǎn)介

1、nCPU寄存器寄存器 第第2章章 TMS320C55x的硬件結(jié)構(gòu)的硬件結(jié)構(gòu)2.4 CPU寄存器寄存器lC55x的寄存器(見(jiàn)表的寄存器(見(jiàn)表2-8 )lC55x寄存器的映射地址及描述(見(jiàn)表寄存器的映射地址及描述(見(jiàn)表2-9 )2.4.1 概況概況 注意事項(xiàng):注意事項(xiàng): ST0_55、ST1_55和和ST3_55都有兩個(gè)訪問(wèn)地址;都有兩個(gè)訪問(wèn)地址; T3、RSA0L、REA0L和和SP有兩個(gè)訪問(wèn)地址;有兩個(gè)訪問(wèn)地址; 任何裝入任何裝入BRC1的指令將相同的值裝入的指令將相同的值裝入BRS1。 對(duì)于對(duì)于ST0_55、ST1_55和和ST3_55,對(duì)于其中一個(gè)地址,所有的對(duì)于其中一個(gè)地址,所有的C55

2、x位均位均可訪問(wèn);在另外一個(gè)地址(稱(chēng)為保護(hù)地可訪問(wèn);在另外一個(gè)地址(稱(chēng)為保護(hù)地址),某些保護(hù)位不能被修改。保護(hù)地址),某些保護(hù)位不能被修改。保護(hù)地址是為了提供對(duì)址是為了提供對(duì)C54x代碼的支持,以代碼的支持,以便寫(xiě)入便寫(xiě)入ST0、ST1以及以及PMST(C54x對(duì)對(duì)應(yīng)應(yīng)ST3_55) 對(duì)于對(duì)于T3、RSA0L、REA0L和和SP,當(dāng)使用當(dāng)使用DP直接尋址方式訪問(wèn)存儲(chǔ)器映直接尋址方式訪問(wèn)存儲(chǔ)器映射寄存器時(shí),將訪問(wèn)兩個(gè)地址中更高的射寄存器時(shí),將訪問(wèn)兩個(gè)地址中更高的地址,即地址,即 T3=23H(不是(不是0EH);); RSA0L=3DH(不是(不是1BH);); REA0L=3FH(不是(不是1

3、CH);); SP=4DH(不是(不是18H)表表2-8 寄存器總表(寄存器總表(1)縮 寫(xiě)名 稱(chēng)大小AC0AC3累加器0340位AR0AR7輔助寄存器0716位BK03,BK47,BKC循環(huán)緩沖區(qū)大小寄存器16位BRC0,BRC1塊循環(huán)計(jì)數(shù)器0和116位BRS1BRC1保存寄存器16位BSA01,BSA23,BSA45,BSA67,BSAC循環(huán)緩沖區(qū)起始地址寄存器16位CDP系數(shù)數(shù)據(jù)指針(XCDP的低位部分)16位CDPHXCDP的高位部分7位CFCT控制流關(guān)系寄存器8位CSR計(jì)算單循環(huán)寄存器16位DBIER0,DBIER1調(diào)試中斷使能寄存器0和116位DP數(shù)據(jù)頁(yè)寄存器(XDP的低位部分)1

4、6位DPHXDP的高位部分7位IER0,IER1中斷使能寄存器0和116位IFR0,IFR1中斷標(biāo)志寄存器0和116位IVPD,IVPH中斷向量指針16位表表2-8 寄存器總表(寄存器總表(2)PC程序計(jì)數(shù)器24位PDP外設(shè)數(shù)據(jù)頁(yè)寄存器9位REA0,REA1塊循環(huán)結(jié)束地址寄存器0和124位RETA返回地址寄存器24位RPTC單循環(huán)計(jì)數(shù)器16位RSA0,RSA1塊循環(huán)起始地址寄存器0和124位SP數(shù)據(jù)堆棧指針16位SPHXSP和XSSP的高位7位SSP系統(tǒng)堆棧指針16位ST0_55ST3_55狀態(tài)寄存器0316位T0T3暫時(shí)寄存器16位TRN0TRN1變換寄存器0和116位XAR0XAR7擴(kuò)展輔

5、助寄存器0723位XCDP擴(kuò)展系數(shù)數(shù)據(jù)指針23位XDP擴(kuò)展數(shù)據(jù)頁(yè)寄存器23位XSP擴(kuò)展數(shù)據(jù)堆棧指針23位XSSP擴(kuò)展系統(tǒng)堆棧指針23位表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(1) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(2) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(3) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(4) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(5) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(6) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(7) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)器映射寄存器(8) 表表2-9 存儲(chǔ)器映射寄存器(存儲(chǔ)

6、器映射寄存器(9) 2.4.2 累加器(累加器(AC0AC3)lC55x的的CPU包括包括4個(gè)個(gè)40位的累加器位的累加器AC0、AC1、AC2、AC3lAC0、AC1、AC2、AC3等價(jià)。任何一條使用一個(gè)累加等價(jià)。任何一條使用一個(gè)累加器的指令,都可以通過(guò)編程來(lái)使用器的指令,都可以通過(guò)編程來(lái)使用4個(gè)累加器中的任何一個(gè)累加器中的任何一個(gè)個(gè)l在在C54x兼容模式(兼容模式(C54CM=1)下,累加器)下,累加器AC0、AC1分分別對(duì)應(yīng)于別對(duì)應(yīng)于C54x里的累加器里的累加器A、B l 每個(gè)累加器分為低字(每個(gè)累加器分為低字(ACxL)、高字()、高字(ACxH) 和和8個(gè)個(gè)保護(hù)位(保護(hù)位(ACxG),

7、用戶(hù)可以使用訪問(wèn)存儲(chǔ)器映射寄存器用戶(hù)可以使用訪問(wèn)存儲(chǔ)器映射寄存器的尋址方式,分別訪問(wèn)這的尋址方式,分別訪問(wèn)這3部分部分 AC0GAC0LAC0HAC1GAC1LAC1HAC2GAC2LAC2HAC3GAC3LAC3HAC0AC1AC2AC3393231161502.4.3 變換寄存器變換寄存器TRN0、TRN1lC55x有有2個(gè)變換寄存器個(gè)變換寄存器TRN0、TRN1l用途:在用途:在比較比較-選擇選擇-極值極值指令里使用指令里使用u比較兩個(gè)累加器的高段字和低段字后,執(zhí)行選擇兩比較兩個(gè)累加器的高段字和低段字后,執(zhí)行選擇兩個(gè)個(gè)16位極值的指令,以更新位極值的指令,以更新TRN0和和TRN1。比較

8、累。比較累加器的高段字后更新加器的高段字后更新TRN0,比較累加器的低段字后,比較累加器的低段字后更新更新TRN1u在比較完兩個(gè)累加器的全部在比較完兩個(gè)累加器的全部40位后,執(zhí)行選擇一個(gè)位后,執(zhí)行選擇一個(gè)40位極值的指令,以更新被選中的變換寄存器位極值的指令,以更新被選中的變換寄存器(TRN0或或TRN1) 2.4.4 T寄存器(寄存器(T0-T3) l用途用途u存放乘法、乘加以及乘減運(yùn)算里的一個(gè)乘數(shù)存放乘法、乘加以及乘減運(yùn)算里的一個(gè)乘數(shù)u存放存放D單元里加法、減法和裝入運(yùn)算的移位數(shù)單元里加法、減法和裝入運(yùn)算的移位數(shù)u用交換指令交換輔助寄存器(用交換指令交換輔助寄存器(AR0-AR7)和)和T

9、寄存器寄存器中的內(nèi)容時(shí),跟蹤多個(gè)指針值中的內(nèi)容時(shí),跟蹤多個(gè)指針值u在在D單元單元ALU里作雙里作雙16位運(yùn)算時(shí),存放位運(yùn)算時(shí),存放Viterbi蝶形的蝶形的變換尺度變換尺度l CPU包括包括4個(gè)個(gè)16位通用位通用T寄寄存器:存器:T0、T1、T2、T32.4.5 用作數(shù)據(jù)地址空間和用作數(shù)據(jù)地址空間和I/O空間的寄存器空間的寄存器 表表2-10 用作數(shù)據(jù)地址空間和用作數(shù)據(jù)地址空間和I/O空間的寄存器空間的寄存器1. 輔助寄存器(輔助寄存器(XAR0XAR7/AR0AR7)低字的作用:低字的作用: 用于用于ARAR間接尋址模式,以間接尋址模式,以及雙及雙ARAR間接尋址模式。間接尋址模式。 提供提

10、供7 7位數(shù)據(jù)頁(yè)內(nèi)的位數(shù)據(jù)頁(yè)內(nèi)的1616位偏位偏移量(形成一個(gè)移量(形成一個(gè)2323位地址)位地址); ;存放位地址存放位地址; ;作為通用寄存器作為通用寄存器或計(jì)數(shù)器?;蛴?jì)數(shù)器。高高7 7位用于指定要訪問(wèn)數(shù)據(jù)位用于指定要訪問(wèn)數(shù)據(jù)空間的數(shù)據(jù)頁(yè)空間的數(shù)據(jù)頁(yè)訪問(wèn)屬性:訪問(wèn)屬性: XARn只能用專(zhuān)用指令訪問(wèn); ARn可用專(zhuān)用指令訪問(wèn),也可以作為存儲(chǔ)器映射寄存器訪問(wèn); ARnH不能單獨(dú)訪問(wèn),必須通過(guò)訪問(wèn)XARn來(lái)訪問(wèn)ARnHlCPU在存儲(chǔ)器中映射了一個(gè)系數(shù)數(shù)據(jù)指針(在存儲(chǔ)器中映射了一個(gè)系數(shù)數(shù)據(jù)指針(CDP)和)和一個(gè)相關(guān)的擴(kuò)展寄存器(一個(gè)相關(guān)的擴(kuò)展寄存器(CDPH):):2. 系數(shù)數(shù)據(jù)指針(系數(shù)數(shù)據(jù)指

11、針(XCDP/CDP)lCPU可以連接這個(gè)寄存器形成一個(gè)擴(kuò)展系數(shù)數(shù)據(jù)指針可以連接這個(gè)寄存器形成一個(gè)擴(kuò)展系數(shù)數(shù)據(jù)指針(XCDP)u高高7位(位(CDPH)用于指定要訪問(wèn)數(shù)據(jù)空間的數(shù)據(jù)頁(yè))用于指定要訪問(wèn)數(shù)據(jù)空間的數(shù)據(jù)頁(yè)u低字(低字(CDP)用來(lái)作為)用來(lái)作為16位偏移量與位偏移量與7位數(shù)據(jù)頁(yè)形成位數(shù)據(jù)頁(yè)形成一個(gè)一個(gè)23位地址位地址 lXCDP或或CDP用在用在CDP間接尋址方式和系數(shù)間接尋間接尋址方式和系數(shù)間接尋址方式中,址方式中,CDP可用于任何指令中訪問(wèn)一個(gè)單數(shù)據(jù)可用于任何指令中訪問(wèn)一個(gè)單數(shù)據(jù)空間值,在雙空間值,在雙MAC指令中,它還可以獨(dú)立地提供第指令中,它還可以獨(dú)立地提供第三個(gè)操作數(shù)。三個(gè)

12、操作數(shù)。 表表2-12 XCDP的訪問(wèn)屬性的訪問(wèn)屬性 3. 循環(huán)緩沖區(qū)首地址寄存器循環(huán)緩沖區(qū)首地址寄存器lCPU有有5個(gè)個(gè)16位的循環(huán)緩沖區(qū)首地址寄存器:位的循環(huán)緩沖區(qū)首地址寄存器:BSA01,BSA23,BSA45,BSA67,BSACl作用:定義循環(huán)的首地址作用:定義循環(huán)的首地址l每個(gè)循環(huán)緩沖區(qū)首地址寄存器與一個(gè)或兩個(gè)特殊的每個(gè)循環(huán)緩沖區(qū)首地址寄存器與一個(gè)或兩個(gè)特殊的指針相關(guān)聯(lián)指針相關(guān)聯(lián)4. 循環(huán)緩沖區(qū)大小寄存器循環(huán)緩沖區(qū)大小寄存器l三個(gè)三個(gè)16位的循環(huán)緩沖區(qū)大小寄存器(位的循環(huán)緩沖區(qū)大小寄存器(BK03,BK47,BKC)l 用途:指定循環(huán)緩沖區(qū)大?。ㄗ畲鬄橛猛荆褐付ㄑh(huán)緩沖區(qū)大小(最大

13、為65535)l每個(gè)循環(huán)緩沖區(qū)大小寄存器與一個(gè)或四個(gè)特殊的指針每個(gè)循環(huán)緩沖區(qū)大小寄存器與一個(gè)或四個(gè)特殊的指針相關(guān)聯(lián)相關(guān)聯(lián)5.數(shù)據(jù)頁(yè)寄存器(數(shù)據(jù)頁(yè)寄存器(XDP/DP)lCPU在存儲(chǔ)器中映射了一個(gè)數(shù)據(jù)頁(yè)寄存器(在存儲(chǔ)器中映射了一個(gè)數(shù)據(jù)頁(yè)寄存器(DP)和一)和一個(gè)相關(guān)的擴(kuò)展寄存器(個(gè)相關(guān)的擴(kuò)展寄存器(DPH)lCPU連接這兩個(gè)寄存器形成一個(gè)擴(kuò)展數(shù)據(jù)頁(yè)寄存器連接這兩個(gè)寄存器形成一個(gè)擴(kuò)展數(shù)據(jù)頁(yè)寄存器(XDP)uDPH指定要訪問(wèn)數(shù)據(jù)空間的指定要訪問(wèn)數(shù)據(jù)空間的7位數(shù)據(jù)頁(yè)位數(shù)據(jù)頁(yè)u低字(低字(DP)用來(lái)代表一個(gè))用來(lái)代表一個(gè)16位偏移地址位偏移地址l用途:用途:u在基于在基于DP的直接尋址方式中,的直接尋址

14、方式中,XDP指定指定23位地址位地址u在在k16絕對(duì)尋址方式中,絕對(duì)尋址方式中,DPH與一個(gè)與一個(gè)16位的立即數(shù)位的立即數(shù)連接形成連接形成23位地址位地址表表2-15 XDP寄存器的訪問(wèn)屬性寄存器的訪問(wèn)屬性6.外設(shè)數(shù)據(jù)頁(yè)指針(外設(shè)數(shù)據(jù)頁(yè)指針(PDP)l對(duì)于對(duì)于PDP直接尋址方式,直接尋址方式, 9位的外設(shè)數(shù)據(jù)頁(yè)指針位的外設(shè)數(shù)據(jù)頁(yè)指針(PDP)選擇)選擇64K字字I/O空間中的一個(gè)空間中的一個(gè)128字頁(yè)面字頁(yè)面7.堆棧指針(堆棧指針(XSP/SP,XSSP/SSP)l有關(guān)堆棧指針有關(guān)堆棧指針u數(shù)據(jù)堆棧指針數(shù)據(jù)堆棧指針(SP)u系統(tǒng)堆棧指針系統(tǒng)堆棧指針(SSP)u相關(guān)擴(kuò)展寄存器相關(guān)擴(kuò)展寄存器(S

15、PH)l當(dāng)訪問(wèn)數(shù)據(jù)堆棧時(shí),當(dāng)訪問(wèn)數(shù)據(jù)堆棧時(shí),CPU連接連接SPH和和SP形成一個(gè)擴(kuò)展的形成一個(gè)擴(kuò)展的堆棧指針(堆棧指針(XSP),指向最后壓入數(shù)據(jù)堆棧的數(shù)據(jù)),指向最后壓入數(shù)據(jù)堆棧的數(shù)據(jù)uSPH代表代表7位數(shù)據(jù)頁(yè)位數(shù)據(jù)頁(yè)uSP指向頁(yè)中某個(gè)具體地址指向頁(yè)中某個(gè)具體地址l當(dāng)訪問(wèn)系統(tǒng)堆棧時(shí),當(dāng)訪問(wèn)系統(tǒng)堆棧時(shí),CPU連接連接SPH和和SSP形成一個(gè)擴(kuò)展形成一個(gè)擴(kuò)展的堆棧指針(的堆棧指針(XSSP),指向最后壓入系統(tǒng)堆棧的數(shù)據(jù)),指向最后壓入系統(tǒng)堆棧的數(shù)據(jù)表表2-16 堆棧指針的訪問(wèn)屬性堆棧指針的訪問(wèn)屬性2.4.6 程序流寄存器(程序流寄存器(PC、RETA、CFCT)l程序流寄存器(程序流寄存器(3個(gè)

16、)個(gè))寄存器描 述PC24位的程序計(jì)數(shù)器。存放I單元里解碼的16字節(jié)代碼的地址.當(dāng)CPU執(zhí)行中斷或調(diào)用子程序時(shí),當(dāng)前的PC值(返回地址)存起來(lái),然后把新的地址裝入PC。當(dāng)CPU從中斷服務(wù)或子程序返回時(shí),返回地址重新裝入PCRETA返回地址寄存器。如果所選擇的堆棧配置使用快速返回,則在執(zhí)行子程序時(shí),RETA就作為返回地址的暫存器。RETA和CFCT一起,高效執(zhí)行多層嵌套的子程序。可用專(zhuān)門(mén)的32位裝入和存儲(chǔ)指令,成對(duì)地讀寫(xiě)RETA和CFCTCFCT控制流關(guān)系寄存器。CPU保存有激活的循環(huán)記錄(循環(huán)的前后關(guān)系)。如果選擇的堆棧配置使用快速返回,則在執(zhí)行子程序時(shí),CFCT就作為8位循環(huán)關(guān)系的暫存器。R

17、ETA和CFCT一起,高效執(zhí)行多層嵌套的子程序。可用專(zhuān)門(mén)的32位 裝入和存儲(chǔ)指令,成對(duì)地讀寫(xiě)RETA和CFCT lCFCT寄存器寄存器 CPU由內(nèi)部位按照一定規(guī)則來(lái)存放循環(huán)的前后關(guān)系,即由內(nèi)部位按照一定規(guī)則來(lái)存放循環(huán)的前后關(guān)系,即子程序里循環(huán)的狀態(tài)(激活和未激活)子程序里循環(huán)的狀態(tài)(激活和未激活)u當(dāng)當(dāng)CPU執(zhí)行中斷或調(diào)用子程序時(shí),循環(huán)關(guān)系位就存執(zhí)行中斷或調(diào)用子程序時(shí),循環(huán)關(guān)系位就存放在放在CFCT里里u當(dāng)當(dāng)CPU從中斷或調(diào)用子程序返回時(shí),循環(huán)關(guān)系位就從中斷或調(diào)用子程序返回時(shí),循環(huán)關(guān)系位就從從CFCT恢復(fù)恢復(fù)表表2-18 CFCT各位的含義各位的含義2.4.7 中斷管理寄存器中斷管理寄存器表表

18、2-19 中斷管理寄存器中斷管理寄存器 中斷向量指針(中斷向量指針(IVPD,IVPH)lDSP中斷向量指針(中斷向量指針(IVPD)l主機(jī)中斷向量指針(主機(jī)中斷向量指針(IVPH)16位,指向位,指向256字節(jié)的程序字節(jié)的程序空間中的中斷向量表空間中的中斷向量表(IV0IV15和和IV24IV31),這些中斷向量供),這些中斷向量供DSP專(zhuān)用專(zhuān)用16位,指向位,指向256字節(jié)的程序字節(jié)的程序空間中的中斷向量表空間中的中斷向量表(IV16 IV23),這些中),這些中斷向量供斷向量供DSP和主機(jī)共享使和主機(jī)共享使用用 說(shuō)明說(shuō)明:如果如果IVPDIVPD和和IVPHIVPH的值相同,所有中斷向量

19、可能占有相同的的值相同,所有中斷向量可能占有相同的256256字節(jié)大小的程序空間;字節(jié)大小的程序空間;DSPDSP硬件復(fù)位時(shí),硬件復(fù)位時(shí),IVPDIVPD和和IVPHIVPH都被裝入到都被裝入到FFFFHFFFFH地址處;地址處;IVPDIVPD和和IVPHIVPH均不受軟復(fù)位的影響均不受軟復(fù)位的影響 表表2-20 中斷向量地址中斷向量地址 在修改在修改IVPIVP之前應(yīng)確保:之前應(yīng)確保:INTM=1INTM=1,即所有可屏蔽中斷不能響應(yīng)。,即所有可屏蔽中斷不能響應(yīng)。每個(gè)硬件不可屏蔽中斷對(duì)于原來(lái)的每個(gè)硬件不可屏蔽中斷對(duì)于原來(lái)的IVPDIVPD和修改后的和修改后的IVPDIVPD都有一個(gè)中斷向量

20、和中斷服務(wù)程序。都有一個(gè)中斷向量和中斷服務(wù)程序。由由1616位的中斷向量指針加上一個(gè)位的中斷向量指針加上一個(gè)5 5位的中斷編號(hào)后左移位的中斷編號(hào)后左移3 3位組成一個(gè)位組成一個(gè)2424位的中斷地址。位的中斷地址。 2. 中斷標(biāo)志寄存器(中斷標(biāo)志寄存器(IFR0,IFR1)表表2-21 中斷標(biāo)志寄存器中斷標(biāo)志寄存器IFR1表表2-22 中斷標(biāo)志寄存器中斷標(biāo)志寄存器IFR0l16位的中斷標(biāo)志寄存器IFR0和IFR1包括所有可屏蔽中斷的標(biāo)志位l當(dāng)一個(gè)可屏蔽中斷向CPU提出申請(qǐng)時(shí),IFR中相應(yīng)的標(biāo)志位置1,等待CPU應(yīng)答中斷l(xiāng)可以通過(guò)讀IFR標(biāo)志已發(fā)送申請(qǐng)的中斷,或?qū)?到IFR相應(yīng)的位撤銷(xiāo)中斷申請(qǐng),即

21、寫(xiě)入1清相應(yīng)位為0l中斷被響應(yīng)后將相應(yīng)位清0,器件復(fù)位將所有位清03.中斷使能寄存器(中斷使能寄存器(IER0,IER1)表表2-23 中斷使能寄存器中斷使能寄存器IER1表表2-24 中斷使能寄存器中斷使能寄存器IER0 l通過(guò)設(shè)置IER0、IER1的位為u 1 ,打開(kāi)相應(yīng)的可屏蔽中斷u 0 ,關(guān)閉相應(yīng)的可屏蔽l上電復(fù)位時(shí),將所有IER位清0。lER0、IER1不受軟件復(fù)位指令和DSP熱復(fù)位的影響,在全局可屏蔽中斷使能(INTM=1)之前應(yīng)初始化它們。4. 調(diào)試中斷使能寄存器(調(diào)試中斷使能寄存器(DBIER0,DBIER1)l僅當(dāng)僅當(dāng)CPU工作在工作在 實(shí)時(shí)實(shí)時(shí) 仿真模式仿真模式 調(diào)試調(diào)試

22、暫停暫停 時(shí),這兩個(gè)時(shí),這兩個(gè)16位的調(diào)試中斷使能寄存器才會(huì)位的調(diào)試中斷使能寄存器才會(huì)使用使用l如果如果CPU工作在實(shí)時(shí)方式下,工作在實(shí)時(shí)方式下,DBIER0、DBIER1將被忽略將被忽略2.4.8 循環(huán)控制寄存器循環(huán)控制寄存器l單循環(huán)指令可以重復(fù)執(zhí)行一個(gè)單周期指令或并行執(zhí)單循環(huán)指令可以重復(fù)執(zhí)行一個(gè)單周期指令或并行執(zhí)行兩個(gè)單周期指令,重復(fù)次數(shù)行兩個(gè)單周期指令,重復(fù)次數(shù)N被裝在被裝在RPTC中,指中,指令將被重復(fù)執(zhí)行令將被重復(fù)執(zhí)行N+1次。次。l在一些無(wú)條件單指令循環(huán)操作中,可以使用在一些無(wú)條件單指令循環(huán)操作中,可以使用CSR設(shè)設(shè)置重復(fù)次數(shù)。置重復(fù)次數(shù)。1.1.單指令循環(huán)控制單指令循環(huán)控制寄存器

23、(寄存器(RPTC,CSR)2.塊循環(huán)寄存器(塊循環(huán)寄存器(BRC0,BRC1,BRS1,RSA0,RSA1,REA0,REA1)l塊循環(huán)指令可以實(shí)現(xiàn)塊循環(huán)指令可以實(shí)現(xiàn)2級(jí)嵌套,一個(gè)塊循環(huán)(級(jí)嵌套,一個(gè)塊循環(huán)(1級(jí))嵌套在另級(jí))嵌套在另一個(gè)塊循環(huán)(一個(gè)塊循環(huán)(0級(jí))內(nèi)部級(jí))內(nèi)部l當(dāng)當(dāng)C54CM=0,即工作在,即工作在C55x方式下,才實(shí)現(xiàn)方式下,才實(shí)現(xiàn)2級(jí)嵌套級(jí)嵌套u(yù)當(dāng)無(wú)循環(huán)嵌套時(shí),當(dāng)無(wú)循環(huán)嵌套時(shí),CPU使用使用0級(jí)寄存器級(jí)寄存器u當(dāng)出現(xiàn)循環(huán)嵌套時(shí),當(dāng)出現(xiàn)循環(huán)嵌套時(shí),CPU對(duì)于對(duì)于1級(jí)嵌套使用級(jí)嵌套使用1級(jí)寄存器級(jí)寄存器l當(dāng)當(dāng)C54CM=1,即工作在,即工作在C54x方式下方式下u只能使用只能

24、使用0級(jí)寄存器,通過(guò)借助塊重復(fù)標(biāo)志寄存器級(jí)寄存器,通過(guò)借助塊重復(fù)標(biāo)志寄存器(BRAF)完成嵌套)完成嵌套表表2-25 塊循環(huán)寄存器塊循環(huán)寄存器2.4.9 狀態(tài)寄存器狀態(tài)寄存器ST0_55 ST0_55(以及(以及ST1_55和和ST3_55)有)有兩個(gè)訪問(wèn)地址。兩個(gè)訪問(wèn)地址。 所有位都可以由第一個(gè)地址訪問(wèn),所有位都可以由第一個(gè)地址訪問(wèn),而在另一個(gè)地址(保護(hù)地址)里,加而在另一個(gè)地址(保護(hù)地址)里,加黑部分不能修改;黑部分不能修改; 保護(hù)地址是為了支持把保護(hù)地址是為了支持把C54x的代的代碼寫(xiě)入碼寫(xiě)入ST0、ST1和和PMST累加器溢出標(biāo)志(累加器溢出標(biāo)志(ACOV0,ACOV1,ACOV2,A

25、COV3)l當(dāng)累加器當(dāng)累加器AC0、AC1、AC2或或AC3有數(shù)據(jù)溢出時(shí)有數(shù)據(jù)溢出時(shí),相應(yīng)的相應(yīng)的ACOV0、ACOV1、ACOV2或或ACOV3被置被置1,直到發(fā)生以,直到發(fā)生以下任一事件:下任一事件:u復(fù)位復(fù)位uCPU執(zhí)行條件跳轉(zhuǎn)、調(diào)用、返回,或執(zhí)行一條測(cè)試執(zhí)行條件跳轉(zhuǎn)、調(diào)用、返回,或執(zhí)行一條測(cè)試ACOVx狀態(tài)的指令狀態(tài)的指令u被指令清被指令清0l溢出方式受溢出方式受M40位的影響位的影響u當(dāng)當(dāng)M40=0時(shí),溢出檢測(cè)在第時(shí),溢出檢測(cè)在第31位,與位,與C54x兼容兼容u當(dāng)當(dāng)M40=1時(shí),溢出檢測(cè)在第時(shí),溢出檢測(cè)在第39位位2. 進(jìn)位位(進(jìn)位位(CARRY)l進(jìn)位進(jìn)位/借位的檢測(cè)取決于借位的

26、檢測(cè)取決于M40位位u當(dāng)當(dāng)M40=0時(shí),由第時(shí),由第31位檢測(cè)進(jìn)位位檢測(cè)進(jìn)位/借位借位u當(dāng)當(dāng)M40=1時(shí),由第時(shí),由第39位檢測(cè)進(jìn)位位檢測(cè)進(jìn)位/借位借位l當(dāng)當(dāng)D單元單元ALU做加法運(yùn)算時(shí),若產(chǎn)生進(jìn)位,則置位做加法運(yùn)算時(shí),若產(chǎn)生進(jìn)位,則置位CARRY;如果不產(chǎn)生進(jìn)位時(shí),則將如果不產(chǎn)生進(jìn)位時(shí),則將CARRY清清0例外:例外:使用以下語(yǔ)句(將使用以下語(yǔ)句(將Smem移動(dòng)移動(dòng)16位),有進(jìn)位時(shí)置位),有進(jìn)位時(shí)置位位CARRY,無(wú)進(jìn)位時(shí)不清,無(wú)進(jìn)位時(shí)不清0。ADD Smem#16,ACx,ACyl當(dāng)當(dāng)D單元單元ALU做減法運(yùn)算時(shí)做減法運(yùn)算時(shí)u若產(chǎn)生借位,將若產(chǎn)生借位,將CARRY清清0。u如果不產(chǎn)生借位

27、,則置位如果不產(chǎn)生借位,則置位CARRY。 例外例外:使用以下語(yǔ)句(將:使用以下語(yǔ)句(將Smem移動(dòng)移動(dòng)16位),有借位時(shí)位),有借位時(shí) CARRY 清清0,無(wú)借位時(shí),無(wú)借位時(shí)CARRY不變。不變。SUB Smem#16,ACx,ACylCARRY位可以被邏輯移位指令修改。對(duì)帶符號(hào)移位指令位可以被邏輯移位指令修改。對(duì)帶符號(hào)移位指令和循環(huán)移位指令,可以選擇和循環(huán)移位指令,可以選擇CARRY位是否需要修改位是否需要修改l目的寄存器是累加器時(shí),用以下指令修改目的寄存器是累加器時(shí),用以下指令修改CARRY位,位,以指示計(jì)算結(jié)果以指示計(jì)算結(jié)果MIN src,dstMAX src,dstABSsrc,ds

28、tNEGsrc,dstl可以通過(guò)下面兩條指令對(duì)可以通過(guò)下面兩條指令對(duì)CARRY清零和置位:清零和置位:BCLR CARRY ;清零清零BSET CARRY ;置位置位3. DP位域位域lDP位域位域u占據(jù)占據(jù)ST0_55的第的第80位位u提供與提供與C54x兼容的數(shù)據(jù)頁(yè)指針兼容的數(shù)據(jù)頁(yè)指針lC55x有一個(gè)獨(dú)立的數(shù)據(jù)頁(yè)指針有一個(gè)獨(dú)立的數(shù)據(jù)頁(yè)指針DPuDP(157)的任何變化都會(huì)反映在)的任何變化都會(huì)反映在ST0_55的的DP位位域上。域上。u基于基于DP的直接尋址方式,的直接尋址方式,C55x使用完整的數(shù)據(jù)頁(yè)指針使用完整的數(shù)據(jù)頁(yè)指針DP(150),因此不需要使用),因此不需要使用ST0_55的的

29、DP位域。位域。l如果想裝入如果想裝入ST0_55,但不想改變,但不想改變DP位域的值,可以用位域的值,可以用OR或或AND指令。指令。l所有能影響一個(gè)測(cè)試所有能影響一個(gè)測(cè)試/控制位的指令,都可以選擇影響控制位的指令,都可以選擇影響TC1還是還是TC2lTCx或關(guān)于或關(guān)于TCx的布爾表達(dá)式,都可以在任何條件指的布爾表達(dá)式,都可以在任何條件指令里用作觸發(fā)器令里用作觸發(fā)器l可以通過(guò)下面指令對(duì)可以通過(guò)下面指令對(duì)TCx置位和清零:置位和清零:BCLR TC1 ;TC1清零清零BSET TC1 ;TC1置位置位BCLR TC2 ;TC2清零清零BSET TC2 ;TC2置位置位4. 測(cè)試測(cè)試/控制位(控

30、制位(TC1,TC2) 測(cè)試測(cè)試/ /控制位用于保存一些特殊指令的測(cè)試結(jié)果,使用控制位用于保存一些特殊指令的測(cè)試結(jié)果,使用要點(diǎn)如下:要點(diǎn)如下:2.4.10 狀態(tài)寄存器狀態(tài)寄存器ST1_55l如果如果C54CM=0C55x忽略忽略ASM,C55x移位指令在暫存寄存(移位指令在暫存寄存(T0T3)里指定累加器的移位值,或者直接在指令里用)里指定累加器的移位值,或者直接在指令里用常數(shù)指定移位值。常數(shù)指定移位值。l如果如果C54CM=1 C55x以兼容方式運(yùn)行以兼容方式運(yùn)行C54x代碼,代碼,ASM用于給出某用于給出某些些C54x移位指令的移位值,移位范圍移位指令的移位值,移位范圍-1615。1. A

31、SM位位l如果如果C54CM=0,C55x不使用不使用BRAF。l如果如果C54CM=1,C55x以兼容方式運(yùn)行以兼容方式運(yùn)行C54x代碼,代碼,BRAF用于指定或控制一個(gè)塊循環(huán)操作的狀態(tài)。用于指定或控制一個(gè)塊循環(huán)操作的狀態(tài)。u在由調(diào)用、中斷或返回引起的代碼切換過(guò)程中,都要在由調(diào)用、中斷或返回引起的代碼切換過(guò)程中,都要保存和恢復(fù)保存和恢復(fù)BRAF的值。的值。u當(dāng)執(zhí)行遠(yuǎn)程跳轉(zhuǎn)(當(dāng)執(zhí)行遠(yuǎn)程跳轉(zhuǎn)(FB)或遠(yuǎn)程調(diào)用()或遠(yuǎn)程調(diào)用(FCALL)指令時(shí),)指令時(shí),BRAF自動(dòng)清零。自動(dòng)清零。2. BRAF位位l如果如果C54CM=0,C55x忽略忽略C16 指令本身決定是用單指令本身決定是用單32位操作還

32、是雙位操作還是雙16位操作。位操作。l如果如果C54CM=1,C55x以兼容方式運(yùn)行以兼容方式運(yùn)行C54x代碼,代碼,C16會(huì)會(huì)影響某些指令的執(zhí)行。影響某些指令的執(zhí)行。u當(dāng)當(dāng)C16=0時(shí),關(guān)閉雙時(shí),關(guān)閉雙16位模式,位模式,D單元單元ALU執(zhí)行一條指執(zhí)行一條指令是以單令是以單32位操作(雙精度運(yùn)算)形式位操作(雙精度運(yùn)算)形式u當(dāng)當(dāng)C16=1時(shí),打開(kāi)雙時(shí),打開(kāi)雙16位模式,位模式, D單元單元ALU執(zhí)行一條指執(zhí)行一條指令是以?xún)蓚€(gè)并行的令是以?xún)蓚€(gè)并行的16位操作(雙位操作(雙16位運(yùn)算)形式位運(yùn)算)形式3. C16位位l如果如果C54CM0,C55x CPU不支持不支持C54x代碼代碼l如果如果

33、C54CM1,C55x的的CPU支持支持C54x編寫(xiě)的代碼編寫(xiě)的代碼u在使用在使用C54x代碼時(shí)就必須置位該模式,所有代碼時(shí)就必須置位該模式,所有C55x CPU的資源都可以使用的資源都可以使用u在移植代碼時(shí),可以利用在移植代碼時(shí),可以利用C55x增加的特性?xún)?yōu)化代碼增加的特性?xún)?yōu)化代碼4. C54CM位位l可用以下指令或偽指令來(lái)改變模式:可用以下指令或偽指令來(lái)改變模式:BCLR C54CM ;清零清零C54CM(運(yùn)行時(shí))(運(yùn)行時(shí)).C54CM_off ;告知匯編器告知匯編器C54CM0BSET C54CM ;置位置位C54CM(運(yùn)行時(shí))(運(yùn)行時(shí)).C54CM_on ;告知匯編器告知匯編器C54C

34、M1l如果如果CPL0,CPL決定選擇決定選擇DP直接尋址模式直接尋址模式l如果如果CPL1,CPL決定選擇決定選擇SP直接尋址模式直接尋址模式l可用以下指令和偽指令來(lái)改變尋址模式:可用以下指令和偽指令來(lái)改變尋址模式:BCLR CPL ;清零清零CPL(運(yùn)行時(shí))(運(yùn)行時(shí)).CPL_off ;告知匯編器告知匯編器CPL0BSET CPL ;置位置位CPL(運(yùn)行時(shí))(運(yùn)行時(shí)).CPL_on;告知匯編器告知匯編器CPL15. CPL位位l如果如果FRCT1,C55x打開(kāi)小數(shù)模式。打開(kāi)小數(shù)模式。 乘法運(yùn)算的結(jié)果左乘法運(yùn)算的結(jié)果左移一位進(jìn)行小數(shù)點(diǎn)調(diào)整。兩個(gè)帶符號(hào)的移一位進(jìn)行小數(shù)點(diǎn)調(diào)整。兩個(gè)帶符號(hào)的Q15

35、制數(shù)相乘,得制數(shù)相乘,得到一個(gè)到一個(gè)Q31制數(shù)時(shí),就要進(jìn)行小數(shù)點(diǎn)調(diào)整。制數(shù)時(shí),就要進(jìn)行小數(shù)點(diǎn)調(diào)整。l如果如果FRCT0,C55x關(guān)閉小數(shù)模式。乘法運(yùn)算的結(jié)果不關(guān)閉小數(shù)模式。乘法運(yùn)算的結(jié)果不移位。移位。l可用下面的指令清零和置位可用下面的指令清零和置位FRCT:BCLR FRCT ;清零清零FRCTBSET FRCT ;置位置位FRCT6. FRCT位位l如果如果HM0,C55x繼續(xù)繼續(xù)執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。l如果如果HM1,C55x停止停止執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。l可用下面的指令清零和置位可用下面的指令清零和置位HM:BCLR HM ;

36、清零清零HMBSET HM ;置位置位HM7. HM位位當(dāng)當(dāng)DSPDSP得到得到HOLDHOLD信號(hào)時(shí),會(huì)將外部接口總線置于高阻態(tài)。信號(hào)時(shí),會(huì)將外部接口總線置于高阻態(tài)。根據(jù)根據(jù)HMHM的值,的值,DSPDSP也可以停止內(nèi)部程序執(zhí)行。也可以停止內(nèi)部程序執(zhí)行。l如果如果INTM0,C55x使能所有可屏蔽中斷使能所有可屏蔽中斷l(xiāng)如果如果INTM1,C55x禁止所有可屏蔽中斷禁止所有可屏蔽中斷l(xiāng)使用使用INTM位需要注意的要點(diǎn):位需要注意的要點(diǎn):uINTM位能夠全局使能或禁止可屏蔽中斷,但是位能夠全局使能或禁止可屏蔽中斷,但是它對(duì)不可屏蔽中斷無(wú)效。在使用它對(duì)不可屏蔽中斷無(wú)效。在使用INTM位時(shí),要位時(shí)

37、,要使用狀態(tài)位清零和置位指令來(lái)修改使用狀態(tài)位清零和置位指令來(lái)修改INTM位。其位。其它能影響它能影響INTM位的,只有軟件中斷指令和軟件位的,只有軟件中斷指令和軟件置位指令置位指令。8. INTM位位uCPU響應(yīng)中斷請(qǐng)求時(shí),自動(dòng)保存響應(yīng)中斷請(qǐng)求時(shí),自動(dòng)保存INTM位。特別地,位。特別地,CPU把把ST1_55保存到數(shù)據(jù)堆棧時(shí),保存到數(shù)據(jù)堆棧時(shí),INTM位也被保存位也被保存起來(lái)。起來(lái)。u執(zhí)行中斷服務(wù)子程序(執(zhí)行中斷服務(wù)子程序(ISR)之前,)之前,CPU自動(dòng)置位自動(dòng)置位INTM位,禁止所有的可屏蔽中斷。位,禁止所有的可屏蔽中斷。ISR可以通過(guò)清零可以通過(guò)清零INTM位,來(lái)重新開(kāi)放可屏蔽中斷。位,

38、來(lái)重新開(kāi)放可屏蔽中斷。u中斷返回指令,從數(shù)據(jù)堆?;謴?fù)中斷返回指令,從數(shù)據(jù)堆?;謴?fù)INTM位的值。位的值。u在調(diào)試器實(shí)時(shí)仿真模式下,在調(diào)試器實(shí)時(shí)仿真模式下,CPU暫停時(shí),忽略暫停時(shí),忽略INTM位,位,CPU只處理臨界時(shí)間中斷。只處理臨界時(shí)間中斷。 l如果如果M400,D單元的計(jì)算模式選擇單元的計(jì)算模式選擇32位模式:位模式:u第第31位是符號(hào)位位是符號(hào)位u計(jì)算過(guò)程中的進(jìn)位取決于第計(jì)算過(guò)程中的進(jìn)位取決于第31位位u由第由第31位判斷是否溢出位判斷是否溢出u飽和過(guò)程,飽和值是飽和過(guò)程,飽和值是00 7FFF FFFFh(正溢出)或(正溢出)或FF 8000 0000h(負(fù)溢出)(負(fù)溢出)u累加器和

39、累加器和0的比較,用第的比較,用第310位來(lái)進(jìn)行位來(lái)進(jìn)行u可對(duì)整個(gè)可對(duì)整個(gè)32位進(jìn)行移位和循環(huán)操作位進(jìn)行移位和循環(huán)操作9. M40位位u累加器左移或循環(huán)移位時(shí),從第累加器左移或循環(huán)移位時(shí),從第31位移出位移出u累加器右移或循環(huán)移位時(shí),移入的位插入到第累加器右移或循環(huán)移位時(shí),移入的位插入到第31位位上上u對(duì)于累加器帶符號(hào)位的移位對(duì)于累加器帶符號(hào)位的移位如果如果SXMD0,則累加器的保護(hù)位值要設(shè)為,則累加器的保護(hù)位值要設(shè)為0如果如果SXMD1,累加器的保護(hù)位要設(shè)為第,累加器的保護(hù)位要設(shè)為第31位位的值;對(duì)于累加器的任何循環(huán)移位或邏輯移位,的值;對(duì)于累加器的任何循環(huán)移位或邏輯移位,都要清零目的累加器

40、的保護(hù)位都要清零目的累加器的保護(hù)位l如果如果M401,D單元的計(jì)算模式選擇單元的計(jì)算模式選擇40位的帶符號(hào)移位位的帶符號(hào)移位模式:模式:u第第39位是符號(hào)位位是符號(hào)位u計(jì)算過(guò)程中的進(jìn)位取決于第計(jì)算過(guò)程中的進(jìn)位取決于第39位位u由第由第39位判斷是否溢出位判斷是否溢出u飽和過(guò)程,飽和值是飽和過(guò)程,飽和值是7F FFFF FFFFh(正溢出)或(正溢出)或80 0000 0000h(負(fù)溢出)(負(fù)溢出)u累加器和累加器和0的比較,用第的比較,用第390位來(lái)進(jìn)行位來(lái)進(jìn)行u可對(duì)整個(gè)可對(duì)整個(gè)40位進(jìn)行移位和循環(huán)操作位進(jìn)行移位和循環(huán)操作u累加器左移或循環(huán)移位時(shí),從第累加器左移或循環(huán)移位時(shí),從第39位移出位移

41、出u累加器右移或循環(huán)移位時(shí),移入的位插入到第累加器右移或循環(huán)移位時(shí),移入的位插入到第39位上位上l如果如果SATD0,關(guān)閉,關(guān)閉D單元的飽和模式,不執(zhí)行飽和模式單元的飽和模式,不執(zhí)行飽和模式l如果如果SATD1,打開(kāi),打開(kāi)D單元的飽和模式單元的飽和模式u如果如果D單元內(nèi)的運(yùn)算產(chǎn)生溢出,則結(jié)果值飽和單元內(nèi)的運(yùn)算產(chǎn)生溢出,則結(jié)果值飽和u飽和值取決于飽和值取決于M40位位M400,CPU的飽和值為的飽和值為00 7FFF FFFFh(正溢出)(正溢出)或或FF 8000 0000h(負(fù)溢出)(負(fù)溢出)M401,CPU的飽和值為的飽和值為7F FFFF FFFFh(正溢出)(正溢出)或或80 0000

42、 0000h(負(fù)溢出)(負(fù)溢出)10. SATD位位l如果如果SXMD0,關(guān)閉,關(guān)閉D單元的符號(hào)擴(kuò)展模式單元的符號(hào)擴(kuò)展模式u對(duì)于對(duì)于40位的運(yùn)算,位的運(yùn)算,16位或更小的操作數(shù)都要補(bǔ)位或更小的操作數(shù)都要補(bǔ)0,擴(kuò)展,擴(kuò)展至至40位位u對(duì)于條件減法指令,任何對(duì)于條件減法指令,任何16位的除數(shù)都可以得到理想的位的除數(shù)都可以得到理想的結(jié)果結(jié)果u當(dāng)當(dāng)D單元的單元的ALU被局部配置為雙被局部配置為雙16位模式時(shí),位模式時(shí),D單元單元ALU的高的高16位補(bǔ)零擴(kuò)展至位補(bǔ)零擴(kuò)展至24位。累加器值右移時(shí),高段和低位。累加器值右移時(shí),高段和低段的段的16位補(bǔ)零擴(kuò)展位補(bǔ)零擴(kuò)展u累加器帶符號(hào)移位時(shí),如果是一個(gè)累加器帶符

43、號(hào)移位時(shí),如果是一個(gè)32位操作(位操作(M40=0),),累加器的保護(hù)位(第累加器的保護(hù)位(第3932位)填零位)填零u累加器帶符號(hào)右移時(shí),移位值補(bǔ)零擴(kuò)展累加器帶符號(hào)右移時(shí),移位值補(bǔ)零擴(kuò)展11. SXMD位位l如果如果SXMD1時(shí),打開(kāi)符號(hào)擴(kuò)展模式:時(shí),打開(kāi)符號(hào)擴(kuò)展模式:u對(duì)于對(duì)于40位的運(yùn)算,位的運(yùn)算,16位或更小的操作數(shù),都要符號(hào)擴(kuò)展位或更小的操作數(shù),都要符號(hào)擴(kuò)展至至40位位u對(duì)于條件減法指令,對(duì)于條件減法指令,16位的除數(shù)必須是正數(shù),其最高位位的除數(shù)必須是正數(shù),其最高位(MSB)必須是)必須是0u當(dāng)當(dāng)D單元的單元的ALU局部配置為雙局部配置為雙16位模式時(shí),位模式時(shí),D單元單元ALU的高

44、的高16位值帶符號(hào)擴(kuò)展至位值帶符號(hào)擴(kuò)展至24位。累加器右移時(shí),高段和位。累加器右移時(shí),高段和低段的低段的16位都要帶符號(hào)擴(kuò)展位都要帶符號(hào)擴(kuò)展u累加器帶符號(hào)移位時(shí),其值帶符號(hào)擴(kuò)展累加器帶符號(hào)移位時(shí),其值帶符號(hào)擴(kuò)展如果是一個(gè)如果是一個(gè)32位操作(位操作(M40=0),則將第),則將第31位的值,位的值,復(fù)制到累加器的保護(hù)位(第復(fù)制到累加器的保護(hù)位(第3932位)位)u累加器帶符號(hào)右移時(shí),除非有限定符累加器帶符號(hào)右移時(shí),除非有限定符uns()表明它表明它是無(wú)符號(hào)的,否則移位值都要被帶符號(hào)擴(kuò)展。對(duì)于是無(wú)符號(hào)的,否則移位值都要被帶符號(hào)擴(kuò)展。對(duì)于無(wú)符號(hào)運(yùn)算(布爾邏輯運(yùn)算、循環(huán)移位和邏輯移位無(wú)符號(hào)運(yùn)算(布爾

45、邏輯運(yùn)算、循環(huán)移位和邏輯移位運(yùn)算),不管運(yùn)算),不管SXMD的值是什么,輸入的操作數(shù)都的值是什么,輸入的操作數(shù)都要被補(bǔ)零擴(kuò)展至要被補(bǔ)零擴(kuò)展至40位。對(duì)于乘加單元位。對(duì)于乘加單元MAC里的運(yùn)里的運(yùn)算,不管算,不管SXMD值是多少,輸入的操作數(shù)都要帶符值是多少,輸入的操作數(shù)都要帶符號(hào)擴(kuò)展至號(hào)擴(kuò)展至17位。如果指令里的操作數(shù)是在限定符位。如果指令里的操作數(shù)是在限定符uns()里,則不管里,則不管SXMD值是多少,都視為無(wú)符號(hào)的值是多少,都視為無(wú)符號(hào)的用下面的指令清零和置位SXMD: BCLR SXMD ;清零SXMD BSET SXMD ;置位SXMDlXF是通用的輸出位,能用軟件處理且可輸出至是通

46、用的輸出位,能用軟件處理且可輸出至DSP引腳引腳l用下面的指令清零和置位用下面的指令清零和置位XF:BCLR XF ;清零清零XFBSET XF ;置位置位XF12. XF位位2.4.11 狀態(tài)寄存器狀態(tài)寄存器ST2_55lARnLC (n0、1、2、3、4、5、6、7)位決定)位決定ARn用作線性尋址還是循環(huán)尋址。用作線性尋址還是循環(huán)尋址。ARnLC0:線性尋址:線性尋址ARnLC1:循環(huán)尋址:循環(huán)尋址1. AR0LCAR7LC位域位域l 用狀態(tài)位清零用狀態(tài)位清零/置位置位 指令來(lái)清零指令來(lái)清零/置位置位ARnLC。例例: BCLR AR3LC ;清零清零AR3LC BSET AR3LC ;

47、置位置位AR3LCl如果如果ARMS0,輔助寄存器(,輔助寄存器(AR)間接尋址的)間接尋址的CPU模模式采用式采用DSP模式操作數(shù),該操作數(shù)能有效執(zhí)行模式操作數(shù),該操作數(shù)能有效執(zhí)行DSP專(zhuān)用專(zhuān)用程序。這些操作數(shù)里,有的在指針加程序。這些操作數(shù)里,有的在指針加/減時(shí)使用反向操作減時(shí)使用反向操作數(shù)。短偏移操作數(shù)不可用。數(shù)。短偏移操作數(shù)不可用。l如果如果ARMS1,輔助寄存器(,輔助寄存器(AR)間接尋址的)間接尋址的CPU模模式采用控制模式操作數(shù),該操作數(shù)能為控制系統(tǒng)的應(yīng)用式采用控制模式操作數(shù),該操作數(shù)能為控制系統(tǒng)的應(yīng)用優(yōu)化代碼的大小。短偏移操作數(shù)優(yōu)化代碼的大小。短偏移操作數(shù)*ARn(short

48、(#k3)可可用。其它偏移需要在指令里進(jìn)行用。其它偏移需要在指令里進(jìn)行2字節(jié)擴(kuò)展,而這些有擴(kuò)字節(jié)擴(kuò)展,而這些有擴(kuò)展的指令不能和其他指令并行執(zhí)行。展的指令不能和其他指令并行執(zhí)行。2. ARMS位位l用下面的指令和偽指令來(lái)改變模式:用下面的指令和偽指令來(lái)改變模式:BCLR ARMS ;清零清零ARMS(運(yùn)行時(shí))(運(yùn)行時(shí)).ARMS_off ;告知編譯器告知編譯器ARMS0BSET ARMS ;置位置位ARMS(運(yùn)行時(shí))(運(yùn)行時(shí)).ARMS_on ;編譯器編譯器ARMS1lCDPLC位決定系數(shù)數(shù)據(jù)指針(位決定系數(shù)數(shù)據(jù)指針(CDP)是用線性尋址)是用線性尋址(CDPLC0),還是循環(huán)尋址(),還是循環(huán)

49、尋址(CDPLC位位1)l用下面的指令清零和置位用下面的指令清零和置位CDPLC:BCLR CDPLC ;清零清零CDPLCBSET CDPLC ;置位置位CDPLC3. CDPLC位位lDBGM位用于調(diào)試程序里有嚴(yán)格時(shí)間要求的部分位用于調(diào)試程序里有嚴(yán)格時(shí)間要求的部分u 如果如果DBGM0,使能該位,使能該位u 如果如果DBGM1,禁止該位。仿真器不能訪問(wèn)存,禁止該位。仿真器不能訪問(wèn)存儲(chǔ)器和寄存器。軟件斷點(diǎn)仍然可以使儲(chǔ)器和寄存器。軟件斷點(diǎn)仍然可以使CPU暫停,暫停,但不會(huì)影響硬件斷點(diǎn)或暫停請(qǐng)求但不會(huì)影響硬件斷點(diǎn)或暫停請(qǐng)求4. DBGM位位l 為了保護(hù)流水,只能由狀態(tài)位清零為了保護(hù)流水,只能由狀

50、態(tài)位清零/置位指令修改置位指令修改DBGM,其它指令都不會(huì)影響,其它指令都不會(huì)影響DBGM位:位:BCLR DBGM ;清零清零DBGMBSET DBGM ;置位置位DBGMl當(dāng)當(dāng)CPU響應(yīng)一個(gè)中斷請(qǐng)求時(shí),會(huì)自動(dòng)保護(hù)響應(yīng)一個(gè)中斷請(qǐng)求時(shí),會(huì)自動(dòng)保護(hù)DBGM位的位的狀態(tài)。確切地說(shuō),當(dāng)狀態(tài)。確切地說(shuō),當(dāng)CPU把把ST2_55保存到數(shù)據(jù)堆棧時(shí),保存到數(shù)據(jù)堆棧時(shí),DGBM位就被保存起來(lái)位就被保存起來(lái)l執(zhí)行一個(gè)中斷服務(wù)子程序執(zhí)行一個(gè)中斷服務(wù)子程序(ISR)前,前,CPU自動(dòng)置位自動(dòng)置位DBGM,禁止調(diào)試。,禁止調(diào)試。ISR可以通過(guò)清零可以通過(guò)清零DBGM位,重位,重新使能調(diào)試新使能調(diào)試lEALLOW使能(

51、使能(EALLOW1)或禁止()或禁止(EALLOW0)對(duì))對(duì)非非CPU仿真寄存器的寫(xiě)訪問(wèn)仿真寄存器的寫(xiě)訪問(wèn)l當(dāng)當(dāng)CPU響應(yīng)一個(gè)中斷請(qǐng)求時(shí),自動(dòng)保存響應(yīng)一個(gè)中斷請(qǐng)求時(shí),自動(dòng)保存EALLOW位的狀態(tài)。位的狀態(tài)。確切地說(shuō),當(dāng)確切地說(shuō),當(dāng)CPU把把ST2_55保存到數(shù)據(jù)堆棧時(shí),也就是保保存到數(shù)據(jù)堆棧時(shí),也就是保存了存了EALLOW位位l執(zhí)行一個(gè)中斷服務(wù)子程序(執(zhí)行一個(gè)中斷服務(wù)子程序(ISR)前,)前,CPU自動(dòng)清自動(dòng)清EALLOW位,禁止訪問(wèn)仿真寄存器。位,禁止訪問(wèn)仿真寄存器。ISR通過(guò)置位通過(guò)置位EALLOW位,可以位,可以重新開(kāi)放對(duì)仿真寄存器的訪問(wèn)重新開(kāi)放對(duì)仿真寄存器的訪問(wèn)l中斷返回指令,從數(shù)據(jù)

52、堆?;謴?fù)中斷返回指令,從數(shù)據(jù)堆棧恢復(fù)EALLOW位位5.EALLOW位位 在在D單元執(zhí)行的一些指令里,單元執(zhí)行的一些指令里,CPU將將rnd()括號(hào)里的操作數(shù)括號(hào)里的操作數(shù)取整。取整操作的類(lèi)型取決于取整。取整操作的類(lèi)型取決于RDM的值的值l如果如果RDM=0,CPU給給40位的操作數(shù)加上位的操作數(shù)加上8000h(即(即215),然后),然后CPU清零第清零第150位,產(chǎn)生一個(gè)位,產(chǎn)生一個(gè)24位或位或16位位的取整結(jié)果的取整結(jié)果u若結(jié)果是若結(jié)果是24位的整數(shù),只有第位的整數(shù),只有第3916位是有意義的位是有意義的u若結(jié)果是若結(jié)果是16位的整數(shù),只有第位的整數(shù),只有第3116位是有意義的位是有意義

53、的6. RDM位位l如果如果RDM=1,取整至最接近的整數(shù)。取整結(jié)果取決于取整至最接近的整數(shù)。取整結(jié)果取決于40位操作數(shù)的第位操作數(shù)的第150位:位:If(0=(位(位15-0)8000h) CPU 清零第清零第150位位 If(8000h(位(位15-0)10000h) CPU給該操作數(shù)加上給該操作數(shù)加上8000h,再清零第,再清零第150位位 If ((位(位15-0)= =8000h) If (位(位31-16)是奇數(shù))是奇數(shù) CPU給該操作數(shù)加上給該操作數(shù)加上8000h,再清零第,再清零第150位位2.4.12 狀態(tài)寄存器狀態(tài)寄存器ST3_55 說(shuō)明:說(shuō)明: ST3_55的第的第118

54、位位總是寫(xiě)作總是寫(xiě)作1100b(Ch)l檢查是否已完成程序檢查是否已完成程序cache清零清零uCACLR0:已經(jīng)完成。清零過(guò)程完成時(shí):已經(jīng)完成。清零過(guò)程完成時(shí), cache硬件硬件清零清零CACLR位位uCACLR1:未完成。所有的:未完成。所有的cache塊無(wú)效塊無(wú)效l清零清零cache所需的時(shí)間周期數(shù)取決于存儲(chǔ)器的結(jié)構(gòu)所需的時(shí)間周期數(shù)取決于存儲(chǔ)器的結(jié)構(gòu)l當(dāng)當(dāng)cache清零后,指令緩沖器單元里的預(yù)取指令隊(duì)列的內(nèi)清零后,指令緩沖器單元里的預(yù)取指令隊(duì)列的內(nèi)容會(huì)自動(dòng)清零容會(huì)自動(dòng)清零1. CACLR位位l使能或禁止程序使能或禁止程序cacheuCAEN0:禁止。:禁止。cache控制器不接收任何程

55、序要求控制器不接收任何程序要求,所有的程序要求都由片內(nèi)存儲(chǔ)器或片外存儲(chǔ)器(根據(jù)解所有的程序要求都由片內(nèi)存儲(chǔ)器或片外存儲(chǔ)器(根據(jù)解碼的地址而定)來(lái)處理。碼的地址而定)來(lái)處理。uCAEN1:使能。依據(jù)解碼的地址,可以從:使能。依據(jù)解碼的地址,可以從cache、片、片內(nèi)存儲(chǔ)器或片外存儲(chǔ)器提取程序代碼。內(nèi)存儲(chǔ)器或片外存儲(chǔ)器提取程序代碼。l當(dāng)清零當(dāng)清零CAEN位禁止位禁止cache時(shí),時(shí),I單元的指令緩沖隊(duì)列的內(nèi)單元的指令緩沖隊(duì)列的內(nèi)容會(huì)自動(dòng)清零容會(huì)自動(dòng)清零2. CAEN位位lCAFRZ能鎖定程序能鎖定程序cacheuCAFRZ0 :cache工作在默認(rèn)操作模式工作在默認(rèn)操作模式uCAFRZ1 :cache被凍結(jié)(其內(nèi)容被鎖定)。沒(méi)有訪被凍結(jié)(其內(nèi)容被鎖定)。沒(méi)有訪問(wèn)該問(wèn)該cache時(shí),它的內(nèi)容不會(huì)更改,但被訪問(wèn)時(shí)仍然可時(shí),它的內(nèi)容不會(huì)更改,但被訪問(wèn)時(shí)仍然可用。用。cache內(nèi)容一直保持不變,直到內(nèi)容一直保持不變,直到C

溫馨提示

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

評(píng)論

0/150

提交評(píng)論