var_intr.h

来自「eCos操作系统源码」· C头文件 代码 · 共 534 行 · 第 1/2 页

H
534
字号
#ifndef CYGONCE_VAR_INTR_H#define CYGONCE_VAR_INTR_H//==========================================================================////      var_intr.h////      HAL variant interrupt and clock support////==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    jskov// Contributors: jskov,// Date:         1999-04-24// Purpose:      Define Interrupt support// Description:  The macros defined here provide the HAL APIs for handling//               interrupts and the clock.//              // Usage://               #include <cyg/hal/hal_intr.h>//               ...//              ////####DESCRIPTIONEND####////==========================================================================#include <pkgconf/hal.h>#include CYGBLD_HAL_CPU_MODULES_H       // INTC module selection//--------------------------------------------------------------------------// Optional platform overrides and fallbacks#include <cyg/hal/plf_intr.h>#ifndef CYGPRI_HAL_INTERRUPT_ACKNOWLEDGE_PLF# define CYGPRI_HAL_INTERRUPT_ACKNOWLEDGE_PLF(vec)#endif#ifndef CYGPRI_HAL_INTERRUPT_CONFIGURE_PLF# define CYGPRI_HAL_INTERRUPT_CONFIGURE_PLF(vec, level, up)#endif//----------------------------------------------------------------------------// Additional vectors provided by INTC V1#if (CYGARC_SH_MOD_INTC == 1)#ifndef CYGPRI_HAL_INTERRUPT_UPDATE_LEVEL_PLF# define CYGPRI_HAL_INTERRUPT_UPDATE_LEVEL_PLF(vec, level)                  \    case CYGNUM_HAL_INTERRUPT_NMI:                                          \        /* fall through */                                                  \    case CYGNUM_HAL_INTERRUPT_LVL4 ... CYGNUM_HAL_INTERRUPT_LVL_MAX:        \        /* Cannot change levels */                                          \        break;                                                           #endif#define CYGNUM_HAL_INTERRUPT_LVL8           9 #define CYGNUM_HAL_INTERRUPT_LVL9          10#define CYGNUM_HAL_INTERRUPT_LVL10         11#define CYGNUM_HAL_INTERRUPT_LVL11         12#define CYGNUM_HAL_INTERRUPT_LVL12         13#define CYGNUM_HAL_INTERRUPT_LVL13         14#define CYGNUM_HAL_INTERRUPT_LVL14         15#define CYGNUM_HAL_INTERRUPT_DMAC0_TE      16#define CYGNUM_HAL_INTERRUPT_DMAC1_TE      17#define CYGNUM_HAL_INTERRUPT_WDT_ITI       18#define CYGNUM_HAL_INTERRUPT_REF_CMI       19#define CYGNUM_HAL_INTERRUPT_EDMAC_EINT    20#define CYGNUM_HAL_INTERRUPT_FRT_ICI       21#define CYGNUM_HAL_INTERRUPT_FRT_OCI       22#define CYGNUM_HAL_INTERRUPT_FRT_OVI       23#define CYGNUM_HAL_INTERRUPT_TPU0_TGI0A    24#define CYGNUM_HAL_INTERRUPT_TPU0_TGI0B    25#define CYGNUM_HAL_INTERRUPT_TPU0_TGI0C    26#define CYGNUM_HAL_INTERRUPT_TPU0_TGI0D    27#define CYGNUM_HAL_INTERRUPT_TPU0_TGI0V    28#define CYGNUM_HAL_INTERRUPT_TPU1_TGI1A    29#define CYGNUM_HAL_INTERRUPT_TPU1_TGI1B    30#define CYGNUM_HAL_INTERRUPT_TPU1_TGI1V    31#define CYGNUM_HAL_INTERRUPT_TPU1_TGI1U    32#define CYGNUM_HAL_INTERRUPT_TPU2_TGI2A    33#define CYGNUM_HAL_INTERRUPT_TPU2_TGI2B    34#define CYGNUM_HAL_INTERRUPT_TPU2_TGI2V    35#define CYGNUM_HAL_INTERRUPT_TPU2_TGI2U    36#define CYGNUM_HAL_INTERRUPT_SCIF1_ERI1    37#define CYGNUM_HAL_INTERRUPT_SCIF1_RXI1    38#define CYGNUM_HAL_INTERRUPT_SCIF1_BRI1    39#define CYGNUM_HAL_INTERRUPT_SCIF1_TXI1    40#define CYGNUM_HAL_INTERRUPT_SCIF2_ERI2    41#define CYGNUM_HAL_INTERRUPT_SCIF2_RXI2    42#define CYGNUM_HAL_INTERRUPT_SCIF2_BRI2    43#define CYGNUM_HAL_INTERRUPT_SCIF2_TXI2    44#define CYGNUM_HAL_INTERRUPT_SIO0_RERI0    45#define CYGNUM_HAL_INTERRUPT_SIO0_TERI0    46#define CYGNUM_HAL_INTERRUPT_SIO0_RDFI0    47#define CYGNUM_HAL_INTERRUPT_SIO0_TDEI0    48#define CYGNUM_HAL_INTERRUPT_SIO1_RERI1    49#define CYGNUM_HAL_INTERRUPT_SIO1_TERI1    50#define CYGNUM_HAL_INTERRUPT_SIO1_RDFI1    51#define CYGNUM_HAL_INTERRUPT_SIO1_TDEI1    52#define CYGNUM_HAL_INTERRUPT_SIO2_RERI2    53#define CYGNUM_HAL_INTERRUPT_SIO2_TERI2    54#define CYGNUM_HAL_INTERRUPT_SIO2_RDFI2    55#define CYGNUM_HAL_INTERRUPT_SIO2_TDEI2    56#define CYGNUM_HAL_INTERRUPT_LVL_MAX       CYGNUM_HAL_INTERRUPT_LVL14#undef  CYGNUM_HAL_ISR_MAX#ifdef CYGNUM_HAL_ISR_PLF_MAX# define CYGNUM_HAL_ISR_MAX                CYGNUM_HAL_ISR_PLF_MAX#else# define CYGNUM_HAL_ISR_MAX                CYGNUM_HAL_INTERRUPT_SIO2_TDEI2#endif// The vector used by the Real time clock#ifndef CYGNUM_HAL_INTERRUPT_RTC# define CYGNUM_HAL_INTERRUPT_RTC             CYGNUM_HAL_INTERRUPT_FRT_OCI#endif#elif (CYGARC_SH_MOD_INTC == 2)#ifndef CYGPRI_HAL_INTERRUPT_UPDATE_LEVEL_PLF# define CYGPRI_HAL_INTERRUPT_UPDATE_LEVEL_PLF(vec, level)                  \    case CYGNUM_HAL_INTERRUPT_NMI:                                          \        /* Cannot change levels */                                          \        break;                                                           #endif#define CYGNUM_HAL_INTERRUPT_DMAC0_DEI0         9 #define CYGNUM_HAL_INTERRUPT_DMAC1_DEI1        10#define CYGNUM_HAL_INTERRUPT_DMAC2_DEI2        11#define CYGNUM_HAL_INTERRUPT_DMAC3_DEI3        12#define CYGNUM_HAL_INTERRUPT_MTU0_TGI0A        13#define CYGNUM_HAL_INTERRUPT_MTU0_TGI0B        14#define CYGNUM_HAL_INTERRUPT_MTU0_TGI0C        15#define CYGNUM_HAL_INTERRUPT_MTU0_TGI0D        16#define CYGNUM_HAL_INTERRUPT_MTU0_TGI0V        17#define CYGNUM_HAL_INTERRUPT_MTU1_TGI1A        18#define CYGNUM_HAL_INTERRUPT_MTU1_TGI1B        19#define CYGNUM_HAL_INTERRUPT_MTU1_TGI1V        20#define CYGNUM_HAL_INTERRUPT_MTU1_TGI1U        21#define CYGNUM_HAL_INTERRUPT_MTU2_TGI2A        22#define CYGNUM_HAL_INTERRUPT_MTU2_TGI2B        23#define CYGNUM_HAL_INTERRUPT_MTU2_TGI2V        24#define CYGNUM_HAL_INTERRUPT_MTU2_TGI2U        25#define CYGNUM_HAL_INTERRUPT_MTU3_TGI3A        26#define CYGNUM_HAL_INTERRUPT_MTU3_TGI3B        27#define CYGNUM_HAL_INTERRUPT_MTU3_TGI3C        28#define CYGNUM_HAL_INTERRUPT_MTU3_TGI3D        29#define CYGNUM_HAL_INTERRUPT_MTU3_TGI3V        30#define CYGNUM_HAL_INTERRUPT_MTU4_TGI4A        31#define CYGNUM_HAL_INTERRUPT_MTU4_TGI4B        32#define CYGNUM_HAL_INTERRUPT_MTU4_TGI4C        33#define CYGNUM_HAL_INTERRUPT_MTU4_TGI4D        34#define CYGNUM_HAL_INTERRUPT_MTU4_TGI4V        35#define CYGNUM_HAL_INTERRUPT_SCI0_ERI0         36#define CYGNUM_HAL_INTERRUPT_SCI0_RXI0         37#define CYGNUM_HAL_INTERRUPT_SCI0_TXI0         38#define CYGNUM_HAL_INTERRUPT_SCI0_TEI0         39#define CYGNUM_HAL_INTERRUPT_SCI1_ERI1         40#define CYGNUM_HAL_INTERRUPT_SCI1_RXI1         41#define CYGNUM_HAL_INTERRUPT_SCI1_TXI1         42#define CYGNUM_HAL_INTERRUPT_SCI1_TEI1         43#define CYGNUM_HAL_INTERRUPT_AD_ADI0           44#define CYGNUM_HAL_INTERRUPT_AD_ADI1           45#define CYGNUM_HAL_INTERRUPT_DTC_SWDTCE        46#define CYGNUM_HAL_INTERRUPT_CMT0_CMI0         47#define CYGNUM_HAL_INTERRUPT_CMT1_CMI1         48#define CYGNUM_HAL_INTERRUPT_WDT_ITI           49#define CYGNUM_HAL_INTERRUPT_BSC_CMI           50#define CYGNUM_HAL_INTERRUPT_IO_OEI            51#define CYGNUM_HAL_INTERRUPT_VAR_RESERVED      52       // just to catch bad assignments#undef  CYGNUM_HAL_ISR_MAX#ifdef CYGNUM_HAL_ISR_PLF_MAX# define CYGNUM_HAL_ISR_MAX                  CYGNUM_HAL_ISR_PLF_MAX#else# define CYGNUM_HAL_ISR_MAX                  CYGNUM_HAL_INTERRUPT_VAR_RESERVED#endif//                           eCos vector this entry decodes to , actual HW interrupt vector#define CYGHWR_HAL_SH_SH2_CUSTOM_INTERRUPT_LAYOUT                         \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL0         ,  1 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL1         ,  2 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL2         ,  3 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL3         ,  4 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL4         ,  5 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL5         ,  6 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL6         ,  7 ;     \        exception_vector_int CYGNUM_HAL_INTERRUPT_LVL7         ,  8 ;     \                                                                          \        exception_vector_int CYGNUM_HAL_INTERRUPT_DMAC0_DEI0   ,  9  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 10  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 11  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 12  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_DMAC1_DEI1   , 13  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 14  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 15  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 16  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_DMAC2_DEI2   , 17  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 18  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 19  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 20  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_DMAC3_DEI3   , 21  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 22  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 23  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 24  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU0_TGI0A   , 25  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU0_TGI0B   , 26  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU0_TGI0C   , 27  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU0_TGI0D   , 28  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU0_TGI0V   , 29  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 30  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 31  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 32  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU1_TGI1A   , 33  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU1_TGI1B   , 34  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 35  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 36  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU1_TGI1V   , 37  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU1_TGI1U   , 38  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 39  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 40  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU2_TGI2A   , 41  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU2_TGI2B   , 42  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 43  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 44  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU2_TGI2V   , 45  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU2_TGI2U   , 46  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 47  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_VAR_RESERVED , 48  ;    \        exception_vector_int CYGNUM_HAL_INTERRUPT_MTU3_TGI3A   , 49  ;    \

⌨️ 快捷键说明

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