第3_2講-第2章TMS320C55x的硬件結構-狀態(tài)寄存器249-12_第1頁
第3_2講-第2章TMS320C55x的硬件結構-狀態(tài)寄存器249-12_第2頁
第3_2講-第2章TMS320C55x的硬件結構-狀態(tài)寄存器249-12_第3頁
第3_2講-第2章TMS320C55x的硬件結構-狀態(tài)寄存器249-12_第4頁
第3_2講-第2章TMS320C55x的硬件結構-狀態(tài)寄存器249-12_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 第第2章章 TMS320C55x 的硬件結構的硬件結構 (第第3_2講講) 狀態(tài)寄存器狀態(tài)寄存器 2.4.9 ST0_55 2.4.10 ST1_55 2.4.11 ST2_55 2.4.12 ST3_55 Status Registers 2 狀態(tài)寄存器概述狀態(tài)寄存器概述 4個個16位的狀態(tài)寄存器(位的狀態(tài)寄存器(ST0_55ST3_55) 控制位控制位 影響影響C55x DSP的工作的工作 狀態(tài)位狀態(tài)位 反映反映C55x DSP當前工作狀態(tài)或運行結果當前工作狀態(tài)或運行結果 ST0_55、ST1_55和和ST3_55 有兩個訪問地址有兩個訪問地址 非保護地址,所有位都可以訪問非保護地址,

2、所有位都可以訪問 保護地址,圖保護地址,圖2-27中的加黑部分不能修改中的加黑部分不能修改 保護地址是為了支持把保護地址是為了支持把C54x的代碼寫入的代碼寫入ST0、 ST1和和PMST 3 2.4.9 ST0_55 4 2.4.9 ST0_55 1. 累加器溢出標志累加器溢出標志 ACOV0,ACOV1,ACOV2,ACOV3 2. 進位位進位位 CARRY 3. DP位域位域 4. 測試測試/控制位控制位 TC1,TC2 5 被置被置1: AC0、AC1、AC2或或AC3有有溢出溢出時時 相應的相應的ACOV0、ACOV1、ACOV2或或ACOV3 被清被清0: (1)復位復位;(2)執(zhí)

3、行條件跳轉、調用、返回,或執(zhí)行執(zhí)行條件跳轉、調用、返回,或執(zhí)行 一條測試一條測試ACOVx狀態(tài)的指令狀態(tài)的指令;(3)被指令清被指令清0 1. 累加器溢出標志累加器溢出標志 overflow flag 當當M40=0時,溢出檢測在第時,溢出檢測在第31位,與位,與C54x兼容。兼容。 當當M40=1時,溢出檢測在第時,溢出檢測在第39位。位。 6 2. 進位位進位位(1) 進位進位/借位的檢測取決于借位的檢測取決于M40位位 M40=0時,由第時,由第31位檢測進位位檢測進位/借位借位 M40=1時,由第時,由第39位檢測進位位檢測進位/借位借位 carry bit 7 2. 進位位進位位(2

4、) D單元單元ALU運算改變運算改變CARRY 做做加法加法時時 產生進位,置位;不產生進位,清產生進位,置位;不產生進位,清0 例外:例外:有進位有進位時時CARRY置位,置位,無進位時無進位時CARRY不變不變 ADD Smem#16,ACx,ACy 做做減法減法時時 產生借位,清產生借位,清0;不產生借位,置位。;不產生借位,置位。 例外:例外:有借位有借位時時CARRY清清0,無借位時無借位時CARRY不變不變 SUBSmem#16,ACx,ACy 8 修改修改CARRY位的其他方法位的其他方法 邏輯移位指令邏輯移位指令 帶符號移位指令和循環(huán)移位指令帶符號移位指令和循環(huán)移位指令 目的寄

5、存器是目的寄存器是累加器累加器時,用以下指令修改時,用以下指令修改CARRY位,位, 以指示計算結果以指示計算結果 MIN src,dstMAX src,dst ABSsrc,dstNEGsrc,dst 兩條指令對兩條指令對CARRY清零和置位清零和置位 BCLR CARRY ; 清零清零 BSET CARRY ; 置位置位 9 3. DP位域位域 提供提供與與C54x兼容的兼容的數據頁指針數據頁指針 C55x有一個獨立的數據頁指針有一個獨立的數據頁指針DP DP(15-7)的任何變化都會反映在的任何變化都會反映在ST0_55的的DP位域上位域上 基于基于DP的直接尋址方式,的直接尋址方式,C

6、55x使用完整的數據頁指針使用完整的數據頁指針DP, 因此不需要使用因此不需要使用ST0_55的的DP位域位域 裝入裝入ST0_55,但不改,但不改DP位域的值,可用位域的值,可用OR或或AND指令指令 10 4. 測試測試/控制位控制位 保存一些特殊令的測試結果保存一些特殊令的測試結果 所有能影響一個測試所有能影響一個測試/控制位的指令,都可以選擇影響控制位的指令,都可以選擇影響 TC1還是還是TC2 TCx或關于或關于TCx的布爾表達式,都可以在任何條件指令的布爾表達式,都可以在任何條件指令 里用作觸發(fā)器里用作觸發(fā)器 TCx的置位和清零的置位和清零 BCLR TC1 ;TC1清零清零BSE

7、T TC2 ; TC2置位置位 test/control bit 11 2.4.10 ST1_55 12 2.4.10 ST1_55 ASM位域位域 BRAF位位 C16位位 C54CM位位 CPL位位 FRCT位位 HM位位 INTM位位 M40位位 SATD位位 SXMD位位 XF位位 13 1. ASM位域位域 C54CM=0,C55x忽略忽略ASM C55x移位指令移位指令在暫存寄存(在暫存寄存(T0T3)里指定累加器的)里指定累加器的 移位值,或者直接在指令里用常數指定移位值。移位值,或者直接在指令里用常數指定移位值。 C54CM=1,C55x以以兼容方式運行兼容方式運行C54x代碼

8、代碼 ASM用于給出用于給出某些某些C54x移位指令移位指令的移位值,移位范圍的移位值,移位范圍 -1615。 14 2. BRAF位位 C54CM=0 C55x不使用不使用BRAF C54CM=1 C55x以兼容方式運行以兼容方式運行C54x代碼,代碼,BRAF用于指定或控用于指定或控 制一個塊循環(huán)操作的狀態(tài)制一個塊循環(huán)操作的狀態(tài) 15 3. C16位位 C54CM=0 C55x忽略忽略C16,指令本身決定是用單,指令本身決定是用單32位操作還是雙位操作還是雙 16位操作位操作 C54CM=1 C55x以兼容方式運行以兼容方式運行C54x代碼,代碼,C16會影響某些指令會影響某些指令 的執(zhí)行

9、的執(zhí)行 16 4. C54CM位位 C54CM=0 C55x CPU不支持不支持C54x代碼代碼 C54CM=1 C55x的的CPU支持支持C54x編寫的代碼編寫的代碼 17 可用以下指令或偽指令來改變模式:可用以下指令或偽指令來改變模式: BCLR C54CM ;清零清零C54CM(運行時)(運行時) .C54CM_off ;告知匯編器告知匯編器C54CM0 BSET C54CM;置位置位C54CM(運行時)(運行時) .C54CM_on ;告知匯編器告知匯編器C54CM1 18 5. CPL位位 決定對決定對數據空間數據空間訪問的訪問的直接尋址直接尋址模式模式 CPL0,DP直接尋址模式直

10、接尋址模式 與數據頁寄存器與數據頁寄存器 DP 相關。相關。 CPL1,SP直接尋址模式直接尋址模式 與數據堆棧指針與數據堆棧指針 SP 相關。相關。DSP稱為運行在編譯模式。稱為運行在編譯模式。 19 注意注意 對對I/O空間的直接尋址,總是與外設數據頁寄存器空間的直接尋址,總是與外設數據頁寄存器 (PDP)相關。)相關。 可用以下指令和偽指令來改變尋址模式:可用以下指令和偽指令來改變尋址模式: BCLR CPL ;清零清零CPL(運行時)(運行時) .CPL_off ;告知匯編器告知匯編器CPL0 BSET CPL ;置位置位CPL(運行時)(運行時) .CPL_on;告知匯編器告知匯編器

11、CPL1 20 6. FRCT位位 如果如果FRCT0,C55x打開小數模式。打開小數模式。 乘法運算的結果左移一位進行小數點調整。乘法運算的結果左移一位進行小數點調整。 如果如果FRCT1,C55x關閉小數模式。關閉小數模式。 乘法運算的結果不移位。乘法運算的結果不移位。 21 7. HM位位 根據根據HM的值,的值,DSP可以停止內部程序執(zhí)行??梢酝V箖炔砍绦驁?zhí)行。 HM0 C55x繼續(xù)執(zhí)行內部程序存儲器的指令。繼續(xù)執(zhí)行內部程序存儲器的指令。 HM1 C55x停止執(zhí)行內部程序存儲器的指令。停止執(zhí)行內部程序存儲器的指令。 22 8. INTM位位 INTM0,C55x使能所有可屏蔽中斷使能所

12、有可屏蔽中斷 INTM1,C55x禁止所有可屏蔽中斷禁止所有可屏蔽中斷 23 INTM位使用要點位使用要點 INTM位能夠位能夠全局全局使能或禁止可屏蔽中斷,但是它使能或禁止可屏蔽中斷,但是它對不對不 可屏蔽中斷無效可屏蔽中斷無效。 要使用狀態(tài)位清零和置位指令來修改要使用狀態(tài)位清零和置位指令來修改INTM位。其它能位。其它能 影響影響INTM位的,只有軟件中斷指令和軟件置位指令。位的,只有軟件中斷指令和軟件置位指令。 CPU響應中斷請求時,自動保存響應中斷請求時,自動保存INTM位。特別地,位。特別地, CPU把把ST1_55保存到數據堆棧時,保存到數據堆棧時,INTM位也被保存位也被保存 起

