int.c

来自「一个基于ARM9的操作系统, 实现了很多的功能,包括内存管理,进程创建等」· C语言 代码 · 共 64 行

C
64
字号
/*
* file:
*       int.c
* description:
*       interrupt controller code.
*/

void int_ctrl_init(void)
{
    rINTMOD = 0x00000000;
    rINTMSK = 0xffffffff;
    rEINTPEND  = 0x00fffff0;
    rEINTMASK  = 0x00000000;
    rSUBSRCPND = 0x7ff;
    rINTSUBMSK = 0x000;
    rSRCPND = 0xffffffff;
    rINTPND = 0xffffffff;
}


void int_ctrl_set_mode(int irq, int mode)
{
    if(mode)
        rINTMOD |= (0x01<<irq);
    else
        rINTMOD &= ~(0x01<<irq);
}


int int_ctrl_get_mode(int irq)
{
    return (rINTMOD & (0x1<<irq)) ? 1 : 0;
}


void int_ctrl_enable_irq(int irq, int enable)
{
    if(enable)
        rINTMSK &= ~(0x01<<irq);
    else
        rINTMSK |= (0x01<<irq);
}


void int_ctrl_clear_status(int irq)
{
}


void int_ctrl_clear_irq(int irq)
{
#if 0
    if(irq == 4 || irq == 5) /* BIT_EINT4_7, BIT_EINT8_23 */
        rEINTPEND = rEINTPEND;
    rSUBSRCPND = rSUBSRCPND;
#endif

    rSRCPND = (0x01<<irq);
    rINTPND = (0x01<<irq);
}


/* end of file */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?