www.pudn.com > FreeRTOSV4.0.0.zip > aic.h, change:2005-01-14,size:3707b


//*---------------------------------------------------------------------------- 
//*         ATMEL Microcontroller Software Support  -  ROUSSET  - 
//*---------------------------------------------------------------------------- 
//* The software is delivered "AS IS" without warranty or condition of any 
//* kind, either express, implied or statutory. This includes without 
//* limitation any warranty or condition with respect to merchantability or 
//* fitness for any particular purpose, or against the infringements of 
//* intellectual property rights of others. 
//*---------------------------------------------------------------------------- 
//* File Name           : aic.h 
//* Object              : Advanced Interrupt Controller Definition File. 
//* 
//* 1.0 01/04/00 JCZ    : Creation 
//*---------------------------------------------------------------------------- 
 
#ifndef aic_h 
#define aic_h 
 
//#include    "periph/stdc/std_c.h" 
 
/*-----------------------------------------*/ 
/* AIC User Interface Structure Definition */ 
/*-----------------------------------------*/ 
 
typedef struct 
{ 
    at91_reg        AIC_SMR[32] ;       /* Source Mode Register */ 
    at91_reg        AIC_SVR[32] ;       /* Source Vector Register */ 
    at91_reg        AIC_IVR ;           /* IRQ Vector Register */ 
    at91_reg        AIC_FVR ;           /* FIQ Vector Register */ 
    at91_reg        AIC_ISR ;           /* Interrupt Status Register */ 
    at91_reg        AIC_IPR ;           /* Interrupt Pending Register */ 
    at91_reg        AIC_IMR ;           /* Interrupt Mask Register */ 
    at91_reg        AIC_CISR ;          /* Core Interrupt Status Register */ 
    at91_reg        reserved0 ; 
    at91_reg        reserved1 ; 
    at91_reg        AIC_IECR ;          /* Interrupt Enable Command Register */ 
    at91_reg        AIC_IDCR ;          /* Interrupt Disable Command Register */ 
    at91_reg        AIC_ICCR ;          /* Interrupt Clear Command Register */ 
    at91_reg        AIC_ISCR ;          /* Interrupt Set Command Register */ 
    at91_reg        AIC_EOICR ;         /* End of Interrupt Command Register */ 
    at91_reg        AIC_SPU ;           /* Spurious Vector Register */ 
} StructAIC ; 
 
/*--------------------------------------------*/ 
/* AIC_SMR[]: Interrupt Source Mode Registers */ 
/*--------------------------------------------*/ 
 
#define AIC_PRIOR                       0x07    /* Priority */ 
 
#define AIC_SRCTYPE                     0x60    /* Source Type Definition */ 
 
/* Internal Interrupts */ 
#define AIC_SRCTYPE_INT_LEVEL_SENSITIVE 0x00    /* Level Sensitive */ 
#define AIC_SRCTYPE_INT_EDGE_TRIGGERED  0x20    /* Edge Triggered */ 
 
/* External Interrupts */ 
#define AIC_SRCTYPE_EXT_LOW_LEVEL       0x00    /* Low Level */ 
#define AIC_SRCTYPE_EXT_NEGATIVE_EDGE   0x20    /* Negative Edge */ 
#define AIC_SRCTYPE_EXT_HIGH_LEVEL      0x40    /* High Level */ 
#define AIC_SRCTYPE_EXT_POSITIVE_EDGE   0x60    /* Positive Edge */ 
 
/*------------------------------------*/ 
/* AIC_ISR: Interrupt Status Register */ 
/*------------------------------------*/ 
 
#define AIC_IRQID                       0x1F    /* Current source interrupt */ 
 
/*------------------------------------------*/ 
/* AIC_CISR: Interrupt Core Status Register */ 
/*------------------------------------------*/ 
 
#define AIC_NFIQ                        0x01    /* Core FIQ Status */ 
#define AIC_NIRQ                        0x02    /* Core IRQ Status */ 
 
/*-------------------------------*/ 
/* Advanced Interrupt Controller */ 
/*-------------------------------*/ 
#define AIC_BASE                        ((StructAIC *)0xFFFFF000) 
 
#endif /* aic_h */