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直接跳轉到用戶設置好的中斷處理程序處-->保存環境-->設備的中斷處理-->恢復環境。