13、來。起來。 24 執(zhí)行中斷服務子程序(執(zhí)行中斷服務子程序(ISR)之前,)之前,CPU自動置位自動置位 INTM位,禁止所有的可屏蔽中斷。位,禁止所有的可屏蔽中斷。ISR可以通過清可以通過清 零零INTM位,來重新開放可屏蔽中斷。位,來重新開放可屏蔽中斷。 中斷返回指令,中斷返回指令,從數據堆?;謴蛷臄祿褩;謴虸NTM位的值。位的值。 在調試器實時仿真模式下,在調試器實時仿真模式下,CPU暫停時,忽略暫停時,忽略INTM 位,位,CPU只處理臨界時間中斷。只處理臨界時間中斷。 25 9. M40位位 D單元的計算模式選擇位單元的計算模式選擇位 M400,D單元的計算模式選擇單元的計算模式選擇

14、32位模式位模式 M401,D單元的計算模式選擇單元的計算模式選擇40位的帶符號移位模式位的帶符號移位模式 26 M400,D單元的計算模式選擇單元的計算模式選擇32位模式位模式 第第31位是符號位位是符號位 計算過程中的進位取決于第計算過程中的進位取決于第31位位 由第由第31位判斷是否溢出位判斷是否溢出 飽和過程,飽和值是飽和過程,飽和值是00 7FFF FFFFh(正溢出)或(正溢出)或FF 8000 0000h(負溢出)(負溢出) 累加器和累加器和0的比較,用第的比較,用第310位來進行位來進行 可對整個可對整個32位進行移位和循環(huán)操作位進行移位和循環(huán)操作 累加器左移或循環(huán)移位時,從第

15、累加器左移或循環(huán)移位時,從第31位移出位移出 累加器右移或循環(huán)移位時,移入的位插入到第累加器右移或循環(huán)移位時,移入的位插入到第31位上位上 對于累加器帶符號位的移位對于累加器帶符號位的移位 如果如果SXMD0,則累加器的保護位值要設為,則累加器的保護位值要設為0 如果如果SXMD1,累加器的保護位要設為第,累加器的保護位要設為第31位的值位的值 對于累加器的任何循環(huán)移位或邏輯移位,都要清零對于累加器的任何循環(huán)移位或邏輯移位,都要清零 目的累加器的保護位目的累加器的保護位 27 M401,D單元的計算模式選擇單元的計算模式選擇40位的帶符號移位模式位的帶符號移位模式 第第39位是符號位位是符號位

16、 計算過程中的進位取決于第計算過程中的進位取決于第39位位 由第由第39位判斷是否溢出位判斷是否溢出 飽和過程,飽和值是飽和過程,飽和值是7F FFFF FFFFh(正溢出)或(正溢出)或80 0000 0000h(負溢出)(負溢出) 累加器和累加器和0的比較,用第的比較,用第390位來進行位來進行 可對整個可對整個40位進行移位和循環(huán)操作位進行移位和循環(huán)操作 累加器左移或循環(huán)移位時,從第累加器左移或循環(huán)移位時,從第39位移出位移出 累加器右移或循環(huán)移位時,移入的位插入到第累加器右移或循環(huán)移位時,移入的位插入到第39位上位上 28 10. SATD位位 SATD0,關閉,關閉D單元的飽和模式,

