ARM裸機(jī)開發(fā)222440中斷原理
通常有以下三種方式
本文引用地址:http://m.butianyuan.cn/article/201611/318241.htm1.查詢方式
2.中斷方式
3.DMA方式(在獨(dú)立開辟的一個(gè)空間不由CPU控制,有DMA自己進(jìn)行管理。實(shí)現(xiàn)存儲(chǔ)器與外設(shè)的高速的數(shù)據(jù)傳輸方式)
主要講中斷:
中斷請(qǐng)求---->中斷仲裁---->中斷響應(yīng)---->中斷處理---->中斷返回(要保存現(xiàn)場(chǎng))
中斷處理流程:
1.中斷控制器捕獲當(dāng)前外設(shè)發(fā)出的中斷信號(hào),通知SOC(中央處理芯片:片上系統(tǒng))
2.SOC保存當(dāng)前程序的運(yùn)行環(huán)境,調(diào)用中斷服務(wù)程序(ISR:一小段代碼)進(jìn)行處理中斷
3.在ISR中通過讀取中斷控制寄存器、外設(shè)的相關(guān)寄存器來識(shí)別那一個(gè)中斷觸發(fā),獲取硬件中斷號(hào)IRQ,跳轉(zhuǎn)到相應(yīng)的處理程序(詳細(xì)完整的處理程序)來完成中斷處理
4.清除中斷:通過讀寫相關(guān)寄存器
5.恢復(fù)被中斷的環(huán)境,繼續(xù)執(zhí)行(現(xiàn)場(chǎng))
2440有60個(gè)中斷源
一級(jí)中斷源,二級(jí)中斷源等的概念
圖片中的所指示的單元為相應(yīng)的寄存器
懸掛寄存器source pending(SUBSRCPND、SRCPND)清零方式為向相應(yīng)的位寫1.與 常規(guī)的清零方式不同。INTPND也是通過寫1進(jìn)行清0操作
INTOFFSET:這個(gè)寄存器用來表示INTPND寄存器中哪位被置1了,即INTPND寄存器中位為1時(shí),INTOFFSET寄存器的值為x(x為0~31)
在清除SRCPND、INTPND寄存器時(shí),INTOFFSET寄存器被自動(dòng)清除。
具體內(nèi)容詳見芯片手冊(cè)S3C2440
外部中斷:
外部中斷也有相關(guān)的寄存器EXTINTx,EINTMASK,EINTPEND三個(gè)寄存器
EXTINTx設(shè)置中斷的觸發(fā)方式低電平,高電平,上升沿,下降沿,邊沿觸發(fā)
EINTMASK
EINTPEND中斷懸掛寄存器(相應(yīng)中斷觸發(fā),相應(yīng)的位置1)讀取此寄存器可以知道是那一個(gè)寄存器被觸發(fā)了
評(píng)論