var_intr.h

来自「eCos操作系统源码」· C头文件 代码 · 共 1,900 行 · 第 1/5 页

H
1,900
字号
    case CYGNUM_HAL_INTERRUPT_IMB3_TPUB_CH12:    case CYGNUM_HAL_INTERRUPT_IMB3_TPUB_CH13:    case CYGNUM_HAL_INTERRUPT_IMB3_TPUB_CH14:    case CYGNUM_HAL_INTERRUPT_IMB3_TPUB_CH15:    {        cyg_uint16 cier;             HAL_READ_UINT16(CYGARC_REG_IMM_CIER_B, cier);        cier &= ~(((cyg_uint16)0x0001) << (vector - CYGNUM_HAL_INTERRUPT_IMB3_TPUB_CH0));        HAL_WRITE_UINT16(CYGARC_REG_IMM_CIER_B, cier);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM0:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN0);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM1:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN1);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM2:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN2);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM3:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN3);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MMCSM6:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN6);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM11:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN11);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM12:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN12);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM13:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN13);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM14:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN14);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM15:    {        cyg_uint16 mios1er0;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        mios1er0 &= ~(CYGARC_REG_IMM_MIOS1ER0_EN15);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER0, mios1er0);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM16:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN16);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM17:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN17);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM18:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN18);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MPWM19:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN19);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MMCSM22:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN22);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM27:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN27);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM28:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN28);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM29:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN29);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM30:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN30);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_MIOS_MDASM31:    {        cyg_uint16 mios1er1;        HAL_READ_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        mios1er1 &= ~(CYGARC_REG_IMM_MIOS1ER1_EN31);        HAL_WRITE_UINT16(CYGARC_REG_IMM_MIOS1ER1, mios1er1);        break;    }    default:        CYG_FAIL("Unknown Interrupt!!!");        break;    }}static __inline__ voidcyg_hal_interrupt_unmask ( cyg_uint32 vector ){    switch (vector) {    case CYGNUM_HAL_INTERRUPT_SIU_IRQ0 ... CYGNUM_HAL_INTERRUPT_SIU_LVL7:    {        // SIU interrupt vectors        cyg_uint32 simask;        HAL_READ_UINT32 (CYGARC_REG_IMM_SIMASK, simask);        simask |= (((cyg_uint32) CYGARC_REG_IMM_SIMASK_IRM0)                     >> (vector - CYGNUM_HAL_INTERRUPT_SIU_IRQ0));        HAL_WRITE_UINT32 (CYGARC_REG_IMM_SIMASK, simask);        break;    }    case CYGNUM_HAL_INTERRUPT_SIU_TB_A :    {        // TimeBase A interrupt        cyg_uint16 tbscr;        HAL_READ_UINT16 (CYGARC_REG_IMM_TBSCR, tbscr);        tbscr |= (CYGARC_REG_IMM_TBSCR_REFAE);        tbscr &= ~(CYGARC_REG_IMM_TBSCR_REFA); // Prevent from clearing interrupt flags        tbscr &= ~(CYGARC_REG_IMM_TBSCR_REFB); // accidently. Just do what is asked.        HAL_WRITE_UINT16 (CYGARC_REG_IMM_TBSCR, tbscr);        break;    }    case CYGNUM_HAL_INTERRUPT_SIU_TB_B :    {        // TimeBase B interrupt        cyg_uint16 tbscr;        HAL_READ_UINT16 (CYGARC_REG_IMM_TBSCR, tbscr);        tbscr |= (CYGARC_REG_IMM_TBSCR_REFBE);        tbscr &= ~(CYGARC_REG_IMM_TBSCR_REFA); // Prevent from clearing interrupt flags        tbscr &= ~(CYGARC_REG_IMM_TBSCR_REFB); // accidently. Just do what is asked.        HAL_WRITE_UINT16 (CYGARC_REG_IMM_TBSCR, tbscr);        break;    }    case CYGNUM_HAL_INTERRUPT_SIU_PIT:    {        // Periodic Interrupt        cyg_uint16 piscr;        HAL_READ_UINT16 (CYGARC_REG_IMM_PISCR, piscr);        piscr |= (CYGARC_REG_IMM_PISCR_PIE);        piscr &= ~(CYGARC_REG_IMM_PISCR_PS); // Prevent from clearing interrupt flag.        HAL_WRITE_UINT16 (CYGARC_REG_IMM_PISCR, piscr);        break;    }    case CYGNUM_HAL_INTERRUPT_SIU_RTC_SEC:    {        // Real Time Clock Second        cyg_uint16 rtcsc;        HAL_READ_UINT16 (CYGARC_REG_IMM_RTCSC, rtcsc);        rtcsc |= (CYGARC_REG_IMM_RTCSC_SIE);        rtcsc &= ~(CYGARC_REG_IMM_RTCSC_SEC); // Prevent from clearing interrupt flags        rtcsc &= ~(CYGARC_REG_IMM_RTCSC_ALR); // accidently. Just do what is asdked.        HAL_WRITE_UINT16 (CYGARC_REG_IMM_RTCSC, rtcsc);        break;    }    case CYGNUM_HAL_INTERRUPT_SIU_RTC_ALR:    {        // Real Time Clock Alarm        cyg_uint16 rtcsc;        HAL_READ_UINT16 (CYGARC_REG_IMM_RTCSC, rtcsc);        rtcsc |= (CYGARC_REG_IMM_RTCSC_ALE);        rtcsc &= ~(CYGARC_REG_IMM_RTCSC_SEC); // Prevent from clearing interrupt flags        rtcsc &= ~(CYGARC_REG_IMM_RTCSC_ALR); // accidently. Just do what is asdked.        HAL_WRITE_UINT16 (CYGARC_REG_IMM_RTCSC, rtcsc);        break;    }    case CYGNUM_HAL_INTERRUPT_SIU_COL:    {        // PLL change of lock        cyg_uint16 colir;        HAL_READ_UINT16 (CYGARC_REG_IMM_COLIR, colir);        colir |= (CYGARC_REG_IMM_COLIR_COLIE);        colir &= ~(CYGARC_REG_IMM_COLIR_COLIS); // Prevent from clearing interrupt flag accidently.        HAL_WRITE_UINT16 (CYGARC_REG_IMM_COLIR, colir);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCA_CI1:    {        cyg_uint16 quacr1;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR1_A, quacr1);        quacr1 |= (CYGARC_REG_IMM_QUACR1_CIE1);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR1_A, quacr1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCA_PI1:    {        cyg_uint16 quacr1;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR1_A, quacr1);        quacr1 |= (CYGARC_REG_IMM_QUACR1_PIE1);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR1_A, quacr1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCA_CI2:    {        cyg_uint16 quacr2;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR2_A, quacr2);        quacr2 |= (CYGARC_REG_IMM_QUACR2_CIE2);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR2_A, quacr2);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCA_PI2:    {        cyg_uint16 quacr2;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR2_A, quacr2);        quacr2 |= (CYGARC_REG_IMM_QUACR2_PIE2);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR2_A, quacr2);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCB_CI1:    {        cyg_uint16 quacr1;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR1_B, quacr1);        quacr1 |= (CYGARC_REG_IMM_QUACR1_CIE1);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR1_B, quacr1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCB_PI1:    {        cyg_uint16 quacr1;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR1_B, quacr1);        quacr1 |= (CYGARC_REG_IMM_QUACR1_PIE1);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR1_B, quacr1);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCB_CI2:    {        cyg_uint16 quacr2;        HAL_READ_UINT16(CYGARC_REG_IMM_QUACR2_B, quacr2);        quacr2 |= (CYGARC_REG_IMM_QUACR2_CIE2);        HAL_WRITE_UINT16(CYGARC_REG_IMM_QUACR2_B, quacr2);        break;    }    case CYGNUM_HAL_INTERRUPT_IMB3_QUADCB_PI2:    {        cyg_uint16 quacr2; 

⌨️ 快捷键说明

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