📄 irq.c
字号:
/****************************************Copyright (c)**************************************************
**
**
** 杭州央海软件科技有限公司
**
** http://www.armgcc.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: irq.c
** 创建日期: 2006年5月25日
** 描 述: 中断高级应用,IRQ,FIQ中断处理部分
**
**--------------历史版本--------------------------------------------------------------------------------
** 修 改 人: 罗辉联
** 版 本: V1.0
** 日 期: 2006年5月25日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
/******************************************* 外部与局部函数声明 ***********************************************/
extern void wdg_irq_handler(void);
/******************************************* 全局变量定义 ***********************************************/
const FUNCTION irqHandlers[32] =
{
// 服务例程
IRQ_Dummy, //0 Timer 0 global interrupt
IRQ_Dummy, //1 FLASH global interrupt
IRQ_Dummy , //2 PRCCU global interrupt
IRQ_Dummy , //3 Real Time Clock global interrupt
wdg_irq_handler , //4 Watchdog timer interrupt
IRQ_Dummy , //5 XTI external interrupt
IRQ_Dummy , //6 USB high priority event interrupt
IRQ_Dummy, //7 I2C 0 error interrupt
IRQ_Dummy, //8 I2C 1 error interrupt
IRQ_Dummy, //9 UART 0 global interrupt
IRQ_Dummy, //10 UART 1 global interrupt
IRQ_Dummy, //11 UART 2 global interrupt
IRQ_Dummy, //12 UART 3 global interrupt
IRQ_Dummy, //13 BSPI 0 global interrupt
IRQ_Dummy, //14 BSPI 1 global interrupt
IRQ_Dummy, //15 I2C 0 tx/rx interrupt
IRQ_Dummy, //16 I2C 1 tx/rx interrupt
IRQ_Dummy, //17 CAN module global interrupt
IRQ_Dummy, //18 ADC sample ready interrupt
IRQ_Dummy,//19 Timer 1 global interrupt
IRQ_Dummy,//20 Timer 2 global interrupt
IRQ_Dummy,//21 Timer 3 global interrupt
IRQ_Dummy, //22
IRQ_Dummy, //23
IRQ_Dummy, //24
IRQ_Dummy, //25 HDLC global interrupt
IRQ_Dummy, //26 USB low priority event interrupt
IRQ_Dummy, //27
IRQ_Dummy, //28
IRQ_Dummy, //29 Timer 0 Overflow interrupt
IRQ_Dummy, //30 Timer 0 Output Compare A interrupt
IRQ_Dummy //31 Timer 0 Output Compare B interrupt
};
/*********************************************************************************************************
** 函数名称: IRQ_Handler
** 功能描述: IRQ 例程入口
**
** 参 数: None
**
** 返 回 值: None
**
** 作 者: 罗辉联
** 日 期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void IRQ_Handler(void)
{
UWORD32 i = 0;
i = EIC_IVR; //读取IVR,从而使ARM更新相关的寄存器
irqHandlers[GET_CURRENT_IRQ_NUMBER](); //执行出现的中断例程
CLEAR_CURRENT_IRQ_PENDING(GET_CURRENT_IRQ_NUMBER); //清除服务结束的中断,允许新的中断(宏定义方式)
return;
}
/*********************************************************************************************************
** 函数名称: FIQ_Handler
** 功能描述: FIQ 例程入口
**
** 参 数: None
**
** 返 回 值: None
**
** 作 者: 罗辉联
** 日 期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void FIQ_Handler(void)
{
if(GET_CURRENT_FIQ_NUMBER == 1) //T0TIMI_FIQ
{
}
else if(GET_CURRENT_FIQ_NUMBER == 2) //WDG_FIQ
{
}
else if(GET_CURRENT_FIQ_NUMBER == 3) //WDGT0TIMI_FIQ
{
}
return;
}
/*********************************************************************************************************
** 函数名称: IRQ_Dummy
** 功能描述: 空函数
**
** 参 数: None
**
** 返 回 值: None
**
** 作 者: 罗辉联
** 日 期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void IRQ_Dummy(void)
{
}
/*********************************************************************************************************
** 函数名称: Undefined_Handler SWI_Handler PrefetchAbort_Handler DataAbort_Handler
** 功能描述: 4个异常处理入口.
**
** 参 数: None
**
** 返 回 值: None
**
** 作 者: 罗辉联
** 日 期: 2006年5月25日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void Undefined_Handler(void)
{
}
void SWI_Handler(void)
{
}
void PrefetchAbort_Handler(void)
{
}
void DataAbort_Handler(void)
{
}
/****************************************END OF FILE*****************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -