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

📄 c_interrupt.c

📁 YAMAHA的铃音芯片的测试程序
💻 C
字号:
/* ********************************************************************************** */
/* FUNCTION                                                                           */
/* IRQ_Handler                                                                        */
/* DESCRIPTION                                                                	      */
/*    Interrupt Handler                         				                              */
/* AUTHOR                                                                             */
/*    XuPing                                                              			      */
/* ************************************************************************************/

#include "OMAP_MPU_Addr.h"
#include "pccdef.h"

unsigned char IntFlag[136];	//total 135 interrupt

void IRQ_L2_Handler(void);
interrupt void IRQ_Handler(void)
{
	unsigned long irq_id;

	irq_id = MPU_L1_SIR_IRQ;
	IntFlag[irq_id]=1;
	switch (irq_id)
	{
		case 0x00000000 :	//Level 2 interrupt handler IRQ
		  IRQ_L2_Handler();
			break;
		case 0x00000001 :	//Camera IF
			break;
		case 0x00000002 :	//Level 2 interrupt handler FIQ
			break;
		case 0x00000003 :	//External FIQ
			break;
		case 0x00000004 :	//McBSP2 TX
			break;
		case 0x00000005 :	//McBSP2 RX
			break;
		case 0x00000006 :	//IRQ_RTDX(emulation event)
			break;
		case 0x00000007 :	//IRQ_DSP_MMU_ABORT
			break;						
		case 0x00000008 :	//IRQ_HOST_INT
			break;
		case 0x00000009 :	//IRQ_ABORT
			break;
		case 0x0000000A :	//IRQ_DSP_MAILBOX1
			MailBox1_Isr();
			break;
		case 0x0000000B :	//IRQ_DSP_MAILBOX2
			MailBox2_Isr();
			break;
		case 0x0000000C :	//IRQ_LCD_LINE
			break;
		case 0x0000000D :	//Reserved
			break;
		case 0x0000000E :	//IRQ_GPIO1
		   GPIO_Isr();
			break;
		case 0x0000000F :	//UART3
           asm("   Nop");
			break;
		case 0x00000010 :	//IRQ_TIMER3
			break;
		case 0x00000011 :	//GPTIMER1
			break;
		case 0x00000012 :	//GPTIMER2
			break;
		case 0x00000013 :	//IRQ_DMA_CH0
			break;			
		case 0x00000014 :	//IRQ_DMA_CH1
		    asm("   Nop");
			break;
		case 0x00000015 :	//IRQ_DMA_CH2
			break;
		case 0x00000016 :	//IRQ_DMA_CH3
			break;
		case 0x00000017 :	//IRQ_DMA_CH4
			break;
		case 0x00000018 :	//IRQ_DMA_CH5
			break;
		case 0x00000019 :	//IRQ_DMA_CH_LCD
			break;
		case 0x0000001A :	//IRQ_TIMER1
		  Timer1_Isr();
			break;
		case 0x0000001B :	//IRQ_WD_TIMER
			break;
		case 0x0000001C :	//Public TIPB abort
			break;
		case 0x0000001D :	//SSR FIFO full channel 0
      break;
		case 0x0000001E :	//IRQ_TIMER2
			break;
		case 0x0000001F :	//IRQ_LCD_CTRL
      		break;
		default	:
			break;
	}
	MPU_L1_CONTROL_REG = 0x00000001;	//Agree New IRQ
}



