第二章 DSP入門教程TMS320LF240x教程之內部資源介紹_第1頁
第二章 DSP入門教程TMS320LF240x教程之內部資源介紹_第2頁
第二章 DSP入門教程TMS320LF240x教程之內部資源介紹_第3頁
第二章 DSP入門教程TMS320LF240x教程之內部資源介紹_第4頁
第二章 DSP入門教程TMS320LF240x教程之內部資源介紹_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第第2章:章: TMS320LF240 x DSP內部資源介紹內部資源介紹2.1 TMS320LF240 x DSP的的CPU內部功能模塊內部功能模塊介紹介紹2.2 存儲器和存儲器和I/O空間空間2.3 系統配置系統配置2.4 程序控制程序控制 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹中央處理單元中央處理單元(CPU)輸入定標器輸入定標器乘法單元乘法單元中央算術邏輯單元中央算術邏輯單元 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹1、輸入定標移位器、輸入定標移位器是一個是一個16位到位到32位的滾動式位的滾動式左向移位器;左向移位器;能將輸入的能

2、將輸入的16位數據的位數據的015位在本周期內向左移位以位在本周期內向左移位以得到得到32位的輸出;位的輸出;本操作不需要額外的周期。本操作不需要額外的周期。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹移位器的輸入來源移位器的輸入來源數據讀總線數據讀總線(DRDB),該輸入值來自指令該輸入值來自指令操作數據所引用的操作數據所引用的數據存儲單元;數據存儲單元;程序讀總線程序讀總線(PRDB),該輸入是指令操作該輸入是指令操作數給出的常數。數給出的常數。移位量的來源移位量的來源嵌在指令字中的常數。嵌在指令字中的常數。把移位量放在指令字中,把移位量放在指令字中,該程序代碼使用

3、特定的該程序代碼使用特定的數據比例;數據比例;臨時寄存器臨時寄存器TREG的低的低4位。根據位。根據TREG的值移的值移位,數據的定標因子是位,數據的定標因子是動態確定的,可適應不動態確定的,可適應不同的系統要求同的系統要求。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹輸入移位器的輸出值輸入移位器的輸出值最低有效位最低有效位LSBs段填段填0;未使用的最高有效位未使用的最高有效位MSBs填填0或者根據狀態寄存器或者根據狀態寄存器ST1的的SXM位的值來確定是否需要進行符號擴展位的值來確定是否需要進行符號擴展 2.1 TMS320LF240 x DSP的CPU內部功能模塊

4、介紹2、乘法器、乘法器1616位的硬件乘法位的硬件乘法器,在單個周期內產器,在單個周期內產生一個生一個32位乘積結果位乘積結果的有符號或無符號數;的有符號或無符號數;除了除了MPYU指令,所指令,所有的乘法指令都執行有的乘法指令都執行有符號的乘法操作。有符號的乘法操作。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹乘法器的輸入乘法器的輸入1 6 位 臨 時 寄 存 器位 臨 時 寄 存 器(TREG),在乘法之,在乘法之前把數據讀總線的前把數據讀總線的值加載到值加載到TREG;數據讀總線的數據數據讀總線的數據存儲器值和程序讀存儲器值和程序讀總線的程序存儲器總線的程序存儲器

5、值。值。乘法器的輸出乘法器的輸出兩個輸入值相乘后的兩個輸入值相乘后的32位結果保存在乘積寄存位結果保存在乘積寄存器器(PREG)中;中;PREG的輸出連接到的輸出連接到32位的乘積定標移位器,位的乘積定標移位器,通過移位器將乘積結果通過移位器將乘積結果送到送到CALU或數據存儲或數據存儲器。器。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹乘法定標移位器乘法定標移位器(PSCALE)輸入輸入:該移位器的:該移位器的32位輸入連到位輸入連到PREG的輸出。的輸出。輸出輸出:完成移位后,全部:完成移位后,全部32位送到位送到CALU,或將結果的,或將結果的16位存到數位存到數

6、據存儲器。據存儲器。移位模式移位模式:該移位器可用:該移位器可用4種移位模式,這些模式由狀態寄存器種移位模式,這些模式由狀態寄存器ST1的乘積移位方式的乘積移位方式(PM)位確定。位確定。注:注:PREG的內容保持不變,其值被復制到的內容保持不變,其值被復制到PSCALE中,進行移位。中,進行移位。PM移位移位說明說明00不移位不移位乘積結果沒有移位地送到乘積結果沒有移位地送到CALU單元或數據總線單元或數據總線01左移左移1位位移去在一次移去在一次2的補碼乘法運算中產生的的補碼乘法運算中產生的1位附加符號位,以得到一個位附加符號位,以得到一個Q31的乘積的乘積10左移左移4位位當與一個當與一

7、個13位的常數相乘時,移去在位的常數相乘時,移去在1613位的位的2的補碼乘法運算中產生的的補碼乘法運算中產生的4位附加符位附加符號位,以生成一個號位,以生成一個Q31的乘積的乘積11右移右移6位位對乘積結果進行定標,以使得運行對乘積結果進行定標,以使得運行128次的乘積累加器不會溢出次的乘積累加器不會溢出 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹乘法器相關指令及操作乘法器相關指令及操作用用LT指令將數據從數據總線載入指令將數據從數據總線載入TREG提供提供1操作數,操作數,MPY指令提指令提供第供第2個操作數或從數據總線上得到。個操作數或從數據總線上得到。使用使用M

