DSP BIOS硬體中斷管理

2021-06-10 02:52:53 字數 1248 閱讀 2129

使用dsp/bios 核心開發應用程式,使用者不能隨意修改中斷向量表的位置,該中斷向量表將有dsp/bios 配置檔案中的mem模組決定。

1.硬體中斷isr的呼叫:(1)使用dsp/bios配置工具靜態呼叫isr函式

(2)使用hwi_dispatchplug等函式動態指定isr函式

當硬體中斷的isr不使用dsp/bios提供的排程程式時,在該isr呼叫任何影響dsp/bios物件的api之前,如需傳送乙個旗語或啟動乙個swi,必須呼叫hwi_enter彙編巨集。一旦呼叫了hwi_enter彙編巨集,在isr結束時還要呼叫hwi_exit.具體來講這些api有:

swi_andn:該函式提供的引數與郵箱值做「與」運算,若郵箱為0,則啟動該軟體中斷;

swi_andnhook

swi_dec:郵箱值減1,若郵箱為0,則啟動該軟體中斷,並恢復郵箱到初始值;

swi_inc:啟動該軟體中斷,並對郵箱值加1;

swi_or:啟動該軟體中斷,並且郵箱值與該函式提供的引數做「或」運算;

swi_orhook

swi_post:啟動軟體中斷;

pip_alloc

pip_free

pip_get

pip_put

prd_tick

sem_post

mbx_post

tsk_yield

tsk_tick

2.編寫硬體中斷isr注意點:

1)在乙個硬體中斷請不要呼叫swi_disable和swi_enable

2)在nmi(不可遮蔽中斷)的isr中不要使用hwi_enter、hwi_exit以及其他任何api函式

3)當硬體中斷的isr使用dsp/bios的hwi排程程式時,不要再使用hwi_enter、hwi_exit

4)當任何有關pip的api呼叫時該管道的讀通知和寫通知函式都會執行,所以,當硬體中斷isr呼叫的pip的api函式時,這些函式將作為isr的一部分

5)當硬體中斷isr呼叫了hwi_enter、hwi_exit(無論dsp/bios呼叫還是自己呼叫),中斷允許重新開啟,這時在乙個硬體中斷中可以響應另乙個硬體中斷

3.hwi模組的api函式

hwi_disable:禁止硬體中斷

hwi_enable:允許硬體中斷

hwi_enter:硬體中斷進入部分巨集定義

hwi_exit:硬體中斷isr退出部分巨集定義

hwi_restore:恢復硬體中斷狀態

hwi_dispatchplug:插入硬體中斷isr函式

硬體中斷 上下部

1.硬體中斷是由硬體觸發,通過電訊號通知到cpu,cpu根據中斷號尋找對應的中斷服務例程進行處理。中斷時需要關閉中斷線上的相同中斷,因此為了快速響應,需要將中斷處理的過程分成上半部和下半部 需要積極快速響應的 不可以併發處理的 涉及到硬體的 例如網絡卡資料拷貝到記憶體的過程 放在上半部,可以推後處理...

中斷系統的硬體結構

ie0 外部中斷0申請標誌位 0 沒有外部中斷申請 1 有外部中斷申請 tf0 定時器0溢位中斷申請標誌位 0 定時器未溢位 1 定時器溢位申請中斷,進中斷後自動清零 ie1 外部中斷1申請標誌位 0 沒有外部中斷申請 1 有外部中斷申請 tf1 定時器1溢位中斷申請標誌位 0 定時器未溢位 1 定...

linux 的硬體中斷向量號

rom bios 時鐘中斷是08號中斷,linux 中怎樣變成了0x20號中斷?8259a 是可程式設計中斷控制器晶元,可管理8個中斷源。通過級聯可最多管理64個中斷源 pc at 使用了2片8259a,占用位址0x20 0x3f 0xa0 0xbf 範圍,共可產生16個中斷源。中斷向量號號是可以程...