17、不執(zhí)行飽和模式單元的飽和模式,不執(zhí)行飽和模式 SATD1,打開,打開D單元的飽和模式單元的飽和模式 如果如果D單元內的運算產生溢出,則結果值飽和,飽和值單元內的運算產生溢出,則結果值飽和,飽和值 取決于取決于M40位位 Saturation:飽和:飽和 29 11. SXMD位位 SXMD0,關閉,關閉D單元的單元的符號符號擴展模式擴展模式 SXMD1,打開符號擴展模式,打開符號擴展模式 30 12. XF位位 XF是通用的輸出位,能用是通用的輸出位,能用軟件處理軟件處理且可輸出至且可輸出至DSP引腳引腳 指令清零和置位指令清零和置位XF BCLR XF;清零清零XF BSET XF ;置位置

18、位XF 31 2.4.11 ST2_55 32 1. AR0LCAR7LC位域位域 2. ARMS位位 3. CDPLC位位 4. DBGM位位 5. EALLOW位位 6. RDM位位 33 1. AR0LCAR7LC位域位域 決定決定ARn用作線性尋址還是循環(huán)尋址用作線性尋址還是循環(huán)尋址 ARnLC0,線性尋址,線性尋址 ARnLC1,循環(huán)尋址,循環(huán)尋址 34 2. ARMS位位 決定輔助寄存器(決定輔助寄存器(AR)間接尋址的)間接尋址的CPU模式模式 ARMS0,采用,采用DSP模式操作數模式操作數 有效執(zhí)行有效執(zhí)行DSP專用程序專用程序 ARMS1,采用控制模式操作數,采用控制模式操

19、作數 為控制系統(tǒng)的應用優(yōu)化代碼的大小為控制系統(tǒng)的應用優(yōu)化代碼的大小 35 用下面的指令和偽指令來改變模式用下面的指令和偽指令來改變模式 BCLR ARMS ;清零清零ARMS(運行時)(運行時) .ARMS_off ;告知編譯器告知編譯器ARMS0 BSET ARMS ;置位置位ARMS(運行時)(運行時) .ARMS_on ;編譯器編譯器ARMS1 36 3. CDPLC位位 決定系數數據指針(決定系數數據指針(CDP)是用線性尋址()是用線性尋址(CDPLC0),), 還是循環(huán)尋址(還是循環(huán)尋址(CDPLC位位1) 37 4. DBGM位位 用于調試程序里有嚴格時間要求的部分用于調試程序里

20、有嚴格時間要求的部分 DBGM0,調試事件使能,調試事件使能 DBGM1,調試事件禁止,調試事件禁止 仿真器不能訪問存儲器和寄存器。軟件斷點仍然可以仿真器不能訪問存儲器和寄存器。軟件斷點仍然可以 使使CPU暫停,但不會影響硬件斷點或暫停請求暫停,但不會影響硬件斷點或暫停請求 38 5. EALLOW位位 EALLOW使能(使能(EALLOW0)或禁止()或禁止(EALLOW1) 對非對非CPU仿真寄存器的寫訪問仿真寄存器的寫訪問 39 6. RDM位位 確定取整模式確定取整模式 在在D單元執(zhí)行的一些指令里,單元執(zhí)行的一些指令里,CPU將將rnd()括號里的操括號里的操 作數取整。取整操作的類型

21、取決于作數取整。取整操作的類型取決于RDM的值。的值。 40 2.4.12 ST3_55 41 1. CACLR位位 2. CAEN位位 3. CAFRZ位位 4. CBERR位位 5. CLKOFF位位 6. HINT位位 7. MPNMC位位 8. SATA位位 9. SMUL位位 10. SST位位 42 1. CACLR位位 檢查是否已完成程序檢查是否已完成程序cache清零清零 CACLR0:已經完成。清零過程完成時:已經完成。清零過程完成時, cache硬件硬件 清零清零CACLR位位 CACLR1:未完成。所有的:未完成。所有的cache塊無效。塊無效。 43 2. CAEN位位 使能或禁止程序使能或禁止程序cache CAEN0,禁止,禁止 CAEN1,使能,使能 44 3. CAFRZ位位 CAFRZ能鎖定程序能鎖定程序cache CAFRZ0 ,cache工作在默認操作模式工作在默認操作模式 CAFRZ1 ,cache被凍結(其內容被鎖定)被凍結(其內容被鎖定) 45 4.

溫馨提示

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

評論

0/150

提交評論