8、PY指令時,可以對一個指令時,可以對一個13位的立即數進行操作,每兩個指位的立即數進行操作,每兩個指令周期得到一個乘積。令周期得到一個乘積。代碼執行多路乘法和乘積求和運算時,代碼執行多路乘法和乘積求和運算時,CPU支持流水線操作。支持流水線操作。指令指令操作操作LT把通過把通過CALU得到的前次乘積結果裝載到得到的前次乘積結果裝載到TREG,p131LTP把把PREG的值裝載入的值裝載入ACCLTA把把PREG的值加載到的值加載到ACCDMOV,LTD把把PREG的值加到的值加到ACC,移位,移位TREG輸入數據到數據存儲器的下一地址輸入數據到數據存儲器的下一地址LTS從從ACC中減去中減去P

9、REG的值的值 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹乘法器相關指令及操作乘法器相關指令及操作乘且累加并帶動數據移動指令乘且累加并帶動數據移動指令MAC和和MACD充分利用了乘法器的充分利用了乘法器的計算寬度,允許兩個操作數被同時處理。計算寬度,允許兩個操作數被同時處理。P146無符號乘法運算無符號乘法運算MPYU指令執行大大方便了用于擴展精度的算術運指令執行大大方便了用于擴展精度的算術運算。算。平行并累加前次乘積指令平行并累加前次乘積指令SQRA和平方并減去前次乘積指令和平方并減去前次乘積指令SQRS傳送相同的數到乘法器的兩個輸入端,以對一個數據存儲器單元的傳送相

10、同的數到乘法器的兩個輸入端,以對一個數據存儲器單元的值進行平方運算。值進行平方運算。p150存儲乘積的高字節指令存儲乘積的高字節指令SPH和低字節指令和低字節指令SPL,可將裝入,可將裝入PREG的的32位乘積結果傳送到位乘積結果傳送到CALU單元或數據存儲器。單元或數據存儲器。在執行中斷服務程序前必須對在執行中斷服務程序前必須對PREG的值進行保存。的值進行保存。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹3、中央算術邏輯部分、中央算術邏輯部分中 央 算 術 邏 輯 單 元中 央 算 術 邏 輯 單 元(CALU):實現各種算術、:實現各種算術、邏輯功能;邏輯功能;3

11、2位累加器位累加器(ACC):接收:接收來自來自CALU的輸出,并可的輸出,并可以根據進位位以根據進位位(C)的值來的值來實現移位;實現移位;輸出移位器輸出移位器:將:將ACC的高的高位字和低位字在送入數據位字和低位字在送入數據存儲器之前進行移位。存儲器之前進行移位。MUXACCHACCLCOutput shifter(32bits)CALUCentral arithmetic logicsection32321632323232輸入移位器乘積移位器數據存儲器 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹中央算術邏輯單元中央算術邏輯單元(CALU) 運算功能運算功能:16

12、位加、位加、16位減、布爾邏輯操作、位測試、移動位減、布爾邏輯操作、位測試、移動和循環。和循環。輸入輸入:一個由累加器提供,另一個由乘積定標移位器或輸入:一個由累加器提供,另一個由乘積定標移位器或輸入數據定標移位器提供。數據定標移位器提供。輸出輸出:其結果送至:其結果送至32位累加器,進行移位。位累加器,進行移位。相關狀態位相關狀態位:符號擴展模式位:符號擴展模式位SXM(ST1第第10位位)確定確定CALU是是否進行符號擴展。否進行符號擴展。SXM=0,抑制符號擴展;,抑制符號擴展;SXM=1,進行符,進行符號擴展。號擴展。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹

13、累加器累加器(ACC) 功能功能:對送到:對送到ACC的的CALU的運算結果進行單個移位和循環操作。的運算結果進行單個移位和循環操作。輸入輸入:CALU的運算結果。的運算結果。輸出輸出:ACC的高的高16位和低位和低16位中任何一個都可送到輸出定標移位器,經位中任何一個都可送到輸出定標移位器,經定標移位后存入數據存儲器。定標移位后存入數據存儲器。相關狀態位相關狀態位狀態位狀態位狀態寄存器狀態寄存器說明說明進位位進位位CST1第第9位位C=0:減結果產生借位減結果產生借位/加結果未產生進位;加結果未產生進位;C=1:加結果產生進位加結果產生進位/減結減結果未產生借位;左移或左循環,果未產生借位;

14、左移或左循環,ACC最高位送至最高位送至C,否則最低位送至,否則最低位送至C。溢出方式位溢出方式位OVMST0第第11位位決定決定ACC如何反映算術運算的溢出。如何反映算術運算的溢出。OVM=1:正溢出,正溢出,ACC填充最大填充最大正數,否則填充最大負數;正數,否則填充最大負數;OVM=0:正常溢出。正常溢出。溢出標志位溢出標志位OVST0第第12位位ACC未發生溢出時,未發生溢出時,OV=0;否則;否則OV=1且被莎存。且被莎存。測試測試/控制標志位控制標志位TCST1第第11位位根據被測試位的值,該位被置根據被測試位的值,該位被置0或或1。 2.1 TMS320LF240 x DSP的C

