?? interrupt.c
字號:
#include "s3c2410.h"#include "interrupt.h"#include "serial.h"#include "sched.h"void IRQ_Handle(){ unsigned long oft = INTOFFSET; switch( oft ) { case EINT1_OFT: printk("EINT1, K1 pressed!\n\r"); break; case EINT2_OFT: printk("EINT2, K2 pressed!\n\r"); break; case EINT3_OFT: printk("EINT3, K3 pressed!\n\r"); break; case EINT4_7_OFT: printk("EINT7, K4 pressed!\n\r"); break; case INT_TIMER0_OFT: do_timer(); break; default: printk("Interrupt unknown!\n\r"); break; } //清中斷 if( oft == 4 ) EINTPEND = 1<<7; //EINT4-7合用IRQ4,注意EINTPEND[3:0]保留未用,向這些位寫入1可能導致未知結果 SRCPND = 1<<oft; INTPND = INTPND; }void OS_ENTER_CRITICAL(){__asm__( "mrs r0, cpsr\n" /*讀cpsr*/ "orr r0, r0, #0x80\n" /*I-bit=1*/ "msr cpsr_c, r0\n" /*設置I-bit=1,禁止IRQ中斷*/ ); }void OS_EXIT_CRITICAL(){__asm__( "mrs r0, cpsr\n" /*讀cpsr*/ "bic r0, r0, #0x80\n" /*I-bit=0*/ "msr cpsr_c, r0\n" /*設置I-bit=0,開IRQ中斷*/ ); }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -