]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/HCS12_GCC_banked/vectors.c
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / HCS12_GCC_banked / vectors.c
1 /* modrx.c -- wireless controller receiver for robots\r
2    Copyright 2004 Robotronics, Inc.\r
3    Author Jefferson Smith\r
4 \r
5    This file is part of the Modular Robot Design.\r
6 */\r
7 \r
8 #include "cpu.h"\r
9 #include <sys/ports.h>\r
10 #include <sys/interrupts.h>\r
11 \r
12 void fatal_interrupt ()\r
13 {\r
14   /* Infinite loop for debugging\r
15      Returning would not help as it's necessary to clear the interrupt flag.\r
16      */\r
17   for (;;) cop_optional_reset();\r
18 }\r
19 \r
20 #ifdef USE_INTERRUPT_TABLE\r
21 \r
22 /* NOTE: these ISR must be in non-banked memory (near) */\r
23 \r
24 /* Manual context switch function.  This is the SWI ISR. */\r
25 void ATTR_INT ATTR_NEAR vPortYield( void );\r
26 \r
27 /* Tick context switch function.  This is the timer ISR. */\r
28 void ATTR_INT ATTR_NEAR vPortTickInterrupt( void );\r
29 \r
30 void ATTR_INT ATTR_NEAR vCOM_ISR( void );\r
31 \r
32 /* Interrupt vectors table.\r
33 \r
34    Note: the `XXX_handler: foo' notation is a GNU extension which is\r
35    used here to ensure correct association of the handler in the struct.\r
36    This is why the order of handlers declared below does not follow\r
37    the MCU order.  */\r
38 const struct interrupt_vectors __attribute__((section(".vectors"))) vectors = \r
39 {\r
40   pwm_shutdown_handler: fatal_interrupt,\r
41   ptpif_handler:                fatal_interrupt,\r
42   can4_tx_handler:              fatal_interrupt,\r
43   can4_rx_handler:              fatal_interrupt,\r
44   can4_err_handler:             fatal_interrupt,\r
45   can4_wake_handler:    fatal_interrupt,\r
46   can3_tx_handler:              fatal_interrupt,\r
47   can3_rx_handler:              fatal_interrupt,\r
48   can3_err_handler:             fatal_interrupt,\r
49   can3_wake_handler:    fatal_interrupt,\r
50   can2_tx_handler:              fatal_interrupt,\r
51   can2_rx_handler:              fatal_interrupt,\r
52   can2_err_handler:             fatal_interrupt,\r
53   can2_wake_handler:    fatal_interrupt,\r
54   can1_tx_handler:              fatal_interrupt,\r
55   can1_rx_handler:              fatal_interrupt,\r
56   can1_err_handler:             fatal_interrupt,\r
57   can1_wake_handler:    fatal_interrupt,\r
58   can0_tx_handler:              fatal_interrupt,\r
59   can0_rx_handler:              fatal_interrupt,\r
60   can0_err_handler:             fatal_interrupt,\r
61   can0_wake_handler:    fatal_interrupt,\r
62   flash_handler:                fatal_interrupt,\r
63   eeprom_handler:               fatal_interrupt,\r
64   spi2_handler:                 fatal_interrupt,\r
65   spi1_handler:                 fatal_interrupt,\r
66   iic_handler:                  fatal_interrupt,\r
67   bdlc_handler:                 fatal_interrupt,\r
68   selfclk_mode_handler: fatal_interrupt,\r
69   pll_lock_handler:             fatal_interrupt,\r
70   accb_overflow_handler: fatal_interrupt,\r
71   mccnt_underflow_handler: fatal_interrupt,\r
72   pthif_handler:                fatal_interrupt,\r
73   ptjif_handler:                fatal_interrupt,\r
74   atd1_handler:                 fatal_interrupt,\r
75   atd0_handler:                 fatal_interrupt,\r
76   sci1_handler:                 fatal_interrupt,\r
77   sci0_handler:                 fatal_interrupt,\r
78   spi0_handler:                 fatal_interrupt,\r
79 \r
80   /** Timer and Accumulator */\r
81   acca_input_handler:   fatal_interrupt,\r
82   acca_overflow_handler: fatal_interrupt,\r
83   timer_overflow_handler: fatal_interrupt,\r
84   \r
85   /** Input capture / Output compare Timers */\r
86   tc7_handler:                  fatal_interrupt,\r
87   tc6_handler:                  fatal_interrupt,\r
88   tc5_handler:                  fatal_interrupt,\r
89   tc4_handler:                  fatal_interrupt,\r
90   tc3_handler:                  fatal_interrupt,\r
91   tc2_handler:                  fatal_interrupt,\r
92   tc1_handler:                  fatal_interrupt,\r
93   tc0_handler:                  fatal_interrupt,\r
94 \r
95   /** External Interrupts */\r
96   rtii_handler:                 fatal_interrupt,\r
97   irq_handler:                  fatal_interrupt,\r
98   xirq_handler:                 fatal_interrupt,\r
99 \r
100   illegal_handler:              fatal_interrupt,\r
101   cop_fail_handler:             fatal_interrupt,\r
102   cop_clock_handler:    fatal_interrupt,\r
103 \r
104   /** Vectors in use */\r
105   swi_handler:                  vPortYield,\r
106   rtii_handler:                 vPortTickInterrupt,\r
107 #if M6812_DEF_SCI==1\r
108   sci1_handler:                 vCOM_ISR,\r
109 #else\r
110   sci0_handler:                 vCOM_ISR,\r
111 #endif\r
112   reset_handler:                _start\r
113 };\r
114 #endif\r
115 \r