15、PU內部功能模塊介紹輸出定標移位器輸出定標移位器 將累加器輸出的內容左移將累加器輸出的內容左移07位,移動位數由存位,移動位數由存儲器指令指定,然后用儲器指令指定,然后用SACH或或SACL指令將移位器中指令將移位器中的高位字或低位字保存到數據存儲器中,的高位字或低位字保存到數據存儲器中,ACC的內容的內容不變。不變。00F0F0A10F0F0F0F0A103216累加器輸出移位器(左移4位)數據存儲器位置00F0F0A128403C3C28403216累加器輸出移位器(左移6位)數據存儲器位置(b)(a) 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹4、輔助寄存器算術邏

16、輯單元、輔助寄存器算術邏輯單元(ARAU)在在CALU操作的同時執行操作的同時執行8個輔助寄存器個輔助寄存器(AR7AR0)上的算術運算。上的算術運算。8個輔助寄存器提供了靈活而有效的間接尋址。個輔助寄存器提供了靈活而有效的間接尋址。通過把數值通過把數值07寫入狀態寄存器寫入狀態寄存器ST0高高3位的輔助寄存位的輔助寄存器指針器指針(ARP),選擇一個輔助寄存器作為當前,選擇一個輔助寄存器作為當前AR。當前當前AR存放被訪問的數據存儲器的地址,根據指令存放被訪問的數據存儲器的地址,根據指令的需要分別向數據讀的需要分別向數據讀/寫地址總線讀寫地址總線讀/寫數據,使用完寫數據,使用完該數據后,當前

17、該數據后,當前AR的內容可以被的內容可以被ARAU增減,可實增減,可實現無符號現無符號16位算術運算。位算術運算。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹ARAU可執行的操作可執行的操作將輔助寄存器值增、減將輔助寄存器值增、減1,或者增、,或者增、減一個變址量減一個變址量(借助任何支持間接借助任何支持間接尋址的指令尋址的指令)。使輔助寄存器的值加使輔助寄存器的值加/減一個常數減一個常數(ADRK/SBRK指令指令),該常數是指,該常數是指令字的低令字的低8位。位。將將AR0的內容與當前的內容與當前AR的內容進的內容進行比較,并把結果放入狀態寄存行比較,并把結果放入狀

18、態寄存器器ST1的測試的測試/控制位控制位TC(CMPR指指令令)。結果經數據寫總線。結果經數據寫總線DWEB傳傳送到送到TC。輔助寄存器的用途輔助寄存器的用途數據存儲器地址存儲器;數據存儲器地址存儲器;通過通過CMPR指令,使輔指令,使輔助寄存器支持條件分支、助寄存器支持條件分支、調用及返回;調用及返回;用作暫存單元;用作暫存單元;用作軟件計數器,按需用作軟件計數器,按需要對其進行加、減。要對其進行加、減。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹5、狀態寄存器、狀態寄存器兩個狀態寄存器兩個狀態寄存器ST0和和ST1,含有各種狀態和控制位;,含有各種狀態和控制位;可

19、保存在數據存儲器,也可從數據存儲器加載,可可保存在數據存儲器,也可從數據存儲器加載,可以保存和恢復子程序的機器狀態;以保存和恢復子程序的機器狀態;加載狀態寄存器加載狀態寄存器LST指令寫指令寫ST0和和ST1,保存狀態寄,保存狀態寄存器存器SST指令讀指令讀ST0和和ST1;INTM位不受位不受LST指令的影響;指令的影響;寄存器中每一位均可由寄存器中每一位均可由SETC和和CLRC指令單獨置位指令單獨置位和清和清0。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹ARB輔助寄存器指針緩沖器輔助寄存器指針緩沖器:當:當ARP被加載到被加載到ST0,除了使用,除了使用LST指

20、令外,原有的指令外,原有的ARP值被復制到值被復制到ARB中;當通過中;當通過LST #1指令指令加載加載ARB時,把相同的值復制到時,把相同的值復制到ARP。ARP輔助寄存器指針輔助寄存器指針:ARP選擇間接尋址時使用的當前選擇間接尋址時使用的當前AR;當;當ARP被加載時,原有的被加載時,原有的ARP值被復制到值被復制到ARB寄存器中;寄存器中;ARP可由可由存儲器相關指令改變,也可由存儲器相關指令改變,也可由LARP、MAR和和LST指令改變;當指令改變;當執行執行LST #1時,時,ARP也可加載與也可加載與ARB相同的值。相同的值。 2.1 TMS320LF240 x DSP的CPU

21、內部功能模塊介紹OV溢出標志位溢出標志位:該位鎖存的值指出:該位鎖存的值指出CALU是否發生了溢出;發生是否發生了溢出;發生溢出,溢出,OV=1,直到復位、溢出時條件轉移、無溢出時條件轉移,直到復位、溢出時條件轉移、無溢出時條件轉移或或LST指令執行時才被清指令執行時才被清0。OVM溢出方式位溢出方式位:該位決定如何管理:該位決定如何管理CALU的溢出。的溢出。SETC和和CLRC指令分別可將該位置指令分別可將該位置1或清或清0;LST指令也可修改該位;指令也可修改該位;OVM=0,ACC結果正常溢出;結果正常溢出;OVM=1,根據發生的溢出,把,根據發生的溢出,把ACC置為最大正值或負值。置

