S3C2440的中斷機制

2021-10-08 03:42:03 字數 2022 閱讀 3427

1.中斷原理圖

2.中斷過程

①. 如果是不帶子中斷的內部中斷:發生後srcpnd相應位置1,那麼等待進一步處理。

②.如果是帶子中斷的內部中斷:發生後subsrcpnd相應位置1,如果沒有被intsubmsk遮蔽,那 麼srcpnd相應位置1,等待進一步處理

③.如果是外部中斷:eint0-eint3發生後srcpnd相應位置1,如果沒有被intmsk遮蔽,那麼等待進一步處理。eint4-eint23發生後eintpend相應位置1,如果沒有被eintmask遮蔽,那麼srcpnd相應位eint4-7 或eint8-23置1,如果沒有被intmsk遮蔽,等待進一步處理

三種中斷都等待進一步處理了。接下來從srcpnd往下看,看intmsk。如果中斷被遮蔽了,就不用說了(注意:快中斷也能被遮蔽)。如果沒有被遮蔽,那麼會進一步到intmod。如果是快中斷,那麼直接出來,進入fiq(即cpu進入快中斷模式處理)。如果是普通中斷,那麼srcpnd可以有多為置1(fiq只能有乙個),表示多個中斷同時請求,這時就會經過priority(優先順序)選出乙個優先順序高的,然後把根據選出的中斷把intpnd相應位置1(注意:只能選出乙個),進入irq,讓cpu處理。

3.中斷開啟

①.如果是不帶子中斷的內部中斷,只需設定intmsk,讓它不遮蔽中斷就可以了。

②.如果是帶子中斷的內部中斷,需設定intsubmsk和intmsk,讓它們不遮蔽中斷就可以了。

③.如果是外部中斷,對於eint8-23需要設定eintmask和intmsk。對於eint0-eint3只需設定intmsk。

4.中斷清除

①.如果是不帶子中斷的內部中斷,先清除srcpnd,注意清除需位置1,再清除intpnd。

②.如果是帶子中斷的內部中斷,需清除srcpnd和subsrcpnd,注意先清除subsrcpnd,再清除srcpnd,最後清除intpnd。因為,如果你先清除srcpnd的話,然後在清除subsrcpnd的過程中,srcpnd會以為又有中斷發生,又會置1。也就是說一次中斷會響應兩次。所以必須先掐斷源頭。

③.如果是外部中斷,對於eint8-23需要清除eintpend和srcpnd(同樣注意順序)。對於eint0-eint3只需清除srcpnd。

5.外部中斷暫存器

24個外部中斷占用gpf0-gpf7(eint0-eint7),gpg0-gpg15(eint8-eint23)。用這些腳做中斷輸入,則必須配置引腳為中斷,並且不要上拉。

①.extint0-extint2:分別設定eint0—eint7、eint8—eint15、eint16—eint23的觸發方式(高電平觸發、低電平觸發、下降沿觸發、上公升沿觸發)。

②. eintflt0-eintflt3:控制濾波時鐘和濾波寬度。

③.eintpend:這個是中斷掛起暫存器,清除時要寫1。當乙個外部中斷(eint4-eint23)發生後,那麼相應的位會被置1。eint0-eint3,分別由srcpnd暫存器的後4位控制。

④. eintmask:這個簡單,是遮蔽中斷用的,也就是說位為1時,此次中斷無效

6.內部中斷暫存器

①. subsrcpnd:當乙個中斷發生後,那麼相應的位會被置1,表示乙個中斷發生了。

②. intsubmsk:與上乙個是一樣的,中斷遮蔽暫存器。

③. srcpnd:當乙個中斷發生後,那麼相應的位會被置1,表示乙個或一類中斷發生了。

④.intmsk:用來遮蔽srcpnd暫存器所標識的中斷。但只能遮蔽irq中斷,不能遮蔽fiq中斷。

⑤. intmod:當intmod中某位被設定為1時,它對應的中斷被設為fiq,cpu將進入快速中斷模式。

⑥.priority:用於設定irq中斷的優先順序。具體使用方法可參考晶元手冊。

⑦.intpnd:中斷優先順序仲裁器選出優先順序最高中斷後,這個中斷在intpnd暫存器中的相應位被置1,隨後,cpu進入中斷模式處理它。同一時間內,此暫存器只有一位被置1。

⑧.intoffset:用來表示intpnd暫存器中哪位被置1了。清除intpnd、srcpnd時自動清除。

s3c2440外部中斷操作

要想正確地執行2440的外部中斷,一般需要完成兩個部分內容 中斷初始化和中斷處理函式。在具體執行中斷之前,要初始化好要用的中斷。2440的外部中斷引腳eint與通用io引腳f和g復用,要想使用中斷功能,就要把相應的引腳配置成中斷模式,如我們想把埠f0設定成外部中斷,而其他引腳功能不變,則gpfcon...

S3C2440彙編中斷程式

雖然現在c語言已經成為主流力量,但是我還是非常喜歡用彙編寫 的高效率,高速度是有天獨厚的,但我更喜歡他那種 指哪打哪 的高透明。265m的ram任你主宰,想把那句話放在哪,就放在哪。這種任性你懂嗎?學習中斷程式兩大感悟 自己卡住的地方 2,位址切記不要寫錯。我就是在這裡卡了將近一天時間。s3c244...

S3c2440中斷學習

中斷功能在微控制器上一直在用,今天學習在2440上用外部中斷的方式,實現按鍵檢測功能。1.中斷生命週期 中斷源,中斷過濾,中斷處理 1.1 中斷源 2440有60個中斷源。1.2 中斷過濾 有兩個關卡,submask和mask,中斷方式有mode控制。1.3 中斷處理 非向量方式 2440 向量方式...