中斷服務函式管理

2021-09-24 11:34:15 字數 1055 閱讀 5475

中斷函式的結構

這裡是由硬體檢測到中斷訊號跳轉過來

o_irq:

/* 執行到這裡之前:

* 1. lr_irq儲存有被中斷模式中的下一條即將執行的指令的位址

* 2. spsr_irq儲存有被中斷模式的cpsr

* 3. cpsr中的m4-m0被設定為10010, 進入到irq模式

* 4. 跳到0x18的地方執行程式

*/

/* sp_irq未設定, 先設定它 */

ldr sp, =0x33d00000

/* 儲存現場 */

/* 在irq異常處理函式中有可能會修改r0-r12, 所以先儲存 */

/* lr-4是異常處理完後的返回位址, 也要儲存 */

sub lr, lr, #4

s***b sp!,

/* 處理irq異常 */

bl handle_irq_c

/* 恢復現場 */

ldmia sp!, ^ /* ^會把spsr_irq的值恢復到cpsr裡 */

定義乙個函式指標陣列,存放中斷服務函式

typedef void(*irq_func)(int);

irq_func irq_array[32];

中斷服務函式註冊函式

void register_irq(int irq, irq_func fp)

中斷服務函式 對實體的中斷服務函式進行管理、呼叫

void handle_irq_c(void)

void key_eint_irq(int irq)

else

}else if (irq == 2) /* eint2 : s3 控制 d11 */

else

}else if (irq == 5) /* eint8_23, eint11--s4 控制 d10, eint19---s5 控制所有led */

else

}else if (val & (1<<19)) /* eint19 */

else

}}eintpend = val;

微控制器 C語言函式 中斷函式(中斷服務程式)

在開始寫中斷函式之前,我們來一起回顧一下,微控制器的中斷系統。中斷的意思 學習過微機原理與接 術的同學,沒學過微控制器,也應該知道 我們在這裡就不講了,首先來回憶下中斷系統涉及到哪些問題。1 中斷源 中斷請求訊號的 8051有3個內部中斷源t0,t1,序列口,2個外部中斷源int0,int1 這兩個...

微控制器 C語言函式 中斷函式(中斷服務程式)

在開始寫中斷函式之前,我們來一起回顧一下,微控制器的中斷系統。中斷的意思 學習過微機原理與接 術的同學,沒學過微控制器,也應該知道 我們在這裡就不講了,首先來回憶下中斷系統涉及到哪些問題。1 中斷源 中斷請求訊號的 8051有3個內部中斷源t0,t1,序列口,2個外部中斷源int0,int1 這兩個...

利用CSL API函式管理DSP CPU中斷總結

專案過程中的關於dsp晶元中斷的一些經驗終結 首先,dsp晶元的csl 片上支援庫 api函式提供了對cpu中斷的管理模組irq,我們在做turbo編譯碼模組的專案中,在對硬體中斷進行初始化的過程中,使用了irq模組 我對其中的某幾個函式簡要分析一下,irq setvecs 功能 設定中斷向量表的基...