00001
00013
00014
00015 #ifndef MC68HC12BC32
00016
00017 #define VEC_CAN_TX (*(volatile void *) 0xFFC4)
00018 #define VEC_CAN_RX (*(volatile void *) 0xFFC6)
00019 #define VEC_CAN_ERR (*(volatile void *) 0xFFC8)
00020
00021 #define VEC_CAN_WAKE (*(volatile void *) 0xFFD0)
00022 #define VEC_ATD (*(volatile void *) 0xFFD2)
00023
00024 #define VEC_SCI (*(volatile void *) 0xFFD6)
00025 #define VEC_SPI (*(volatile void *) 0xFFD8)
00026 #define VEC_ACC_INPUT_EDGE (*(volatile void *) 0xFFDA)
00027 #define VEC_ACC_OVERFLOW (*(volatile void *) 0xFFDC)
00028 #define VEC_TMR_OVERFLOW (*(volatile void *) 0xFFDE)
00029 #define VEC_TMR7 (*(volatile void *) 0xFFE0)
00030 #define VEC_TMR6 (*(volatile void *) 0xFFE2)
00031 #define VEC_TMR5 (*(volatile void *) 0xFFE4)
00032 #define VEC_TMR4 (*(volatile void *) 0xFFE6)
00033 #define VEC_TMR3 (*(volatile void *) 0xFFE8)
00034 #define VEC_TMR2 (*(volatile void *) 0xFFEA)
00035 #define VEC_TMR1 (*(volatile void *) 0xFFEC)
00036 #define VEC_TMR0 (*(volatile void *) 0xFFEE)
00037 #define VEC_RTI (*(volatile void *) 0xFFF0)
00038 #define VEC_IRQ (*(volatile void *) 0xFFF2)
00039 #define VEC_XIRQ (*(volatile void *) 0xFFF4)
00040 #define VEC_SWI (*(volatile void *) 0xFFF6)
00041 #define VEC_ILLEGAL_OP (*(volatile void *) 0xFFF8)
00042 #define VEC_COP_FAIL (*(volatile void *) 0xFFFA)
00043 #define VEC_COP_CLK (*(volatile void *) 0xFFFC)
00044 #define VEC_RESET (*(volatile void *) 0xFFFE)
00045 #endif
00046
00047 #ifdef MC68HC12BC32
00048 #define VEC_ACC_B_OVERFLOW (*(volatile void *) 0xFFCA)
00049 #define VEC_MODCOUNT_UNDERFLOW (*(volatile void *) 0xFFCC)
00050
00051
00052
00053 #define VEC_BDLC (*(volatile void *) 0xFFD0)
00054 #define VEC_ATD (*(volatile void *) 0xFFD2)
00055
00056 #define VEC_SCI (*(volatile void *) 0xFFD6)
00057 #define VEC_SPI (*(volatile void *) 0xFFD8)
00058 #define VEC_ACC_INPUT_EDGE (*(volatile void *) 0xFFDA)
00059 #define VEC_ACC_OVERFLOW (*(volatile void *) 0xFFDC)
00060 #define VEC_TMR_OVERFLOW (*(volatile void *) 0xFFDE)
00061 #define VEC_TMR7 (*(volatile void *) 0xFFE0)
00062 #define VEC_TMR6 (*(volatile void *) 0xFFE2)
00063 #define VEC_TMR5 (*(volatile void *) 0xFFE4)
00064 #define VEC_TMR4 (*(volatile void *) 0xFFE6)
00065 #define VEC_TMR3 (*(volatile void *) 0xFFE8)
00066 #define VEC_TMR2 (*(volatile void *) 0xFFEA)
00067 #define VEC_TMR1 (*(volatile void *) 0xFFEC)
00068 #define VEC_TMR0 (*(volatile void *) 0xFFEE)
00069 #define VEC_RTI (*(volatile void *) 0xFFF0)
00070 #define VEC_IRQ (*(volatile void *) 0xFFF2)
00071 #define VEC_XIRQ (*(volatile void *) 0xFFF4)
00072 #define VEC_SWI (*(volatile void *) 0xFFF6)
00073 #define VEC_ILLEGAL_OP (*(volatile void *) 0xFFF8)
00074 #define VEC_COP_FAIL (*(volatile void *) 0xFFFA)
00075 #define VEC_COP_CLK (*(volatile void *) 0xFFFC)
00076 #define VEC_RESET (*(volatile void *) 0xFFFE)
00077 #endif
00078
00079 #ifndef MC68HC12BC32
00080 # define VEC_TABLE (*(volatile void *) 0xFFC0)
00081 typedef enum {
00082
00083 INTRID_CAN_TX = 2,
00084 INTRID_CAN_RX = 3,
00085 INTRID_CAN_ERR = 4,
00086
00087 INTRID_CAN_WAKE = 8,
00088 INTRID_ATD = 9,
00089
00090 INTRID_SCI = 11,
00091 INTRID_SPI = 12,
00092 INTRID_ACC_INPUT_EDGE = 13,
00093 INTRID_ACC_OVERFLOW = 14,
00094 INTRID_TMR_OVERFLOW = 15,
00095 INTRID_TMR7 = 16,
00096 INTRID_TMR6 = 17,
00097 INTRID_TMR5 = 18,
00098 INTRID_TMR4 = 19,
00099 INTRID_TMR3 = 20,
00100 INTRID_TMR2 = 21,
00101 INTRID_TMR1 = 22,
00102 INTRID_TMR0 = 23,
00103 INTRID_RTI = 24,
00104 INTRID_IRQ = 25,
00105 INTRID_XIRQ = 26,
00106 INTRID_SWI = 27,
00107 INTRID_ILLEGAL_OP = 28,
00108 INTRID_COP_FAIL = 29,
00109 INTRID_COP_CLK = 30,
00110 INTRID_RESET = 31,
00111 INTRID_MAX
00112 } intrid_t;
00113 #endif
00114
00115 #ifdef MC68HC12BC32
00116 # define VEC_TABLE (*(volatile void *) 0xFFC0)
00117 typedef {
00118
00119 INTRID_ACC_B_OVERFLOW = 5,
00120 INTRID_MODCOUNT_UNDERFLOW = 6,
00121
00122
00123 INTRID_BDLC = 8,
00124 INTRID_ATD = 9,
00125
00126 INTRID_SCI = 11,
00127 INTRID_SPI = 12,
00128 INTRID_ACC_INPUT_EDGE = 13,
00129 INTRID_ACC_OVERFLOW = 14,
00130 INTRID_TMR_OVERFLOW = 15,
00131 INTRID_TMR7 = 16,
00132 INTRID_TMR6 = 17,
00133 INTRID_TMR5 = 18,
00134 INTRID_TMR4 = 19,
00135 INTRID_TMR3 = 20,
00136 INTRID_TMR2 = 21,
00137 INTRID_TMR1 = 22,
00138 INTRID_TMR0 = 23,
00139 INTRID_RTI = 24,
00140 INTRID_IRQ = 25,
00141 INTRID_XIRQ = 26,
00142 INTRID_SWI = 27,
00143 INTRID_ILLEGAL_OP = 28,
00144 INTRID_COP_FAIL = 29,
00145 INTRID_COP_CLK = 30,
00146 INTRID_RESET = 31,
00147 INTRID_MAX
00148 } intrid_t;
00149 #endif
00150
00151 void isr_can_tx (void) __attribute__ ((interrupt));
00152 void isr_can_rx (void) __attribute__ ((interrupt));
00153 void isr_can_err (void) __attribute__ ((interrupt));
00154 void isr_can_wake (void) __attribute__ ((interrupt));
00155 void isr_acc_b_overflow (void) __attribute__ ((interrupt));
00156 void isr_modcount_underflow (void) __attribute__ ((interrupt));
00157 void isr_bdlc (void) __attribute__ ((interrupt));
00158 void isr_atd (void) __attribute__ ((interrupt));
00159 void isr_sci (void) __attribute__ ((interrupt));
00160 void isr_spi (void) __attribute__ ((interrupt));
00161 void isr_acc_input_edge (void) __attribute__ ((interrupt));
00162 void isr_acc_overflow (void) __attribute__ ((interrupt));
00163 void isr_tmr_overflow (void) __attribute__ ((interrupt));
00164 void isr_tmr7 (void) __attribute__ ((interrupt));
00165 void isr_tmr6 (void) __attribute__ ((interrupt));
00166 void isr_tmr5 (void) __attribute__ ((interrupt));
00167 void isr_tmr4 (void) __attribute__ ((interrupt));
00168 void isr_tmr3 (void) __attribute__ ((interrupt));
00169 void isr_tmr2 (void) __attribute__ ((interrupt));
00170 void isr_tmr1 (void) __attribute__ ((interrupt));
00171 void isr_tmr0 (void) __attribute__ ((interrupt));
00172 void isr_rti (void) __attribute__ ((interrupt));
00173 void isr_irq (void) __attribute__ ((interrupt));
00174 void isr_xirq (void) __attribute__ ((interrupt));
00175 void isr_swi (void) __attribute__ ((interrupt));
00176 void isr_illegal_op (void) __attribute__ ((interrupt));
00177 void isr_cop_fail (void) __attribute__ ((interrupt));
00178 void isr_cop_clk (void) __attribute__ ((interrupt));
00179 void isr_reset (void) __attribute__ ((interrupt));