資源描述:
《實(shí)驗(yàn)五 定時(shí)器中斷方式實(shí)驗(yàn).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、實(shí)驗(yàn)五定時(shí)器中斷方式實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康亩?、?shí)驗(yàn)原理三、實(shí)驗(yàn)內(nèi)容四、實(shí)驗(yàn)思考題一、實(shí)驗(yàn)?zāi)康?.掌握5402DSP中斷和中斷的處理過程;2.掌握5402DSP中斷向量地址的修改;3.學(xué)習(xí)中斷初始化編寫方法4.學(xué)習(xí)中斷向量表的編寫1.DSP中斷2.中斷處理過程3.中斷向量地址的重新安排4.DSP定時(shí)器中斷的初始化方法5.中斷向量表的編寫二、實(shí)驗(yàn)原理中斷是由硬件或軟件驅(qū)動(dòng)的信號(hào),使DSP暫停主程序而執(zhí)行中斷服務(wù)程序(ISR)。軟件驅(qū)動(dòng):來自程序指令(由INTR、TRAP或RESET產(chǎn)生)硬件驅(qū)動(dòng):來自外部硬件中斷;或片上外設(shè)的內(nèi)部硬件中斷。當(dāng)多個(gè)硬件中斷同
2、時(shí)觸發(fā)時(shí),DSP按照優(yōu)先級(jí)別響應(yīng)。1.DSP中斷中斷按可屏蔽性分類:第一類:可屏蔽性中斷,可以用軟件進(jìn)行屏蔽。C54DSP最多支持16個(gè)用戶可屏蔽中斷,見IMR內(nèi)容。第二類:非屏蔽性中斷。包括所有的軟件中斷或兩個(gè)外部硬件中斷RS#和NMI#(這兩中斷也可以使用軟件進(jìn)行中斷)1.DSP中斷(續(xù))IFR和IMR都是MMR寄存器。IFR:當(dāng)出現(xiàn)中斷時(shí),IFR相應(yīng)中斷標(biāo)志位置1。有4中情況中斷標(biāo)志位清0:(1)DSP復(fù)位(RS#為低電平);(2)中斷得到處理;(3)將1寫如IFR中的相應(yīng)位(則相應(yīng)位變成0),中斷沒有處理完就被清除。(4)利用適當(dāng)?shù)闹袛嗵?hào)
3、執(zhí)行INTR指令,相應(yīng)的中斷標(biāo)志清0。中斷標(biāo)志寄存器IFR和中斷屏蔽寄存器IMRIMR:屏蔽外部或內(nèi)部中斷。如果ST1中的INTM=0,IMR寄存器某位為1,就開放相應(yīng)的中斷。(INTM:中斷模式,屏蔽或使能所有中斷,INTM=0所有非屏蔽中斷使能,INTM=1所有可屏蔽中斷無效)中斷標(biāo)志寄存器IFR和中斷屏蔽寄存器IMRIFR和IMR寄存器位定義詳見:TMS320C54xDSPReferenceSet:CPUandPeripheralsSPRU131G.pdf54xDSP處理中斷分3個(gè)階段:第一個(gè)階段:接受中斷請求第二個(gè)階段:響應(yīng)中斷第三個(gè)階段
4、:執(zhí)行中斷服務(wù)程序2.中斷處理的過程:三個(gè)階段(1)當(dāng)硬件或軟件指令請求中斷時(shí),IFR中的相應(yīng)位置1(2)硬件中斷名稱見IFR,軟件中斷:INTR、TRAP和RESET。INTRK:可用來執(zhí)行任何一個(gè)中斷服務(wù)程序。K是中斷向量位置,屬不可屏蔽中斷不受ST1的INTM影響。CPU響應(yīng)INTR時(shí),INTM置1關(guān)閉其他可屏蔽中斷。TRAPK:區(qū)別于INTR在于,不影響INTM。RESET:不可屏蔽,影響ST0和ST1,不影響PMST。第一個(gè)階段:接受中斷請求對于軟件中斷或其他非屏蔽中斷,CPU立即響應(yīng)。對于可屏蔽中斷,只有滿足如下條件才能響應(yīng):(1)優(yōu)
5、先級(jí)最高(同時(shí)出現(xiàn)的中斷)(2)ST1中INTM=0(所有非屏蔽中斷使能)(3)IMR中相應(yīng)位=1(開放相應(yīng)的中斷)CPU相應(yīng)中斷時(shí),PC轉(zhuǎn)向適當(dāng)?shù)牡刂啡〕鲋袛嘞蛄?,并發(fā)出中斷響應(yīng)信號(hào)IACK#,清除相應(yīng)的中斷標(biāo)志。第二個(gè)階段:響應(yīng)中斷響應(yīng)中斷后,CPU執(zhí)行如下動(dòng)作:(1)入棧。將PC值(返回地址)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器堆棧的棧頂;(2)將中斷向量的地址加載到PC中;(3)在中斷向量地址上取指,執(zhí)行分支指令轉(zhuǎn)到中斷服務(wù)程序,并執(zhí)行中斷服務(wù)程序;(4)出棧。中斷返回,從堆棧中彈出返回地址到PC。(5)繼續(xù)執(zhí)行被中斷了的程序。C語言中斷服務(wù)程序中(1)~(
6、3)由C編譯器自動(dòng)完成。第三個(gè)階段:執(zhí)行中斷服務(wù)程序中斷操作的流程圖本實(shí)驗(yàn)中的C語言編寫定時(shí)器中斷服務(wù)程序:2.中斷處理的過程(續(xù))interruptvoidtimer0_isr(void){if(xf_flag){asm("SSBXXF");xf_flag=0;}{asm("RSBXXF");xf_flag=1;}2.中斷處理的過程(續(xù))count++;if(count==50)//50*10=500ms{board_led_toggle(BRD_LED0);//LED0flashevery500mscount=0;}}2.中斷處理的過程(續(xù))
7、將上述C程序編寫的中斷服務(wù)程序進(jìn)行反匯編,可以看得出,在中斷服務(wù)程序中加入了22個(gè)MMR寄存器的保存(壓棧)和恢復(fù)(出棧)指令。其中包括狀態(tài)寄存器ST1。DSP復(fù)位后,中斷向量地址是可以更改的。54x中斷向量地址組成:中斷向量地址由IPTR(中斷向量指針,9位,在PMST中)和左移2位后的中斷向量序號(hào)(0~31,左移2位變成7位)組成。見131.pdf第189頁Table6–26.TMS320C5402InterruptLocationsandPriorities。3.中斷向量地址的重新安排中斷向量地址的重新安排(續(xù))例如:如果IPTR=0001
8、h,DSP響應(yīng)INT0#,PC得到的中斷向量地址計(jì)算。由于INT0#的序號(hào)為16(10h),左移2位后變?yōu)?0h,所以中斷向量地址000