22、為最大正值或負值。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹CNF片內片內DARAM配置位配置位:CNF=0,可配置雙口,可配置雙口RAM被映射到數被映射到數據存儲空間;據存儲空間;CNF=1,可配置雙口,可配置雙口RAM被映射到程序;該位可被映射到程序;該位可通過通過SETC、CLRC和和LST指令修改;指令修改;RS復位時該位清復位時該位清0。TC測試測試/控制標志位控制標志位:TC=1,由,由BIT或或BITT指令測試位為指令測試位為1;利;利用用NORM指令測試時,指令測試時,ACC的的2個最高有效位個最高有效位“異或異或”為真;為真;CMPR所測試的當前所測

23、試的當前AR和和AR0之間的比較條件成立。之間的比較條件成立。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹INTM中斷模式位中斷模式位:該位用來允許或禁止所有可屏蔽中斷。通過:該位用來允許或禁止所有可屏蔽中斷。通過SETC和和CLRC指令置指令置1或清或清0;該位不影響不可屏蔽中斷;該位不影響不可屏蔽中斷RS和和NMI;LST指令不影響該位;發生中斷及復位時置指令不影響該位;發生中斷及復位時置1;INTM=0,允許全部沒有被屏蔽的中斷;允許全部沒有被屏蔽的中斷;INTM=1,禁止全部沒有被屏蔽的,禁止全部沒有被屏蔽的中斷。中斷。DP數據存儲器頁指針數據存儲器頁指針:當指

24、令使用直接尋址方式時,這個:當指令使用直接尋址方式時,這個9位的位的DP寄存器與指令寄存器的低寄存器與指令寄存器的低7位一起形成一個完整的數據存儲器位一起形成一個完整的數據存儲器16位地址。位地址。LST和和LDP指令可修改該字段。指令可修改該字段。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹SXM符號擴展模式位符號擴展模式位:SXM=1數據通過定標移位器傳送到累加器時產生數據通過定標移位器傳送到累加器時產生符號擴展,符號擴展,SXM=0抑制符號擴展;該位不影響某些指令的基本操作,如抑制符號擴展;該位不影響某些指令的基本操作,如ADDS指令不管指令不管SXM位的狀態如何

25、都抑制符號擴展;通過位的狀態如何都抑制符號擴展;通過SECT、CLRC和和LST指令對該位進行置指令對該位進行置1、清、清0和加載;復位時該位置和加載;復位時該位置1。C進位位進位位:C=1,加法結果產生進位或減法結果未產生借位;,加法結果產生進位或減法結果未產生借位;C=0,反之;,反之;移位移位16位的位的ADD指令只能使指令只能使C位置位置1,SUB指令只能使指令只能使C位清位清0,不會對,不會對C位產生其他影響;移位產生其他影響;移1位、循環指令、位、循環指令、SETC、CLRC和和LST指令均影響指令均影響該標志位;條件轉移、調用和返回指令可根據該標志位;條件轉移、調用和返回指令可根

26、據C的狀態執行;復位時該的狀態執行;復位時該位置位置1。 2.1 TMS320LF240 x DSP的CPU內部功能模塊介紹XF引腳狀態位引腳狀態位:該位確定通用輸出引腳:該位確定通用輸出引腳XF的狀態;通過的狀態;通過SECT、CLRC和和LST指令對該位進行置指令對該位進行置1、清、清0和加載;復位時該位置和加載;復位時該位置1。PM乘積移位模式乘積移位模式:該位決定:該位決定PREG的值是送往的值是送往CALU或數據存儲器時如或數據存儲器時如何移位;何移位;SPM和和LST指令可以對該位加載;復位時該位清指令可以對該位加載;復位時該位清0。 PM=00,乘法器,乘法器32位乘積不經移位送

27、到位乘積不經移位送到CALU或數據存儲器;或數據存儲器; PM=01,送到,送到CALU之前,之前,PREG的輸出左移的輸出左移1位位(低位填低位填0); PM=10,送到,送到CALU之前,之前,PREG的輸出左移的輸出左移4位位(低位填低位填0); PM=11,PREG輸出進行符號擴展右移輸出進行符號擴展右移6位。位。注注:PREG的內容保持不變,其值被拷貝到乘積移位器中進行移位。的內容保持不變,其值被拷貝到乘積移位器中進行移位。 2.2 存儲器和I/O空間增強的哈佛結構,三組并行總線增強的哈佛結構,三組并行總線程序地址總線程序地址總線(PAB)數據讀地址總線數據讀地址總線(DRAB)數據

