⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2440int.c

📁 ucos-ii在 阳初2440开发板的移植 可支持从norflash启动,从nandflash启动以及由其它bootloader加载到SDRAM中运行
💻 C
字号:
//====================================================================
// IRQ 中断 操作 
//====================================================================

#include "2440Int.h"

#include "option.h"
#include "2440addr.h"

static unsigned int *__IRQ_Vector = (unsigned int *)(_INT_VIC_STARTADDRESS)+8;

//中断 初始化
void IRQ_Init()
{
    unsigned int i;

    rINTMSK = 0xFFFFFFFF;
    rINTSUBMSK = 0xFFFFFFFF;
    rSRCPND = 0xFFFFFFFF;
    rINTPND = 0xFFFFFFFF;
    rSUBSRCPND = 0xFFFFFFFF;

    rINTMOD = 0;

    for( i = 0 ; i < 32 ; i++ )
    {
        __IRQ_Vector[i] = (unsigned int)IRQ_FIQ_PABT_Def;
    }
    
}

//开关 子中断
void IRQ_SUB_Enable(unsigned int ID_SUB)
{
    if( ID_SUB > 10 )
    {
        return;
    }

    rINTSUBMSK = rINTSUBMSK & (~(1 << ID_SUB));
}

void IRQ_SUB_Disable(unsigned int ID_SUB)
{
    if( ID_SUB > 10 )
    {
        return;
    }

    rINTSUBMSK = rINTSUBMSK | (1 << ID_SUB);
}

//开关 中断
void IRQ_Enable(unsigned int ID)
{
    if( ID > 31 )
    {
        return ;
    }

    rINTMSK = rINTMSK & ( ~(1 << ID) );
}

void IRQ_Disable(unsigned int ID)
{
    if( ID > 31 )
    {
        return ;
    }

    rINTMSK = rINTMSK | (1 << ID);
    IRQ_Vector( ID, (unsigned int)IRQ_FIQ_PABT_Def);
}

//IRQ 中断向量注册
void IRQ_Vector(unsigned int ID,unsigned int pVector)
{
    if( ID > 31 )
    {
        return ;
    }

    __IRQ_Vector[ID] = pVector;
}

⌨️ 快捷键说明

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