




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制二、程序地址產(chǎn)生二、程序地址產(chǎn)生 三、轉(zhuǎn)移、調(diào)用和返回三、轉(zhuǎn)移、調(diào)用和返回四、重復(fù)指令四、重復(fù)指令主要介紹主要介紹F2812的時鐘、鎖相環(huán)、看門狗和復(fù)位控制電路等。的時鐘、鎖相環(huán)、看門狗和復(fù)位控制電路等。各種時鐘和復(fù)位電路的內(nèi)部結(jié)構(gòu):各種時鐘和復(fù)位電路的內(nèi)部結(jié)構(gòu):一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制5HISPCP HISPCP 一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制HISPCP 高速外設(shè)時鐘高速外設(shè)時鐘設(shè)置寄存器設(shè)置寄存器 PLLCR PLL控制寄控制寄存器存器 LOSPCP 慢速外設(shè)時鐘慢速外設(shè)時鐘設(shè)置寄存器設(shè)置寄存器 SCSR 系統(tǒng)控制和系統(tǒng)控制和狀態(tài)寄
2、存器狀態(tài)寄存器 PCLKCR 外設(shè)時鐘控制外設(shè)時鐘控制寄存器寄存器 WDCNTR 看門狗計數(shù)看門狗計數(shù)寄存器寄存器 LPMCR0 低功耗模式控低功耗模式控制寄存器制寄存器0 WDKEY 看門狗復(fù)位看門狗復(fù)位key寄存器寄存器 LPMCRl 低功耗模式控低功耗模式控制寄存器制寄存器1 WDCR 看門狗控制看門狗控制寄存器寄存器 外設(shè)時鐘控制寄存器外設(shè)時鐘控制寄存器 PCLKCR 數(shù)據(jù)存儲空間數(shù)據(jù)存儲空間 0 x0000701C 時鐘寄存器時鐘寄存器 高低速外設(shè)時鐘寄存器高低速外設(shè)時鐘寄存器 HISPCP/LOSPCP 0 x0000701A/B 系統(tǒng)控制和狀態(tài)寄存器系統(tǒng)控制和狀態(tài)寄存器 SCSR
3、 數(shù)據(jù)存儲空間數(shù)據(jù)存儲空間 0X00007022保留保留D15 D14 D13 D12 D11 D10 D9 D8ECANENCLKMCBSPENCLKSCIBENCLKSPIENCLK R-0 R/W-0 R-0 R/W-0 R/W-0 Reserved D15 D3 D2 D1 D0WDINTS WDENINT WDOVERRIDE R-0 R-1 R/W-0 R/W1C-1 一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制SCIAENCLK保留保留保留保留保留保留ADCENCLK保留保留EVAENCLKEVBENENCLKD7 D4 D3 D2 D1 D0 R-0 R/W-0 R-0 R/W-0 R
4、/W-0 R/W-0 R-0 R/W-0Reserved D15 D3 D2 D0HSPCK/LSPCK R-0 R/W-010 時鐘模塊提供兩種操作模式:時鐘模塊提供兩種操作模式: 內(nèi)部振蕩器:內(nèi)部振蕩器:如果使用內(nèi)部振蕩如果使用內(nèi)部振蕩器,則必須在器,則必須在X1XCLKIN和和X2兩個引兩個引 腳之間連接一個石英晶體。腳之間連接一個石英晶體。 外部時鐘源:外部時鐘源:如果采用外部時鐘,如果采用外部時鐘,可以將輸入的時鐘信號直接接到可以將輸入的時鐘信號直接接到X1XCLKIN引腳上,而引腳上,而X2懸空。在這種情懸空。在這種情況下,不使用內(nèi)部振蕩器。況下,不使用內(nèi)部振蕩器。一、時鐘及系統(tǒng)控
5、制一、時鐘及系統(tǒng)控制晶體振蕩器及鎖相環(huán)晶體振蕩器及鎖相環(huán)當(dāng)當(dāng)XPLLDIS為低電平,系統(tǒng)直接采用時鐘或晶振直接作為系統(tǒng)時鐘;為低電平,系統(tǒng)直接采用時鐘或晶振直接作為系統(tǒng)時鐘;當(dāng)當(dāng)XPLLDIS為高電平,外部時鐘經(jīng)過為高電平,外部時鐘經(jīng)過PLL倍頻后,為提供時鐘。倍頻后,為提供時鐘。 片 內(nèi) 振 蕩 器( OSC)X1/XCLKINX2預(yù) 存 器XF_PLLDISOSCCLK(PLL被 禁 止 )XPLLDISXRSPLL旁 路PLL/2014位 PLL選 擇CLKIN(送 至 CPU)鎖相環(huán)控制寄存器鎖相環(huán)控制寄存器PLLCR用于選擇鎖相環(huán)的工作模式和倍頻系數(shù)用于選擇鎖相環(huán)的工作模式和倍頻系數(shù)
6、定時器定時器一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制Reserved D15 D4 D3 D0DIV R-0 R/W-010 TIM 16位的計數(shù)寄存器,重新裝載位的計數(shù)寄存器,重新裝載PRD的值。的值。 PRD 16位周期寄存器。位周期寄存器。 TCR 16位的定時器控制寄存器。位的定時器控制寄存器。 PSC 16位的預(yù)定標(biāo)寄存器,重新裝載位的預(yù)定標(biāo)寄存器,重新裝載TDDR的值。的值。 TDDR 16位的分頻寄存器。位的分頻寄存器。有有3個個32位位CPU定時器定時器(TIMER0/1/2):定時器定時器0用戶可以在應(yīng)用程序中使用。用戶可以在應(yīng)用程序中使用。定時器定時器1和定時器和定時器2預(yù)留給
7、實時操作系統(tǒng)使用預(yù)留給實時操作系統(tǒng)使用(例如例如 DSPBIOS)。10u F281F281器件上有器件上有3 3個個3232位位CPUCPU定時器(定時器(TIMERTIMER0/1/20/1/2)u TIMER0TIMER0可以在用戶程序中使用,可以在用戶程序中使用,TIMER1/2TIMER1/2預(yù)留給預(yù)留給DSP BIOSDSP BIOS或其它或其它RTOSRTOS使用(使用(如果不用如果不用DSP BIOSDSP BIOS,可以供用戶使用,可以供用戶使用)。)。u 每個定時器有每個定時器有4 4個寄存器:個寄存器: 1 1)計數(shù)寄存器()計數(shù)寄存器(TIMH:TIMTIMH:TIM)
8、:):3232位位 2 2)周期寄存器)周期寄存器(PRDH:PRD)(PRDH:PRD):3232位位 3 3)預(yù)定標(biāo)寄存器)預(yù)定標(biāo)寄存器(TPR): 32(TPR): 32位(預(yù)定標(biāo)計數(shù)器位(預(yù)定標(biāo)計數(shù)器PSCPSC分頻寄存器分頻寄存器TDDRTDDR) 4 4)控制寄存器控制寄存器(TCR)(TCR):1616位位u TIFTIFTimer Interrupt FlagTimer Interrupt Flagu TIE TIETimer Interrupt EnableTimer Interrupt Enableu TRB TRBTimer Reload BitTimer Reload
9、Bitu TSS TSSTimer Stop Status BitTimer Stop Status Bit11通用定時器 定時器的工作過程:定時器的工作過程: 1 1)用用3232位計數(shù)寄存器(位計數(shù)寄存器(TIMH:TIMTIMH:TIM)裝載周期寄存器()裝載周期寄存器(PRDH:PRD)PRDH:PRD)中的中的 計時常數(shù);計時常數(shù); 2 2)計數(shù)寄存器根據(jù))計數(shù)寄存器根據(jù)SYSCLKOUTSYSCLKOUT時鐘時鐘遞減遞減計數(shù)(計數(shù)(16163232位);位); 3 3)當(dāng)計數(shù)寄存器等于)當(dāng)計數(shù)寄存器等于0 0時,定時器的計數(shù)器寄存器重載周期寄存器值,時,定時器的計數(shù)器寄存器重載周期
10、寄存器值, 并輸出一個中斷脈沖(并輸出一個中斷脈沖(TINT0TINT0)。)。12void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)unsigned long temp;Timer-CPUFreqInMHz = Freq; / Initialize timer periodTimer-PeriodInUSec = Period;temp = (long) (Freq * Period); / 150MHz100us=15000Timer-RegsAddr-PRD.all = temp;Timer
11、-RegsAddr-TPR.all = 0; / Set pre-scale counter to divide by 1 Timer-RegsAddr-TPRH.all = 0;/ Initialize timer control register:Timer-RegsAddr-TCR.bit.TSS = 1/0; / 1 = Stop timer, 0 = Start Timer Timer-RegsAddr-TCR.bit.TRB = 1; / 1 = reload timerTimer-RegsAddr-TCR.bit.SOFT = 1;Timer-RegsAddr-TCR.bit.F
12、REE = 1; / Timer Free RunTimer-RegsAddr-TCR.bit.TIE = 1; / 1 = Enable Timer Interrupt配置CPU定時器下面的函數(shù)中周期寄存器由給定的下面的函數(shù)中周期寄存器由給定的DSP時鐘頻率時鐘頻率Freq(MHz)和定時器和定時器周期周期Period(s) 兩個參數(shù)確定。初始化后定時器處于停止?fàn)顟B(tài)。兩個參數(shù)確定。初始化后定時器處于停止?fàn)顟B(tài)。定定時時器器定時器功能框圖定時器功能框圖一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制工作過程:工作過程:首先用首先用32位計數(shù)寄存器位計數(shù)寄存器(TIMH:TM)裝載周期寄存器裝載周期寄存器(P
13、RDH:PRD)內(nèi)部的值。計數(shù)寄存器根據(jù)內(nèi)部的值。計數(shù)寄存器根據(jù)SYSCLKOUT時鐘遞減計數(shù)。時鐘遞減計數(shù)。當(dāng)計數(shù)寄存器等于當(dāng)計數(shù)寄存器等于0時,定時器中斷輸出產(chǎn)生一個中斷脈沖。時,定時器中斷輸出產(chǎn)生一個中斷脈沖。 工作原理工作原理 在每個在每個SYSCLKOUT脈沖后脈沖后PSC減減1,一直減到,一直減到0。 在下一個在下一個SYSCLKOUT周期周期 ,TDDR加載新的除數(shù)值到加載新的除數(shù)值到PSC,并使,并使TIM減減1。 重復(fù)前兩步操作,即重復(fù)前兩步操作,即PSC每次減到每次減到0后,后,TIM進(jìn)行一次減進(jìn)行一次減1操作,直到操作,直到TIM減為減為0在下一個在下一個SYSCLKOU
14、T周期,將定時器中斷(周期,將定時器中斷(TINT)送到)送到CPU,和,和TOUT引腳。同引腳。同時時TIM裝載來自裝載來自PRD的新的定時的新的定時 計數(shù)器值,并使計數(shù)器值,并使PSC再次減再次減1。 每經(jīng)過(每經(jīng)過(TDDR+1)個)個SYSCLKOUT 周期,周期,TIM減減1。當(dāng)。當(dāng)PRD、TDDR或兩者都不或兩者都不為零時,為零時,定時器中斷頻率即定時器中斷頻率即TINT的頻率(的頻率(fTINT)為:)為: fCLKOUT1為為SYSCLKOUT的頻率。的頻率。定時器定時器) 1() 1(11PRDTDDRffCLKOUTTINT定時器定時器 計數(shù)器計數(shù)器TIMTIMTIM D1
15、5 D0 R/W-0TIMH D15 D0 R/W-0 周期寄存器周期寄存器PRDPRDPRD D15 D0 R/W-0PRDH D15 D0 R/W-0定時器定時器 控制寄存器控制寄存器TCR0TCR0TIF TIEFREE D15 D14 D13D12 D11 D10 D9D6 D5 D4 D3 D0TRB保留保留SOFT保留保留R/W-0 R/W-0 R-0 R/W-0 R/W-0 R-0 R/W-0 R/W-0 R-0 TCR功能:功能: 控制定時器模式控制定時器模式 重新加載定時器重新加載定時器 啟動和停止定時器啟動和停止定時器TSS保留保留 預(yù)定標(biāo)寄存器預(yù)定標(biāo)寄存器PSC/TDDR
16、PSC/TDDRPSC D15 D8 D7 D0 R-0 R/W-0PSCH D15 D8 D7 D0 R-0 R/W-0TDDRTDDRH一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制看門狗及其應(yīng)用看門狗及其應(yīng)用 F2812的看門狗與的看門狗與240 x的基本相同,當(dāng)?shù)幕鞠嗤?dāng)8位的看門狗計數(shù)位的看門狗計數(shù)器計數(shù)到最大值時,看門狗模塊產(chǎn)生一個輸出脈沖器計數(shù)到最大值時,看門狗模塊產(chǎn)生一個輸出脈沖(512個振蕩個振蕩器時鐘寬度器時鐘寬度)。如果不希望產(chǎn)生脈沖信號,用戶需要屏蔽計數(shù)。如果不希望產(chǎn)生脈沖信號,用戶需要屏蔽計數(shù)器,或用軟件周期向看門狗復(fù)位控制寄存器寫器,或用軟件周期向看門狗復(fù)位控制寄存器寫“
17、0 x55+0 xAA,該寄存器能夠使看門狗計數(shù)器清零。該寄存器能夠使看門狗計數(shù)器清零。 為了實現(xiàn)看門狗的各項功能,內(nèi)部有為了實現(xiàn)看門狗的各項功能,內(nèi)部有3個功能寄存器個功能寄存器 看門狗功能框圖看門狗功能框圖192、看門狗及其應(yīng)用u 8 8位的看門狗計數(shù)器(位的看門狗計數(shù)器(WDCNTRWDCNTR),當(dāng)計數(shù)到最大值時看門狗模塊產(chǎn)生),當(dāng)計數(shù)到最大值時看門狗模塊產(chǎn)生一個輸出脈沖(一個輸出脈沖(512512個個OSCCLKOSCCLK時鐘寬度),并可以中斷或復(fù)位時鐘寬度),并可以中斷或復(fù)位DSPDSP。u 如果不希望產(chǎn)生脈沖信號,用戶可以屏蔽看門狗模塊,或者通過軟件周如果不希望產(chǎn)生脈沖信號,用
18、戶可以屏蔽看門狗模塊,或者通過軟件周期性的向看門狗復(fù)位寄存器(期性的向看門狗復(fù)位寄存器(WDKEYWDKEY)寫)寫“0 x55+0 xAA”0 x55+0 xAA”,使得,使得WDCNTRWDCNTR清零。清零。應(yīng)用說明:應(yīng)用說明:u 使能看門狗或屏蔽看門狗模塊?看門狗時鐘倍率?使能看門狗或屏蔽看門狗模塊?看門狗時鐘倍率?WDCRWDCRu 希望看門狗中斷(從低功耗模式喚醒)還是希望看門狗中斷(從低功耗模式喚醒)還是復(fù)位復(fù)位(程序失控)?(程序失控)?SCSRSCSRu 程序運行過程程序運行過程周期性周期性的復(fù)位的復(fù)位WDCNTRWDCNTR。向。向WDKEYWDKEY 寫寫“0 x55+0
19、 xAA”u 如果程序失控,則復(fù)位或中斷如果程序失控,則復(fù)位或中斷DSP;否則看門狗不影響程序執(zhí)行。;否則看門狗不影響程序執(zhí)行。 提示:看門狗作為提高系統(tǒng)抗干擾能力的措施之一,是一種補(bǔ)救措施。提示:看門狗作為提高系統(tǒng)抗干擾能力的措施之一,是一種補(bǔ)救措施。20看門狗模塊框圖看門狗模塊看門狗模塊21 看門狗控制寄存器WDCRu 寫寫1 1到到WDDISWDDIS,屏蔽看門狗模塊;寫,屏蔽看門狗模塊;寫0 0使能看門狗模塊。使能看門狗模塊。u WDCHKWDCHK(2020)必須寫)必須寫101101,其它值會引起,其它值會引起DSPDSP復(fù)位。復(fù)位。u WDPSWDPS(2020)配置看門狗計數(shù)時
20、鐘:)配置看門狗計數(shù)時鐘: WDCLKWDCLKOSCCLK/512/OSCCLK/512/(1 16464)。)。u 看門狗中斷狀態(tài)標(biāo)志位看門狗中斷狀態(tài)標(biāo)志位WDFLAGWDFLAG: 讀:讀:1 1看門狗復(fù)位(看門狗復(fù)位(WDRSTWDRST);0;0器件復(fù)位器件復(fù)位 寫:寫:1 1將將WDFLAGWDFLAG清零;清零;0 0WDFLAGWDFLAG狀態(tài)不變狀態(tài)不變22使能/屏蔽看門狗模塊/ This function disables the watchdog timer.void DisableDog(void) EALLOW; SysCtrlRegs.WDCR= 0 x0068;
21、/WDDIS=1, WDCHK=101, EDIS; / WDPS=000 (WDCLK=OSCCLK/512)/ This function enables the watchdog timer.void EnableDog(void) EALLOW; SysCtrlRegs.WDCR= 0 x0028; /WDDIS=0, WDCHK=101, EDIS; / WDPS=000 (WDCLK=OSCCLK/512)23系統(tǒng)控制和狀態(tài)寄存器SCSRu WDENINTWDENINT: 1 1看門狗復(fù)位信號(看門狗復(fù)位信號(WDRSTWDRST)被屏蔽)被屏蔽, , 看門狗中斷信號使能(看門狗中
22、斷信號使能(WDINTWDINT) 0 0看門狗復(fù)位信號(看門狗復(fù)位信號(WDRSTWDRST)被使能)被使能, , 看門狗中斷信號屏蔽(看門狗中斷信號屏蔽(WDINTWDINT)u WDINTSWDINTS:看門狗中斷狀態(tài)位,反映:看門狗中斷狀態(tài)位,反映WDINTWDINT的狀態(tài)。的狀態(tài)。u WDOVERRIDEWDOVERRIDE: 1 1允許改變允許改變WDCRWDCR中的看門狗屏蔽位中的看門狗屏蔽位WDDISWDDIS;0 0不能改變不能改變WDDISWDDIS 清零后只有系統(tǒng)復(fù)位才允許改變該位的狀態(tài),清零后只有系統(tǒng)復(fù)位才允許改變該位的狀態(tài),用戶可讀取該位狀態(tài)用戶可讀取該位狀態(tài)。24看
23、門狗復(fù)位寄存器WDKEYu 依次寫依次寫0 x550 x550 xAA0 xAA到到WDKEYWDKEY將使將使WDCNTRWDCNTR清零;清零;u 寫其它任何值都會使看門狗復(fù)位;寫其它任何值都會使看門狗復(fù)位;u 讀該寄存器將返回讀該寄存器將返回WDCRWDCR寄存器的值。寄存器的值。/ This function resets the watchdog timer.void KickDog(void) EALLOW; SysCtrlRegs.WDKEY = 0 x0055; SysCtrlRegs.WDKEY = 0 x00AA; EDIS;如果系統(tǒng)使能看門狗模塊,需要在用戶程序中定時執(zhí)行
24、KickDog函數(shù),且定時器周期要小于看門狗計數(shù)器溢出周期。25看門狗計數(shù)寄存器WDCNTRu WDCNTRWDCNTR包含看門狗計數(shù)器的當(dāng)前計數(shù)值(包含看門狗計數(shù)器的當(dāng)前計數(shù)值(0 00 xFF0 xFF););u 如果計數(shù)器溢出,看門狗產(chǎn)生中斷或復(fù)位如果計數(shù)器溢出,看門狗產(chǎn)生中斷或復(fù)位DSPDSP;u 如果向如果向WDKEYWDKEY寫有效的組合寫有效的組合( 0 x55+0 xAA ),將使計,將使計數(shù)器清零。數(shù)器清零。看門狗定時器的周期最大值:OSCCLK/512/(1-64)/256。26初始化系統(tǒng)控制/ -This function initializes the System C
25、ontrol registers to a known state.程序功能:1、屏蔽看門狗模塊2、配置PLLCR寄存器,設(shè)定SYSCLKOUT的頻率 3、配置高速/低速外設(shè)時鐘的預(yù)定標(biāo)因子4、使能相應(yīng)外設(shè)時鐘 void InitSysCtrl(void) / Disable the watchdog DisableDog(); / Initialize the PLLCR to 0 xA InitPll(0 xA); / Initialize the peripheral clocks InitPeripheralClocks();實驗時,注意使能所使用的外設(shè)模塊時鐘,否則無法讀寫相應(yīng)的外設(shè)
26、寄存器。PLLCR通常設(shè)為10,即CPU的時鐘頻率為30MHz5。一、時鐘及系統(tǒng)控制一、時鐘及系統(tǒng)控制看門狗及其應(yīng)用看門狗及其應(yīng)用 計數(shù)寄存器計數(shù)寄存器WDCNTRWDCNTRReserved D15 D8 D7 D0 R-0 R/W-0WDCNTR 復(fù)位寄存器復(fù)位寄存器WDKEYWDKEYReserved D15 D8 D7 D0 R-0 R/W-0WDKEY 控制寄存器控制寄存器WDCRWDCRReserved D15 D8 R-0 R/W-0WDFLAG D7 D6 D5 D3 D2 D0 R/W-0 R/W-0WDPSWDDISWDCHK R - 0二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生
27、 通常程序是順序執(zhí)行的,即在連續(xù)的程序存儲器地址上通常程序是順序執(zhí)行的,即在連續(xù)的程序存儲器地址上取出指令并執(zhí)行。但有時程序需要轉(zhuǎn)移到不連續(xù)的地址,然取出指令并執(zhí)行。但有時程序需要轉(zhuǎn)移到不連續(xù)的地址,然后再連續(xù)執(zhí)行新地址處的指令。為此提供了轉(zhuǎn)移、調(diào)用、重后再連續(xù)執(zhí)行新地址處的指令。為此提供了轉(zhuǎn)移、調(diào)用、重復(fù)(循環(huán))和中斷指令。復(fù)(循環(huán))和中斷指令。 在執(zhí)行當(dāng)前指令的同時,程序流要求處理器生成下一個在執(zhí)行當(dāng)前指令的同時,程序流要求處理器生成下一個指令的程序地址(順序或非順序的)。指令的程序地址(順序或非順序的)。程序控制:控制一個或多個指令塊的執(zhí)行次序。程序控制:控制一個或多個指令塊的執(zhí)行次序。
28、二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 程序計數(shù)器程序計數(shù)器 PCPC:22bit,取指令時,對內(nèi)部和外部程序存儲器尋址。,取指令時,對內(nèi)部和外部程序存儲器尋址。 程序地址寄存器程序地址寄存器 PAR: PAR: 驅(qū)動程序地址總線,提供程序的讀、寫地址。驅(qū)動程序地址總線,提供程序的讀、寫地址。 堆棧堆棧STACKSTACK:16位寬位寬8級深,可保存級深,可保存8個返回地址個返回地址,也可將用作暫存存儲器。也可將用作暫存存儲器。 微堆棧微堆棧 MSTACK: MSTACK: 16位、位、1級深,保存一個返回地址。級深,保存一個返回地址。 重復(fù)計數(shù)器重復(fù)計數(shù)器 RPTCRPTC:16位,與重復(fù)指令
29、(位,與重復(fù)指令(RPT)一起,用來確定)一起,用來確定 RPT后面的一條指令重復(fù)執(zhí)行多次。后面的一條指令重復(fù)執(zhí)行多次。用到的硬件用到的硬件二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 順序操作:順序操作:程序的地址來源于程序的地址來源于PC程序計數(shù)器(程序地址程序計數(shù)器(程序地址+1) 空(?。┲芷冢嚎眨▎。┲芷冢撼绦虻牡刂穪碓从诔绦虻牡刂穪碓从赑AR (程序地址(程序地址+1) 從子程序返回:從子程序返回:程序的地址來源于棧頂(程序的地址來源于棧頂(TOS) 從表傳送或塊傳送返回:從表傳送或塊傳送返回:程序的地址來源于微堆棧(程序的地址來源于微堆棧(MSTACK) 轉(zhuǎn)移到或調(diào)用指令中指定的地址:轉(zhuǎn)
30、移到或調(diào)用指令中指定的地址:程序的地址來源于轉(zhuǎn)移或調(diào)用指程序的地址來源于轉(zhuǎn)移或調(diào)用指 令。即利用程序讀總線(令。即利用程序讀總線(PRDB)的方式獲取程序地址。)的方式獲取程序地址。 轉(zhuǎn)移到或調(diào)用累加器低半部分指定的地址:轉(zhuǎn)移到或調(diào)用累加器低半部分指定的地址:程序地址來源于累加程序地址來源于累加 器的低半部分。即利用數(shù)據(jù)讀總線(器的低半部分。即利用數(shù)據(jù)讀總線(DRDB)的方式獲取程序地址。)的方式獲取程序地址。 轉(zhuǎn)移到中斷服務(wù)程序:轉(zhuǎn)移到中斷服務(wù)程序:程序地址來源于中斷矢量單元。即利用程序讀總程序地址來源于中斷矢量單元。即利用程序讀總 線線 ( PRDB)的方式獲取程序地址。)的方式獲取程序地
31、址。程序地址產(chǎn)生的情況程序地址產(chǎn)生的情況二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 程序計數(shù)器程序計數(shù)器 PC PCPC中存放將被執(zhí)行的下一條指令的地址。中存放將被執(zhí)行的下一條指令的地址。 有有5 5種方式加載種方式加載PCPC,從而適應(yīng)連續(xù)和不連續(xù)的程序流程。,從而適應(yīng)連續(xù)和不連續(xù)的程序流程。二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 順序執(zhí)行順序執(zhí)行:若當(dāng)前指令是一個字,則將若當(dāng)前指令是一個字,則將PC+1加載到加載到PC 若當(dāng)前指令是兩個字,則將若當(dāng)前指令是兩個字,則將PC+2加載到加載到PC 分支(轉(zhuǎn)移):分支(轉(zhuǎn)移):轉(zhuǎn)移指令后的長立即數(shù)直接加載到轉(zhuǎn)移指令后的長立即數(shù)直接加載到PC 子程序調(diào)用和
32、返回子程序調(diào)用和返回 : 調(diào)用指令調(diào)用指令 將將PC中下一條指令的地址壓入堆棧,然后將調(diào)用指令后的長中下一條指令的地址壓入堆棧,然后將調(diào)用指令后的長 立即數(shù)直接加載到立即數(shù)直接加載到PC 返回指令返回指令 將返回地址從堆棧中彈回將返回地址從堆棧中彈回PC軟件或硬件中斷:軟件或硬件中斷:將相應(yīng)的中斷矢量地址裝入將相應(yīng)的中斷矢量地址裝入PC,在該矢量地址單元,通,在該矢量地址單元,通 常有一條轉(zhuǎn)移指令,又將相應(yīng)的中斷服務(wù)程序的地址加載到常有一條轉(zhuǎn)移指令,又將相應(yīng)的中斷服務(wù)程序的地址加載到PC 計算轉(zhuǎn)移:計算轉(zhuǎn)移:將累加器低將累加器低16位加載到位加載到PC 利用利用BACC或或CALA指令可實現(xiàn)計
33、算指令可實現(xiàn)計算GOTO操作操作程序計數(shù)器程序計數(shù)器 PC二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 1616位寬、位寬、8 8級深級深 當(dāng)調(diào)用子程序或發(fā)生中斷時,程序地址產(chǎn)生邏輯利用當(dāng)調(diào)用子程序或發(fā)生中斷時,程序地址產(chǎn)生邏輯利用 該堆棧保存返回地址該堆棧保存返回地址 進(jìn)入子程序或中斷服務(wù)程序時,返回地址自動裝入該進(jìn)入子程序或中斷服務(wù)程序時,返回地址自動裝入該 堆棧的棧頂;當(dāng)子程序或中斷服務(wù)程序完成時,返回堆棧的棧頂;當(dāng)子程序或中斷服務(wù)程序完成時,返回 指令將返回地址從棧頂傳送到程序計數(shù)器。指令將返回地址從棧頂傳送到程序計數(shù)器。 訪問堆棧的指令訪問堆棧的指令 PUSH和和POP:針對累加器低:針對累
34、加器低16位操作。位操作。 PSHD和和POPD:當(dāng)子程序或中斷嵌套超過:當(dāng)子程序或中斷嵌套超過8級時可利用這兩條指令在級時可利用這兩條指令在 數(shù)據(jù)存儲區(qū)中建立一個堆棧。數(shù)據(jù)存儲區(qū)中建立一個堆棧。堆堆棧棧二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 堆堆棧棧例例子子二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 堆棧例子堆棧例子二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 一級深、一級深、1616位寬,操作不可見,即無指令,只有程序位寬,操作不可見,即無指令,只有程序 地址產(chǎn)生邏輯才能夠使用微堆棧。地址產(chǎn)生邏輯才能夠使用微堆棧。 程序地址產(chǎn)生邏輯在執(zhí)行程序地址產(chǎn)生邏輯在執(zhí)行BLDDBLDD、BLPDBLPD、MACMA
35、C、MACDMACD、 TBLR TBLR 和和TBLW TBLW 這些串(塊)操作指令時利用微堆棧保這些串(塊)操作指令時利用微堆棧保 存返回地址。存返回地址。微微堆堆棧棧二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 ,二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 流流水水線線技技術(shù)術(shù) 下面給出了一個四級深流水線操作圖。同時執(zhí)行四條下面給出了一個四級深流水線操作圖。同時執(zhí)行四條 指令,但每一條指令處于不同的階段指令,但每一條指令處于不同的階段單字、單周期指令單字、單周期指令4級流水線操作級流水線操作 二、二、程序地址的產(chǎn)生程序地址的產(chǎn)生 流流水水線線技技術(shù)術(shù) 對對F2812每條指令都要經(jīng)過每條指令都要經(jīng)過8個獨立的執(zhí)行過程,個獨立的執(zhí)行過程,這這8個過程形成了指令流水線個過程形成了指令流水線(instruction pipeline)。在每一個給定的時間內(nèi),有在每一個給定的時間內(nèi),有8條指令被激活,每一指條指令被激活,每一指令處在執(zhí)行過程中的不同階段。并不是所有的指令令處在執(zhí)行過程中的不同階段。并不是所有的指令都會同時發(fā)生讀寫操作,但是
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 敏感肌舒緩修復(fù)霜企業(yè)制定與實施新質(zhì)生產(chǎn)力項目商業(yè)計劃書
- 體育經(jīng)紀(jì)在線平臺行業(yè)深度調(diào)研及發(fā)展項目商業(yè)計劃書
- 酒吧行業(yè)跨境出海項目商業(yè)計劃書
- 人造板校園宣講活動創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 仿皮帶環(huán)保竹制扣頭創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 化工廠勞動力、機(jī)械設(shè)備和材料投入計劃
- 大型施工工地治安防控方案計劃
- 經(jīng)典誦讀興趣小組文藝匯演計劃
- PEP人教版小學(xué)英語三年級下冊課程反饋收集計劃
- 教師新學(xué)期教學(xué)技能培訓(xùn)計劃
- 陜西省專業(yè)技術(shù)人員繼續(xù)教育2025公需課《黨的二十屆三中全會精神解讀與高質(zhì)量發(fā)展》20學(xué)時題庫及答案
- 學(xué)習(xí)通《科研誠信與學(xué)術(shù)規(guī)范》課后及考試答案
- 百詞斬雅思核心詞匯
- PFMEA模板完整版文檔
- 道路交通安全法律法規(guī)知識測試題
- 國際籃聯(lián)記錄表
- 大學(xué)生親社會行為量表(前測)問卷正式版
- 煤礦培訓(xùn):自救器課件
- 空心玻璃微珠項目資金申請報告寫作模板+
- 藥品管理學(xué)概論(藥品管理學(xué))
- 重復(fù)測量資料統(tǒng)計分析
評論
0/150
提交評論