28、寫地址總線數據寫地址總線(DWAB)四個可獨立選擇的空間四個可獨立選擇的空間程序存儲器程序存儲器(64K字字)局部數據存儲器局部數據存儲器(64K字字)全局數據存儲器全局數據存儲器(32K字字)I/O空間空間(64K字字)注意注意:LF240 x DSP的所有片內外設的寄存器均映射在的所有片內外設的寄存器均映射在數據存儲器空間。數據存儲器空間。 2.2 存儲器和I/O空間1、程序存儲器、程序存儲器保存程序代碼及數據表信保存程序代碼及數據表信息和常量息和常量尋址范圍為尋址范圍為64K,包括片,包括片內內 D A R A M 和 片 內和 片 內FLASH訪問片外程序地址空間時,訪問片外程序地址空

29、間時,DSP自動產生一個訪問外自動產生一個訪問外部程序地址空間的信號部程序地址空間的信號PSLF2407的程序存儲器空間映射圖 2.2 存儲器和I/O空間決定程序存儲器的配置決定程序存儲器的配置兩個因素兩個因素CNF位。位。CNF位是狀態寄存器位是狀態寄存器ST1的第的第12位,決定位,決定DARAM中的中的B0塊塊配置在數據存儲器空間,還是配置在程序存儲器空間。配置在數據存儲器空間,還是配置在程序存儲器空間。 CNF=0,256字的字的B0塊被映射到數據存儲器空間。塊被映射到數據存儲器空間。 CNF=1,256字的字的B0塊被映射到程序存儲器空間。塊被映射到程序存儲器空間。 復位時,復位時,

30、CNF0,B0塊被映射到數據存儲器空間。塊被映射到數據存儲器空間。MP/MC引腳。該引腳決定是從片內引腳。該引腳決定是從片內Flash讀取指令讀取指令,還是從外部程序還是從外部程序存儲器讀取指令。存儲器讀取指令。 MP/MC=0:微控制器方式。此時訪問的是片內程序存儲器(片內微控制器方式。此時訪問的是片內程序存儲器(片內Flash)0000h-7FFFh空間。空間。 MP/MC=1:微處理器方式。此時訪問的是片外程序存儲器的微處理器方式。此時訪問的是片外程序存儲器的0000h-7FFFh空間。空間。注注:無論:無論MP/MC引腳為何值,引腳為何值,LF240 xDSP都是從程序存儲器空間都是從

31、程序存儲器空間的的0000h單元開始執行程序。單元開始執行程序。 2.2 存儲器和I/O空間2、數據存儲器、數據存儲器尋 址 范 圍尋 址 范 圍 6 4 K 字字 : 前前 3 2 K 字字(0000h-7FFFh)是內部數據存)是內部數據存儲器空間儲器空間,包括了包括了DARAM和片內和片內外設的映射寄存器;外設的映射寄存器;后后32K字字(8000h-FFFFh)空間的存儲器)空間的存儲器為外部數據存儲器。為外部數據存儲器。片內有片內有3個個DARAM塊塊:B0、B1和和B2塊。塊。B0塊塊:即可為數據存儲器,即可為數據存儲器,也可配置為程序存儲器。也可配置為程序存儲器。B1、B2塊塊:

32、只能配置為數據存儲器。只能配置為數據存儲器。LF2407的數據存儲器空間映射圖 2.2 存儲器和I/O空間兩種尋址方式:兩種尋址方式:直接尋址直接尋址和和間接尋間接尋址址。直接尋址時,直接尋址時,128字為一頁字為一頁的數據塊的數據塊來對數據存儲器進行尋址。來對數據存儲器進行尋址。右圖顯右圖顯示了這些塊是如何被尋址的示了這些塊是如何被尋址的。全部全部64K的數據存儲器分為的數據存儲器分為512個數個數據頁據頁,其標號從,其標號從0-511。當前頁由狀。當前頁由狀態寄存器態寄存器ST0中的中的9位位數據頁指針數據頁指針(DP)值來確定值來確定。因此,當使用因此,當使用直接尋址直接尋址指令時,用指

33、令時,用戶必須事先指定戶必須事先指定數據頁數據頁,并在訪問,并在訪問數據存儲器的指令中指定數據存儲器的指令中指定偏移量偏移量,偏移量為偏移量為7位位。數據存儲器頁 2.2 存儲器和I/O空間編程時要注意編程時要注意,訪問下面的數據存儲器的地址空間是訪問下面的數據存儲器的地址空間是非法的非法的,并,并會對會對NMI置位置位。除了以下地址,任何對外。除了以下地址,任何對外設寄存器映射中的設寄存器映射中的保留地址保留地址的訪問也是的訪問也是非法的非法的。 0080h-00FFh 701Fh-71FFh (CAN內部的內部的) 0500h-07FFh 7230h-73FFh (部分在部分在CAN內部內

34、部) 1000h-700Fh 7440h-74FFh 7030h-703Fh 7540h-75FFh 7060h-706Fh 7600h-77EFh 77F4h-7FFFh 7080h-708Fh 2.2 存儲器和I/O空間第第0頁數據地址映射頁數據地址映射 數據存儲器中包括數據存儲器中包括存儲器映射存儲器映射寄存器寄存器,它們位于數據存儲器的,它們位于數據存儲器的第第0頁頁(地址(地址0000h-007Fh),下表是),下表是對第對第0頁數據地址映射的詳細說明。頁數據地址映射的詳細說明。應用中必須應用中必須注意以下幾點注意以下幾點:以零等待狀態訪問以零等待狀態訪問兩個映射寄存器兩個映射寄存器

