中斷處理流程深度剖析


1、中斷概念

cpu在工作的過程中,進程需要與外設進行交互,交互的方式包括“輪詢方式”,“中斷方式”。

a、輪詢方式:cpu不斷地查詢設備的狀態。cpu利用率很低,不適合多任務的系統。

b、中斷方式:cpu在告知硬件開始一項工作后,就去做別的事去了,當硬件完成了該項工作后,向cpu發送一個信號,告知CPU它已經完成了這項工作。

2、中斷生命周期

 中斷信號產生(中斷源)--->中斷信號過濾(中斷控制器)--->中斷信號處理(CPU)

3、中斷源

在中斷的生命周期中,中斷源的作用是負責產生中斷信號。

a、s3c2440支持60個中斷源。

,還包括一些子中斷源等等

b、s3c6410

支持64個中斷源

等等

4、中斷過濾

2440的過濾圖

這里選擇串口0的子中斷發送tx0為例:當tx0發送數據后,會產生中斷到SUBSRCPND,該SUBSRCPND寄存器的每一位對應一個子中斷,對應中斷產生,相應位置一。通過SUBMASK來進行過濾,它也是每一位對應一個子中斷,當對應位置一,則屏蔽掉該位的中斷;如果沒有屏蔽,則它會把SRCPND對應的為置一,還要通過MASK寄存器進行過濾,它的每一位對應一個中斷源(而非子中斷源);該寄存器對應位為一則屏蔽掉。如果沒有屏蔽,則可以交給處理器來處理了,但是什么時候交,還有一個優先級的判斷;因為在同一時刻可能產生多個中斷,各個中斷的優先級不一樣;選擇最優的中斷交給處理器處理。mode用來設置到底是快速中斷還是普通中斷;

當信號交給cpu后,由cpu來處理了,cpu進行中斷處理有兩種方式:非向量方式(2440)、向量方式(6410/210)。

對於2440的非向量方式

中斷程序總入口(唯一的入口)-->保存環境-->判斷中斷源-->調用對應中斷源的中斷處理程序-->恢復環境。

對於6410/210的中斷處理

當中斷產生時CPU直接跳轉到用戶設置好的中斷處理程序處-->保存環境-->設備的中斷處理-->恢復環境。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM