irq.h
上传用户:jndfzc
上传日期:2014-06-02
资源大小:325k
文件大小:3k
源码类别:

单片机开发

开发平台:

Others

  1. #ifndef __IRQ_H
  2. #define __IRQ_H
  3. #include "maindef.h"
  4. #ifdef __IRQ_C
  5. #define __IRQ_EXT
  6. #else
  7. #define __IRQ_EXT extern
  8. #endif
  9. //AIC Source Mode Register
  10. #define AIC_SMR0 0XFFFFF000 //FIQ
  11. #define AIC_SMR1 0XFFFFF004 //SWIRQ
  12. #define AIC_SMR2 0XFFFFF008 //US0IRQ
  13. #define AIC_SMR3 0XFFFFF00C //US1IRQ
  14. #define AIC_SMR4 0XFFFFF010 //TC0IRQ
  15. #define AIC_SMR5 0XFFFFF014 //TC1IRQ
  16. #define AIC_SMR6 0XFFFFF018 //TC2IRQ
  17. #define AIC_SMR7 0XFFFFF01C //WDIRQ
  18. #define AIC_SMR8 0XFFFFF020 //PIOIRQ
  19. #define AIC_SMR16 0XFFFFF040 //IRQ0
  20. #define AIC_SMR17 0XFFFFF044 //IRQ1
  21. #define AIC_SMR18 0XFFFFF048 //IRQ2
  22. //AIC Source Vector Register
  23. #define AIC_SVR0 0XFFFFF080
  24. #define AIC_SVR1 0XFFFFF084
  25. #define AIC_SVR2 0XFFFFF088
  26. #define AIC_SVR3 0XFFFFF08C
  27. #define AIC_SVR4 0XFFFFF090
  28. #define AIC_SVR5 0XFFFFF094
  29. #define AIC_SVR6 0XFFFFF098
  30. #define AIC_SVR7 0XFFFFF09C
  31. #define AIC_SVR8 0XFFFFF0A0
  32. #define AIC_SVR16 0XFFFFF0C0
  33. #define AIC_SVR17 0XFFFFF0C4
  34. #define AIC_SVR18 0XFFFFF0C8
  35. #define AIC_IVR 0XFFFFF100 //AIC Interrupt Vector Register(Read Only)
  36. #define AIC_FVR 0XFFFFF104  //AIC FIQ Vector Register(Read Only)
  37. #define AIC_ISR 0xFFFFF108 //AIC Interrupt Status Register(Read Only)
  38. #define AIC_IPR 0xFFFFF10C //AIC Interrupt Pending Register(Read Only)
  39. #define AIC_IMR 0xFFFFF110 //AIC Interrupt Mask Register(Read Only)
  40. #define AIC_CISR 0xFFFFF114 //AIC Core Interrupt Status Register(Read Only)
  41. #define AIC_IECR 0XFFFFF120 //AIC Interrupt Enable Command Register(Write Only)
  42. #define AIC_IDCR 0XFFFFF124 //AIC Interrupt Disable Command Register(Write Only)
  43. #define AIC_ICCR 0XFFFFF128 //AIC Interrupt Clear Command Register(Write Only)
  44. #define AIC_ISCR 0XFFFFF12C //AIC Interrupt Set Command Register(Write Only)
  45. #define AIC_EOICR 0XFFFFF130 //AIC End of Interrupt Command Register(Write Only)
  46. #define AIC_SPU 0XFFFFF134 //AIC Spurious Vector Register
  47. typedef enum{ 
  48. FIRQ=0x1, 
  49. SWIRQ=0x2, 
  50. US0IRQ=0x4, 
  51. US1IRQ=0x8, 
  52. TC0IRQ=0x10, 
  53. TC1IRQ=0x20, 
  54. TC2IRQ=0x40, 
  55. WDIRQ=0x80, 
  56. PIOIRQ=0x100, 
  57. IRQ0=0x10000, 
  58. IRQ1=0x20000, 
  59. IRQ2=0x40000
  60. }EnumIntKind; 
  61. __IRQ_EXT void Interrupt_Init(void);
  62. __IRQ_EXT void Interrupt_Enable(EnumIntKind IntKind);
  63. __IRQ_EXT void Interrupt_Disable(EnumIntKind IntKind);
  64. __IRQ_EXT void C_Undefined_Handler(void);
  65. __IRQ_EXT void C_Prefetch_Handler(void);
  66. __IRQ_EXT void C_Abort_Handler(void);
  67. __IRQ_EXT void C_FIQ_Handler(void);
  68. __IRQ_EXT void C_SWIRQ_Handler(void);
  69. __IRQ_EXT void C_US0IRQ_Handler(void);
  70. __IRQ_EXT void C_US1IRQ_Handler(void);
  71. __IRQ_EXT void C_TC0IRQ_Handler(void);
  72. __IRQ_EXT void C_TC1IRQ_Handler(void);
  73. __IRQ_EXT void C_TC2IRQ_Handler(void);
  74. __IRQ_EXT void C_WDIRQ_Handler(void);
  75. __IRQ_EXT void C_PIOIRQ_Handler(void);
  76. __IRQ_EXT void C_IRQ0IRQ_Handler(void);
  77. __IRQ_EXT void C_IRQ1IRQ_Handler(void);
  78. __IRQ_EXT void C_IRQ2IRQ_Handler(void);
  79. __IRQ_EXT void FIQ_Handler(void);
  80. __IRQ_EXT void SWIRQ_Handler(void);
  81. __IRQ_EXT void US0IRQ_Handler(void);
  82. __IRQ_EXT void US1IRQ_Handler(void);
  83. __IRQ_EXT void TC0IRQ_Handler(void);
  84. __IRQ_EXT void TC1IRQ_Handler(void);
  85. __IRQ_EXT void TC2IRQ_Handler(void);
  86. __IRQ_EXT void WDIRQ_Handler(void);
  87. __IRQ_EXT void PIOIRQ_Handler(void);
  88. __IRQ_EXT void IRQ0IRQ_Handler(void);
  89. __IRQ_EXT void IRQ1IRQ_Handler(void);
  90. __IRQ_EXT void IRQ2IRQ_Handler(void);
  91. void EnableIRQ(void);
  92. #endif