aduc_irq.c

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 66 行

C
66
字号
/*    Function Pointers for Interrupts  */
typedef void (* tyVctHndlr) (void);

tyVctHndlr    IRQ     = (tyVctHndlr)0x0;
tyVctHndlr    SWI     = (tyVctHndlr)0x0;
tyVctHndlr    FIQ     = (tyVctHndlr)0x0;
tyVctHndlr    UNDEF   = (tyVctHndlr)0x0;
tyVctHndlr    PABORT  = (tyVctHndlr)0x0;
tyVctHndlr    DABORT  = (tyVctHndlr)0x0;

__irq __arm void  IRQ_Handler(void);
__irq __arm void  SWI_Handler(void);
__irq __arm void  FIQ_Handler(void);
__irq __arm void  Undefined_Handler(void);
__irq __arm void  Prefetch_Handler(void);
__irq __arm void  Abort_Handler(void);

__irq __arm void  IRQ_Handler(void) 
{
   if ( *IRQ !=0x00)
      IRQ();
   else
      while(1);
}

__irq __arm void  FIQ_Handler(void) 
{
   if ( *FIQ !=0x00)
      FIQ();
   else
      while(1);
}

__irq __arm void  SWI_Handler(void) 
{
   if ( *SWI !=0x00)
      SWI();
   else
      while(1);
}

__irq __arm void  Undefined_Handler(void) 
{
   if ( *UNDEF !=0x00)
      UNDEF();
   else
      while(1);
}

__irq __arm void  Prefetch_Handler(void) 
{
   if ( *PABORT !=0x00)
      PABORT();
   else
      while(1);
}

__irq __arm void  Abort_Handler(void) 
{
   if ( *DABORT !=0x00)
      DABORT();
   else
      while(1);
}

⌨️ 快捷键说明

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