void IRQ_L2_Handler(void)
{
	unsigned long irq_id;

	irq_id = MPU_L2_SIR_IRQ;
	IntFlag[irq_id+0x20]=1;
	switch (irq_id)
	{
		case 0x00000000 :	//FAC
			break;
		case 0x00000001 :	//Keyboard
			break;
		case 0x00000002 :	//uWIRE TX
			break;
		case 0x00000003 :	//uWIRE RX
			break;
		case 0x00000004 :	//I2C
			break;
		case 0x00000005 :	//MPUIO
			break;
		case 0x00000006 :	//USB HHC 1
			break;
		case 0x00000007 :	//USB HHC 2
			break;						
		case 0x00000008 :	//USB_OTG
			break;
		case 0x00000009 :	//SoSSI attn
			break;
		case 0x0000000A :	//McBSP3 TX
			break;
		case 0x0000000B :	//McBSP3 RX
			break;
		case 0x0000000C :	//McBSP1 TX
			break;
		case 0x0000000D :	//McBSP1 RX
			break;
		case 0x0000000E :	//UART1
			break;
		case 0x0000000F :	//UART2
			break;
		case 0x00000010 :	//MCSI1 combined TX/RX/Frame error/RST
			break;
		case 0x00000011 :	//MCSI2 combined TX/RX/Frame error/RST
			break;
		case 0x00000012 :	//Free
			break;
		case 0x00000013 :	//SoSSI match
			break;			
		case 0x00000014 :	//USB W2FC Geni it
			break;
		case 0x00000015 :	//1-wire
			break;
		case 0x00000016 :	//OS timer
			break;
		case 0x00000017 :	//MMC/SDIO1
			break;
		case 0x00000018 :	//32-kHz gauging IRQ/USB client wakeup IRQ
			break;
		case 0x00000019 :	//RTC periodical timer
			break;
		case 0x0000001A :	//RTC alarm
			break;
		case 0x0000001B :	//Memory Stick
			break;
		case 0x0000001C :	//DSP_MMU_IRQ
			break;
		case 0x0000001D :	//USB W2FC IRQ_ISO_ON
            break;
		case 0x0000001E :	//USB W2FC IRQ_NON_ISO_ON
			break;
		case 0x0000001F :	//McBSP2 RX OVERFLOW
      		break;
		case 0x00000020 :	//STI global interrupt(reserved)
      		break;
		case 0x00000021 :	//STI wake-up(reserved)
      		break;
		case 0x00000022 :	//GPTIMER3
      		break;
		case 0x00000023 :	//GPTIMER4
      		break;
		case 0x00000024 :	//GPTIMER5
      		break;
		case 0x00000025 :	//GPTIMER6
      		break;
		case 0x00000026 :	//GPTIMER7
      		break;
		case 0x00000027 :	//GPTIMER8
      		break;
		case 0x00000028 :	//IRQ1_GPIO2
      		break;
		case 0x00000029 :	//IRQ1_GPIO3
      		break;
		case 0x0000002A :	//MMC/SDIO2
      		break;
		case 0x0000002B :	//CompactFlash
      		break;
		case 0x0000002C :	//COMMRX(emulation event)
      		break;
		case 0x0000002D :	//COMMRX(emulation event)
      		break;
		case 0x0000002E :	//Peripheral wake up
      		break;
		case 0x0000002F :	//Free
      		break;
		case 0x00000030 :	//IRQ1_GPIO4
      		break;
		case 0x00000031 :	//SPI
      		break; 
		case 0x00000032 :	//CCPSTATUS
      		break; 
		case 0x00000033 :	//CCP FIFONOTEMPTY
      		break; 
		case 0x00000034 :	//CCP ATTN
      		break; 
		case 0x00000035 :	//IRQ_DMA_CH6
      		break; 
		case 0x00000036 :	//IRQ_DMA_CH7
				    asm("   Nop");
      		break; 
		case 0x00000037 :	//IRQ_DMA_CH8
      		break; 
		case 0x00000038 :	//IRQ_DMA_CH9
      		break; 
		case 0x00000039 :	//IRQ_DMA_CH10
      		break; 
		case 0x0000003A :	//IRQ_DMA_CH11
      		break;        
		case 0x0000003B :	//IRQ_DMA_CH12
      		break;        
		case 0x0000003C :	//IRQ_DMA_CH13
      		break;        
		case 0x0000003D :	//IRQ_DMA_CH14
      		break;        
		case 0x0000003E :	//IRQ_DMA_CH15
      		break;
		case 0x0000003F :	//NAND flash interrupt
      		break;
		case 0x00000040 :	//Reserved (USB HHC2 suspend)
      		break; 
		case 0x00000041 :	//SST FIFO empty(channel 0)
      		break; 
		case 0x00000042 :	//Free
      		break; 
		case 0x00000043 :	//SSR overrun(channel 0)
      		break; 
		case 0x00000044 :	//SST FIFO empty(channel 1)
      		break; 
		case 0x00000045 :	//SSR FIFO full(channel 1)
      		break; 
		case 0x00000046 :	//SSR overrun(channel 1)
      		break; 
		case 0x00000047 :	//SST FIFO empty(channel 2)
      		break; 
		case 0x00000048 :	//SSR FIFO full(channel 2)
      		break; 
		case 0x00000049 :	//SSR overrun(channel 2)
      		break; 
		case 0x0000004A :	//SST FIFO empty(channel 3)
      		break; 
		case 0x0000004B :	//SSR FIFO full(channel 3)
      		break; 
		case 0x0000004C :	//SSR overrun(channel 3)
      		break; 
		case 0x0000004D :	//SST FIFO empty(channel 4)
      		break; 
		case 0x0000004E :	//SSR FIFO full(channel 4)
      		break; 
		case 0x0000004F :	//SSR overrun(channel 4)
      		break;
		case 0x00000050 :	//SST FIFO empty(channel 5)
      		break; 
		case 0x00000051 :	//SSR FIFO full(channel 5)
      		break; 
		case 0x00000052 :	//SSR overrun(channel 5)
      		break; 
		case 0x00000053 :	//SST FIFO empty(channel 6)
      		break; 
		case 0x00000054 :	//SSR FIFO full(channel 6)
      		break; 
		case 0x00000055 :	//SSR overrun(channel 6)
      		break; 
		case 0x00000056 :	//SST FIFO empty(channel 7)
      		break; 
		case 0x00000057 :	//SSR FIFO full(channel 7)
      		break; 
		case 0x00000058 :	//SSR overrun(channel 7)
      		break; 
		case 0x00000059 :	//SSR signaling error
      		break; 
		case 0x0000005A :	//SSR controller interrupt
      		break; 
		case 0x0000005B :	//SHA-1/MD5
      		break; 
		case 0x0000005C :	//RNG
      		break; 
		case 0x0000005D :	//RNGIDLE
      		break; 
		case 0x0000005E :	//VLYNQ
      		break; 
		case 0x0000005F :	//GDD_LCH0
      		break;
		case 0x00000060 :	//GDD_LCH1
      		break;
		case 0x00000061 :	//GDD_LCH2
      		break;
		case 0x00000062 :	//GDD_LCH3
      		break;
		case 0x00000063 :	//GDD_LCH4
      		break;
		case 0x00000064 :	//GDD_LCH5
      		break;
		case 0x00000065 :	//GDD_LCH6
      		break;
		case 0x00000066 :	//GDD_LCH7
      		break;
		default	:
			break;
	}
	MPU_L2_CONTROL_REG = 0x00000001;	//Agree New IRQ
}

⌨️ 快捷键说明

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