外部中斷處理和內(nèi)部中斷處理的差異性
mtsr $r0, $IVB !write $IVB
INTC相關(guān)程序片斷:
INTC通常支持不同的中斷觸發(fā)方式,包含Interrupt Masking、Interrupt Trigger Mode、Interrupt Trigger Level …等。在開(kāi)始使用每個(gè)中斷來(lái)源之前,這些控制選項(xiàng)都必須在INTC上設(shè)定正確。
3. 模擬結(jié)果
將上述的Reference Design整合完成后,搭配測(cè)試程序進(jìn)行仿真,并藉由波形圖來(lái)觀察不同中斷模式下,相關(guān)中斷訊號(hào)線的變化。
3.1 IVIC模擬結(jié)果
在IVIC仿真環(huán)境中,主要測(cè)試程序如下:
l 由GPIO觸發(fā)一中斷,并將中斷傳遞給CPU
l CPU接收到中斷后,執(zhí)行相對(duì)應(yīng)的中斷處理程序
仿真結(jié)果如圖表11所示,當(dāng)GPIO觸發(fā)中斷后,將中斷直接傳遞給CPU,在CPU端的int_req訊號(hào)線會(huì)觸發(fā),表示有中斷發(fā)生。當(dāng)CPU收到中斷訊號(hào)后,接著會(huì)處理相對(duì)應(yīng)的中斷處理程序。
3.2 EVIC模擬結(jié)果
在EVIC仿真環(huán)境中,主要測(cè)試程序如下:
l 由GPIO觸發(fā)一中斷
l 此時(shí)INTC設(shè)罝為EVIC模式,并將中斷訊號(hào)和相關(guān)溝通訊號(hào)傳遞給CPU
l CPU接收到中斷后,會(huì)將響應(yīng)訊號(hào)拉起,告知INTC收到該中斷,并執(zhí)行相對(duì)應(yīng)的中斷處理程序
仿真結(jié)果如圖表12所示,當(dāng)GPIO觸發(fā)中斷后,INTC將中斷和相關(guān)溝通訊號(hào)(ireqval)傳遞給CPU,在CPU端的int_req訊號(hào)線和evic_ireqval訊號(hào)線會(huì)觸發(fā),表示有中斷發(fā)生。當(dāng)CPU收到中斷訊號(hào)后,會(huì)將evic_ireqack訊號(hào)線拉起,告知INTC收到中斷。仿真結(jié)果如同章節(jié)1.2和圖表5所論述。
結(jié)語(yǔ)
在AndesCore? N968A-S 所提供的兩種中斷模式里,其中的IVIC模式使用CPU內(nèi)的中斷控制器來(lái)處理中斷,此模式對(duì)用戶(hù)來(lái)說(shuō),只要將中斷來(lái)源和CPU端的中斷訊號(hào)連接即可,相當(dāng)容易整合。若用戶(hù)所設(shè)計(jì)的系統(tǒng)里,中斷來(lái)源數(shù)目超過(guò)IVIC模式所支持,或者系統(tǒng)需要更復(fù)雜的優(yōu)先權(quán)選擇時(shí),則可選用EVIC模式。在EVIC模式下,用戶(hù)需額外設(shè)計(jì)外部中斷控制器,并整合相關(guān)溝通訊號(hào)。因此,用戶(hù)可根據(jù)本身系統(tǒng)的復(fù)雜度和整合的難易度,來(lái)選擇適合的中斷處理模式。
評(píng)論