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

📄 irq.c

📁 这是一个ucos下看门狗的驱动程序
💻 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 + -