35、:中斷屏蔽寄存器(中斷屏蔽寄存器(IMR)和和中斷標中斷標志寄存器(志寄存器(IFR)測試測試/仿真保留區仿真保留區被測試和仿真系被測試和仿真系統用于特定信息發送。因此統用于特定信息發送。因此不能對不能對測試測試/仿真地址進行操作仿真地址進行操作。地址地址名稱名稱描述描述0000h0003h保留保留0004hIMR中斷屏蔽寄存器中斷屏蔽寄存器0005h保留保留0006hIFR中斷標志寄存器中斷標志寄存器0023h0027h保留保留002Bh002Fh保留用作測試和仿真保留用作測試和仿真0060h007FhB2雙口雙口RAM(DARAM B2)第0頁數據地址映射 2.2 存儲器和I/O空間數據存

36、儲器配置數據存儲器配置 CNF位決定位決定B0塊的配置,塊的配置,CNF位是狀態寄存器位是狀態寄存器ST1的的第第12位。位。CNF0,B0塊被映射為數據存儲器空間;塊被映射為數據存儲器空間; 復位時,復位時,CNF0;CNF1,B0塊被映射到程序存儲器空間;塊被映射到程序存儲器空間; 2.2 存儲器和I/O空間3、I/O空間空間尋址范圍為尋址范圍為64K字。字。I/O空間訪問的空間訪問的控制信號為控制信號為IS。所有所有64K的的I/O空間均可以用空間均可以用IN和和OUT指令指令來訪問來訪問。當執行。當執行IN或或OUT指令時,信號指令時,信號IS*變為有效變為有效,可作為外部可作為外部I

37、/O設備的片選信號。設備的片選信號。訪問外部訪問外部I/O端口與訪問程序存儲器、數據端口與訪問程序存儲器、數據存儲器存儲器復用相同的的地址總線和數據總線復用相同的的地址總線和數據總線。數據總線的寬度為數據總線的寬度為16位,位,若使用若使用8位的外設位的外設,即可使用即可使用高高8位位數據總線,也可使用數據總線,也可使用低低8位位數據總線,以適應特定應用的需要。數據總線,以適應特定應用的需要。當訪問當訪問片內片內的的I/O空間時,信號空間時,信號IS和和STRB變成無變成無效,外部地址和數據總線僅僅當訪問外部效,外部地址和數據總線僅僅當訪問外部I/O地地址時有效。址時有效。LF2407 I/O

38、空間地址映射圖 2.2 存儲器和I/O空間下面是使用匯編語言的直接訪問下面是使用匯編語言的直接訪問I/O空間的實際例子空間的實際例子:IN DAT2,0AFEEh;從端口地址為;從端口地址為AFEEh的外設的外設 ;讀數據,并存入;讀數據,并存入DAT2寄存器寄存器OUT DAT2,0CFEFh;輸出數據存儲器;輸出數據存儲器DAT2的內容的內容 ;到端口地址為;到端口地址為CFEFh的的外設外設下面是訪問等待狀態發生器的寄存器的實例:下面是訪問等待狀態發生器的寄存器的實例:IN DAT2,0FFFFh;從等待狀態發生器讀取數據到;從等待狀態發生器讀取數據到DAT2寄寄存器存器OUT DAT2

39、,0FFFFh;將;將DAT2寄存器的數據寫入等待狀態發寄存器的數據寫入等待狀態發生器,使用等待狀態發生器生器,使用等待狀態發生器 2.3 程序控制程序控制程序控制執行一個或多個指令塊的次序調動執行一個或多個指令塊的次序調動通常通常,程序是順序執行的,器件執行這些連續程,程序是順序執行的,器件執行這些連續程序存儲器地址處的指令序存儲器地址處的指令有時有時,程序必須轉移到非順序的地址并在新地址,程序必須轉移到非順序的地址并在新地址處開始順序執行指令處開始順序執行指令LF240 x DSP支持調用、返回和中斷支持調用、返回和中斷 2.4 程序控制1、程序地址的產生、程序地址的產生程序流程序流要求處

40、理器在執行當前指令的同時產生下一個程序地址要求處理器在執行當前指令的同時產生下一個程序地址(順順序或非順序序或非順序)LF240 x器件程序地址產生邏輯使用下列硬件:器件程序地址產生邏輯使用下列硬件: 程序計數器程序計數器(PC):16位位PC取址時對內部或外部程序存儲器進行取址時對內部或外部程序存儲器進行尋址。尋址。 程序地址寄存器程序地址寄存器(PAR):驅動程序地址總線驅動程序地址總線(PAB),是,是16位總線位總線,同時為讀,同時為讀/寫程序提供地址。寫程序提供地址。 堆棧:堆棧:程序地址產生邏輯包括一個程序地址產生邏輯包括一個16位寬、最多可保存位寬、最多可保存8個返回個返回地址的

41、硬件堆棧,也可用于暫存數據。地址的硬件堆棧,也可用于暫存數據。 微堆棧微堆棧(MSTACK):有時程序地址產生邏輯使用這個有時程序地址產生邏輯使用這個16位寬、位寬、1級深的堆棧保存一返回地址。級深的堆棧保存一返回地址。 重復計數器重復計數器(RPTC):16位的位的RPTC與重復指令與重復指令RPT一起,用來一起,用來確定確定RPT后面的一條指令重復執行的次數。后面的一條指令重復執行的次數。 2.4 程序控制程序計數器程序計數器(PC)程序地址產生邏輯利用程序地址產生邏輯利用16位的位的PC尋址內部和外部程序尋址內部和外部程序存儲器。存儲器。PC含有要執行的下一條指令的地址。含有要執行的下一

42、條指令的地址。經程序地址總線經程序地址總線(PAB )從程序存儲器中取出該地址中的從程序存儲器中取出該地址中的指令,并將其裝入指令寄存器。指令,并將其裝入指令寄存器。指令寄存器裝入后,指令寄存器裝入后,PC內容為下一地址。內容為下一地址。LF240 x可以采用多種方法裝載可以采用多種方法裝載PC,從而適應順序和非,從而適應順序和非順序的程序流。順序的程序流。 2.4 程序控制堆棧堆棧LF240 x具有具有16位寬度、位寬度、8級深度的硬件堆棧級深度的硬件堆棧。在調用子程序或發生中斷時,程序地址產生邏輯利用該堆棧在調用子程序或發生中斷時,程序地址產生邏輯利用該堆棧保存返保存返回地址回地址。當指令

43、使當指令使CPU進入子程序或中斷使其進入中斷服務程序時,返回地進入子程序或中斷使其進入中斷服務程序時,返回地址自動裝入堆棧的棧頂,該操作不需附加周期。址自動裝入堆棧的棧頂,該操作不需附加周期。當子程序或中斷服務程序完成時,則返回地址從棧頂送到程序計數當子程序或中斷服務程序完成時,則返回地址從棧頂送到程序計數器。器。當當8級堆棧級堆棧不用于保存地址不用于保存地址時,在子程序或中斷服務程序內,堆棧時,在子程序或中斷服務程序內,堆棧可用于保存上下文數據或其他存儲用途可用于保存上下文數據或其他存儲用途。 2.4 程序控制用戶可使用的兩組指令訪問堆棧用戶可使用的兩組指令訪問堆棧PUSH(壓入壓入)和和P

44、OP(彈出彈出):PUSH指令把累加器的低半部分指令把累加器的低半部分copy到到棧頂;棧頂;POP指令將棧頂的數據指令將棧頂的數據copy到累加器低半部分。到累加器低半部分。PSHD和和POPD:當子程序或中斷嵌套超過:當子程序或中斷嵌套超過8級時,可利用這些指令級時,可利用這些指令在數據存儲區構建堆棧。在數據存儲區構建堆棧。PSHD將數據存儲器中的值壓入棧頂;將數據存儲器中的值壓入棧頂;POPD將棧頂的值彈到數據存儲器。將棧頂的值彈到數據存儲器。每當一個數壓入棧頂,堆棧中每級的內容都下移一級,棧底內容則每當一個數壓入棧頂,堆棧中每級的內容都下移一級,棧底內容則丟失。因此,如果沒有彈出而又連

45、續壓入多于丟失。因此,如果沒有彈出而又連續壓入多于8次,或壓入的次數次,或壓入的次數比彈出的次數多于比彈出的次數多于8次時,就會丟失數據次時,就會丟失數據(堆棧溢出堆棧溢出)。彈出操作于壓入操作相反,把堆棧中每一級的值都彈出操作于壓入操作相反,把堆棧中每一級的值都copy到較高的一到較高的一級,連續級,連續7次彈出后的任何彈出操作產生的值都是初始棧底的值。次彈出后的任何彈出操作產生的值都是初始棧底的值。 2.4 程序控制微堆棧微堆棧(MSTACK)程序地址產生邏輯在執行某些指令前利用程序地址產生邏輯在執行某些指令前利用16位寬、位寬、1級深的級深的MSTACK保存返回地址保存返回地址。這些指令

46、利用程序地址產生邏輯提供雙操作數指令中的第這些指令利用程序地址產生邏輯提供雙操作數指令中的第2個地址個地址,它們是:,它們是:BLDD、BLPD、MAC、MACD、TBLR和和TBLW。重復執行時,重復執行時,利用利用PC使第一個操作數地址增使第一個操作數地址增1,并使用輔助寄存器,并使用輔助寄存器算術單元產生第二個操作數地址。算術單元產生第二個操作數地址。使用時,使用時,返回地址被壓入返回地址被壓入MSTACK;重復指令執行完后,;重復指令執行完后,MSTACK的值被彈出并送至程序地址產生邏輯的值被彈出并送至程序地址產生邏輯。MSTACK不可用于存儲指令不可用于存儲指令(不同于(不同于STA

47、CK)。)。 2.4 程序控制2、流水線操作、流水線操作指令流水線指令流水線包括執行指令時發生的一系列總操作。包括執行指令時發生的一系列總操作。LF240 x流水線具有流水線具有4個獨立階段:個獨立階段:取指令取指令、指令譯碼指令譯碼、取操作數取操作數和和執行指令執行指令。這這4個獨立階段在任意給定周期里,可能有個獨立階段在任意給定周期里,可能有14條不同的指令處于激條不同的指令處于激活狀態。活狀態。 2.4 程序控制對用戶來說,除下列情況外,流水線基本上是不對用戶來說,除下列情況外,流水線基本上是不可見的可見的緊跟在修改全局存儲器分配寄存器緊跟在修改全局存儲器分配寄存器(GBEG)后的后的單

48、字單字、單周期指令使用先前的全局映射數據存儲器單周期指令使用先前的全局映射數據存儲器。NORM指令修改輔助寄存器指針指令修改輔助寄存器指針(ABP),而且,而且在流水線在流水線的執行階段使用當前輔助寄存器的執行階段使用當前輔助寄存器。如果后面的兩個指令。如果后面的兩個指令字改變當前輔助寄存器或字改變當前輔助寄存器或ARP的值,那么這些操作是在的值,那么這些操作是在流水線的譯碼階段進行的,使得流水線的譯碼階段進行的,使得NORM指令使用了錯誤指令使用了錯誤的輔助寄存器,并使后續指令使用錯誤的的輔助寄存器,并使后續指令使用錯誤的ARP值。值。 2.4 程序控制3、無條件轉移、調用和返回、無條件轉移

49、、調用和返回無條件轉移無條件轉移總是被執行總是被執行,PC裝入指定的程序地址且程序從該地址裝入指定的程序地址且程序從該地址處開始執行。裝入的地址來自于指令的第處開始執行。裝入的地址來自于指令的第2個字或累加個字或累加器的低器的低16位。位。在轉移指令到達流水線的執行階段時,下在轉移指令到達流水線的執行階段時,下2條指令已被條指令已被取回,且從流水線中清除不被執行,而從轉移至的地址取回,且從流水線中清除不被執行,而從轉移至的地址處繼續執行。處繼續執行。無條件轉移指令:無條件轉移指令:B(轉移轉移)和和BACC(轉移到轉移到ACC指定的指定的存儲單元存儲單元)。 2.4 程序控制無條件調用無條件調

50、用必定要執行必定要執行,將指定的程序存儲器的地址加載到,將指定的程序存儲器的地址加載到PC,并從該地址開始執行。裝入的地址來自于指令的第并從該地址開始執行。裝入的地址來自于指令的第2個個字或累加器的低字或累加器的低16位。位。加載加載PC之前將返回地址保存到堆棧里。子程序執行后之前將返回地址保存到堆棧里。子程序執行后,返回指令將返回地址從堆棧加載到,返回指令將返回地址從堆棧加載到PC,程序從調用,程序從調用指令后面的指令開始執行。指令后面的指令開始執行。無條件調用指令:無條件調用指令:CALL和和CALA(調用調用ACC指定的存儲指定的存儲單元處的子程序單元處的子程序)。 2.4 程序控制無條

51、件返回無條件返回必定要執行必定要執行,將棧頂的值加載到,將棧頂的值加載到PC,并從該地址繼續,并從該地址繼續執行程序。執行程序。在返回指令到達流水線的執行階段時,下兩條指令已被在返回指令到達流水線的執行階段時,下兩條指令已被取回,且從流水線中清除不被執行,取回,且從流水線中清除不被執行,PC從堆棧中取出從堆棧中取出返回地址,程序繼續執行。返回地址,程序繼續執行。 2.4 程序控制4、有條件轉移、調用和返回、有條件轉移、調用和返回使用多個條件使用多個條件條件指令操作數中可以有多個條件。必須滿足多個條件條件指令操作數中可以有多個條件。必須滿足多個條件,指令才可執行。,指令才可執行。合法條件組合應滿

52、足的規則:合法條件組合應滿足的規則: 組組1:最多可選:最多可選2個條件,其中每個條件必須來自不個條件,其中每個條件必須來自不同的類;同的類;2個條件不能來自同一類。個條件不能來自同一類。 組組2:最多可選:最多可選3個條件,其中每個條件必須來自不個條件,其中每個條件必須來自不同的類;不能有同的類;不能有2個條件來自同一類。個條件來自同一類。 2.4 程序控制條件狀態條件狀態條件指令必須能測試狀態位的條件指令必須能測試狀態位的最近值最近值。直到流水線的直到流水線的第第4個階段個階段,前一條指令已被執行后的一,前一條指令已被執行后的一個周期,才認為條件是穩定的。個周期,才認為條件是穩定的。流水線控制在條件穩定之前,停止對條件指令后面任何流水線控制在條件穩定之前,停止對條件指令后面任何指令的譯碼。指令的譯碼。 2.4 程序控制條件轉移條件轉移轉移指令可把程序控制轉移到程序存儲器中的任何地址轉移指令可把程序控制轉移到程序存儲器中的任何地址。條件轉移指令僅當用戶指定的一個或多個條件滿足時。條件轉移指令僅當用戶指定的一個或多個條件滿足時才執行。如果滿足所有條件,將轉移指令的第才執行。如果滿足所有條件,將轉移指令

溫馨提示

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

評論

0/150

提交評論