| /* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */ | |
| /* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */ | |
| /* ELIGIBILITY FOR ANY PURPOSES. */ | |
| /* (C) Fujitsu Microelectronics Europe GmbH */ | |
| /*------------------------------------------------------------------------ | |
| VECTORS.C | |
| - Interrupt level (priority) setting | |
| - Interrupt vector definition | |
| 31.04.05 1.00 UMa Initial Version | |
| 08.11.05 1.01 MSt SWB Mondeb switch for ICR00 Register added | |
| 27.02.06 1.02 UMa added comment in DefaultIRQHandler | |
| 17.03.06 1.03 UMa comment out ICR01 | |
| 28.07.06 1.04 UMa changed comment | |
| 06.10.06 1.05 UMa changed DefaultIRQHandler | |
| -------------------------------------------------------------------------*/ | |
| #include "mb91467d.h" | |
| #include "watchdog.h" | |
| #include "FreeRTOSConfig.h" | |
| /*------------------------------------------------------------------------ | |
| InitIrqLevels() | |
| This function pre-sets all interrupt control registers. It can be used | |
| to set all interrupt priorities in static applications. If this file | |
| contains assignments to dedicated resources, verify that the | |
| appropriate controller is used. Not all devices of the MB91460 Series | |
| offer all recources. | |
| NOTE: value 31 disables the interrupt and value 16 sets highest priority. | |
| -------------------------------------------------------------------------*/ | |
| void InitIrqLevels(void) | |
| { | |
| /* ICRxx */ | |
| /* Softune Workbench Monitor Debugger is using ext int0 for abort function */ | |
| /* ICR00 = 31; *//* External Interrupt 0 */ | |
| /* External Interrupt 1 */ | |
| ICR01 = 31; /* External Interrupt 2 */ | |
| /* External Interrupt 3 */ | |
| ICR02 = 31; /* External Interrupt 4 */ | |
| /* External Interrupt 5 */ | |
| ICR03 = 31; /* External Interrupt 6 */ | |
| /* External Interrupt 7 */ | |
| ICR04 = 31; /* External Interrupt 8 */ | |
| /* External Interrupt 9 */ | |
| ICR05 = 31; /* External Interrupt 10 */ | |
| /* External Interrupt 11 */ | |
| ICR06 = 31; /* External Interrupt 12 */ | |
| /* External Interrupt 13 */ | |
| ICR07 = 31; /* External Interrupt 14 */ | |
| /* External Interrupt 15 */ | |
| ICR08 = configKERNEL_INTERRUPT_PRIORITY; /* Reload Timer 0 */ | |
| /* Reload Timer 1 */ | |
| ICR09 = 31; /* Reload Timer 2 */ | |
| /* Reload Timer 3 */ | |
| ICR10 = 31; /* Reload Timer 4 */ | |
| /* Reload Timer 5 */ | |
| ICR11 = 31; /* Reload Timer 6 */ | |
| /* Reload Timer 7 */ | |
| ICR12 = 31; /* Free Run Timer 0 */ | |
| /* Free Run Timer 1 */ | |
| ICR13 = 31; /* Free Run Timer 2 */ | |
| /* Free Run Timer 3 */ | |
| ICR14 = 31; /* Free Run Timer 4 */ | |
| /* Free Run Timer 5 */ | |
| ICR15 = 31; /* Free Run Timer 6 */ | |
| /* Free Run Timer 7 */ | |
| ICR16 = 31; /* CAN 0 */ | |
| /* CAN 1 */ | |
| ICR17 = 31; /* CAN 2 */ | |
| /* CAN 3 */ | |
| ICR18 = 31; /* CAN 4 */ | |
| /* CAN 5 */ | |
| ICR19 = 31; /* USART (LIN) 0 RX */ | |
| /* USART (LIN) 0 TX */ | |
| ICR20 = 31; /* USART (LIN) 1 RX */ | |
| /* USART (LIN) 1 TX */ | |
| ICR21 = configKERNEL_INTERRUPT_PRIORITY; /* USART (LIN) 2 RX */ | |
| /* USART (LIN) 2 TX */ | |
| ICR22 = 31; /* USART (LIN) 3 RX */ | |
| /* USART (LIN) 3 TX */ | |
| ICR23 = configKERNEL_INTERRUPT_PRIORITY; /* System Reserved */ | |
| /* Delayed Interrupt */ | |
| ICR24 = 31; /* System Reserved */ | |
| /* System Reserved */ | |
| ICR25 = 31; /* USART (LIN, FIFO) 4 RX */ | |
| /* USART (LIN, FIFO) 4 TX */ | |
| ICR26 = configKERNEL_INTERRUPT_PRIORITY; /* USART (LIN, FIFO) 5 RX */ | |
| /* USART (LIN, FIFO) 5 TX */ | |
| ICR27 = 31; /* USART (LIN, FIFO) 6 RX */ | |
| /* USART (LIN, FIFO) 6 TX */ | |
| ICR28 = 31; /* USART (LIN, FIFO) 7 RX */ | |
| /* USART (LIN, FIFO) 7 TX */ | |
| ICR29 = 31; /* I2C 0 / I2C 2 */ | |
| /* I2C 1 / I2C 3 */ | |
| ICR30 = 31; /* USART (LIN, FIFO) 8 RX */ | |
| /* USART (LIN, FIFO) 8 TX */ | |
| ICR31 = 31; /* USART (LIN, FIFO) 9 RX */ | |
| /* USART (LIN, FIFO) 9 TX */ | |
| ICR32 = 31; /* USART (LIN, FIFO) 10 RX */ | |
| /* USART (LIN, FIFO) 10 TX */ | |
| ICR33 = 31; /* USART (LIN, FIFO) 11 RX */ | |
| /* USART (LIN, FIFO) 11 TX */ | |
| ICR34 = 31; /* USART (LIN, FIFO) 12 RX */ | |
| /* USART (LIN, FIFO) 12 TX */ | |
| ICR35 = 31; /* USART (LIN, FIFO) 13 RX */ | |
| /* USART (LIN, FIFO) 13 TX */ | |
| ICR36 = 31; /* USART (LIN, FIFO) 14 RX */ | |
| /* USART (LIN, FIFO) 14 TX */ | |
| ICR37 = 31; /* USART (LIN, FIFO) 15 RX */ | |
| /* USART (LIN, FIFO) 15 TX */ | |
| ICR38 = 31; /* Input Capture 0 */ | |
| /* Input Capture 1 */ | |
| ICR39 = 31; /* Input Capture 2 */ | |
| /* Input Capture 3 */ | |
| ICR40 = 31; /* Input Capture 4 */ | |
| /* Input Capture 5 */ | |
| ICR41 = 31; /* Input Capture 6 */ | |
| /* Input Capture 7 */ | |
| ICR42 = 31; /* Output Compare 0 */ | |
| /* Output Compare 1 */ | |
| ICR43 = 31; /* Output Compare 2 */ | |
| /* Output Compare 3 */ | |
| ICR44 = 31; /* Output Compare 4 */ | |
| /* Output Compare 5 */ | |
| ICR45 = 31; /* Output Compare 6 */ | |
| /* Output Compare 7 */ | |
| ICR46 = 31; /* Sound Generator */ | |
| /* Phase Frequ. Modulator */ | |
| ICR47 = 31; /* System Reserved */ | |
| /* System Reserved */ | |
| ICR48 = 31; /* Prog. Pulse Gen. 0 */ | |
| /* Prog. Pulse Gen. 1 */ | |
| ICR49 = 31; /* Prog. Pulse Gen. 2 */ | |
| /* Prog. Pulse Gen. 3 */ | |
| ICR50 = 31; /* Prog. Pulse Gen. 4 */ | |
| /* Prog. Pulse Gen. 5 */ | |
| ICR51 = 31; /* Prog. Pulse Gen. 6 */ | |
| /* Prog. Pulse Gen. 7 */ | |
| ICR52 = 31; /* Prog. Pulse Gen. 8 */ | |
| /* Prog. Pulse Gen. 9 */ | |
| ICR53 = 31; /* Prog. Pulse Gen. 10 */ | |
| /* Prog. Pulse Gen. 11 */ | |
| ICR54 = 31; /* Prog. Pulse Gen. 12 */ | |
| /* Prog. Pulse Gen. 13 */ | |
| ICR55 = 31; /* Prog. Pulse Gen. 14 */ | |
| /* Prog. Pulse Gen. 15 */ | |
| ICR56 = 31; /* Up/Down Counter 0 */ | |
| /* Up/Down Counter 1 */ | |
| ICR57 = 31; /* Up/Down Counter 2 */ | |
| /* Up/Down Counter 3 */ | |
| ICR58 = 31; /* Real Time Clock */ | |
| /* Calibration Unit */ | |
| ICR59 = 31; /* A/D Converter 0 */ | |
| /* - */ | |
| ICR60 = 31; /* Alarm Comperator 0 */ | |
| /* Alarm Comperator 1 */ | |
| ICR61 = 31; /* Low Volage Detector */ | |
| /* SMC Zero Point 0-5 */ | |
| ICR62 = 31; /* Timebase Overflow */ | |
| /* PLL Clock Gear */ | |
| ICR63 = 31; /* DMA Controller */ | |
| /* Main/Sub OSC stability wait */ | |
| } | |
| /*------------------------------------------------------------------------ | |
| Prototypes | |
| Add your own prototypes here. Each vector definition needs is proto- | |
| type. Either do it here or include a header file containing them. | |
| -------------------------------------------------------------------------*/ | |
| __interrupt void DefaultIRQHandler (void); | |
| extern __interrupt void ReloadTimer0_IRQHandler ( void ); | |
| extern __interrupt void vPortYield ( void ); | |
| extern __interrupt void vPortYieldDelayed (void); | |
| extern __interrupt void UART2_RxISR(void); | |
| extern __interrupt void UART2_TxISR(void); | |
| extern __interrupt void UART5_RxISR(void); | |
| /*------------------------------------------------------------------------ | |
| Vector definiton | |
| Use following statements to define vectors. All resource related | |
| vectors are predefined. Remaining software interrupts can be added here | |
| as well. | |
| ------------------------------------------------------------------------*/ | |
| #pragma intvect 0xBFF8 0 /* (fixed) reset vector */ | |
| #pragma intvect 0x06000000 1 /* (fixed) Mode Byte */ | |
| #pragma intvect DefaultIRQHandler 15 /* Non Maskable Interrupt */ | |
| #pragma intvect DefaultIRQHandler 16 /* External Interrupt 0 */ | |
| #pragma intvect DefaultIRQHandler 17 /* External Interrupt 1 */ | |
| #pragma intvect DefaultIRQHandler 18 /* External Interrupt 2 */ | |
| #pragma intvect DefaultIRQHandler 19 /* External Interrupt 3 */ | |
| #pragma intvect DefaultIRQHandler 20 /* External Interrupt 4 */ | |
| #pragma intvect DefaultIRQHandler 21 /* External Interrupt 5 */ | |
| #pragma intvect DefaultIRQHandler 22 /* External Interrupt 6 */ | |
| #pragma intvect DefaultIRQHandler 23 /* External Interrupt 7 */ | |
| #pragma intvect DefaultIRQHandler 24 /* External Interrupt 8 */ | |
| #pragma intvect DefaultIRQHandler 25 /* External Interrupt 9 */ | |
| #pragma intvect DefaultIRQHandler 26 /* External Interrupt 10 */ | |
| #pragma intvect DefaultIRQHandler 27 /* External Interrupt 11 */ | |
| #pragma intvect DefaultIRQHandler 28 /* External Interrupt 12 */ | |
| #pragma intvect DefaultIRQHandler 29 /* External Interrupt 13 */ | |
| #pragma intvect DefaultIRQHandler 30 /* External Interrupt 14 */ | |
| #pragma intvect DefaultIRQHandler 31 /* External Interrupt 15 */ | |
| #pragma intvect ReloadTimer0_IRQHandler 32 /* Reload Timer 0 */ | |
| #pragma intvect DefaultIRQHandler 33 /* Reload Timer 1 */ | |
| #pragma intvect DefaultIRQHandler 34 /* Reload Timer 2 */ | |
| #pragma intvect DefaultIRQHandler 35 /* Reload Timer 3 */ | |
| #pragma intvect DefaultIRQHandler 36 /* Reload Timer 4 */ | |
| #pragma intvect DefaultIRQHandler 37 /* Reload Timer 5 */ | |
| #pragma intvect DefaultIRQHandler 38 /* Reload Timer 6 */ | |
| #pragma intvect DefaultIRQHandler 39 /* Reload Timer 7 */ | |
| #pragma intvect DefaultIRQHandler 40 /* Free Run Timer 0 */ | |
| #pragma intvect DefaultIRQHandler 41 /* Free Run Timer 1 */ | |
| #pragma intvect DefaultIRQHandler 42 /* Free Run Timer 2 */ | |
| #pragma intvect DefaultIRQHandler 43 /* Free Run Timer 3 */ | |
| #pragma intvect DefaultIRQHandler 44 /* Free Run Timer 4 */ | |
| #pragma intvect DefaultIRQHandler 45 /* Free Run Timer 5 */ | |
| #pragma intvect DefaultIRQHandler 46 /* Free Run Timer 6 */ | |
| #pragma intvect DefaultIRQHandler 47 /* Free Run Timer 7 */ | |
| #pragma intvect DefaultIRQHandler 48 /* CAN 0 */ | |
| #pragma intvect DefaultIRQHandler 49 /* CAN 1 */ | |
| #pragma intvect DefaultIRQHandler 50 /* CAN 2 */ | |
| #pragma intvect DefaultIRQHandler 51 /* CAN 3 */ | |
| #pragma intvect DefaultIRQHandler 52 /* CAN 4 */ | |
| #pragma intvect DefaultIRQHandler 53 /* CAN 5 */ | |
| #pragma intvect DefaultIRQHandler 54 /* USART (LIN) 0 RX */ | |
| #pragma intvect DefaultIRQHandler 55 /* USART (LIN) 0 TX */ | |
| #pragma intvect DefaultIRQHandler 56 /* USART (LIN) 1 RX */ | |
| #pragma intvect DefaultIRQHandler 57 /* USART (LIN) 1 TX */ | |
| #pragma intvect UART2_RxISR 58 /* USART (LIN) 2 RX */ | |
| #pragma intvect UART2_TxISR 59 /* USART (LIN) 2 TX */ | |
| #pragma intvect DefaultIRQHandler 60 /* USART (LIN) 3 RX */ | |
| #pragma intvect DefaultIRQHandler 61 /* USART (LIN) 3 TX */ | |
| #pragma intvect DefaultIRQHandler 62 /* System Reserved */ | |
| #pragma intvect vPortYieldDelayed 63 /* Delayed Interrupt */ | |
| #pragma intvect vPortYield 64 /* INT 64 */ | |
| #pragma intvect DefaultIRQHandler 65 /* System Reserved */ | |
| #pragma intvect DefaultIRQHandler 66 /* USART (LIN, FIFO) 4 RX */ | |
| #pragma intvect DefaultIRQHandler 67 /* USART (LIN, FIFO) 4 TX */ | |
| #pragma intvect UART5_RxISR 68 /* USART (LIN, FIFO) 5 RX */ | |
| #pragma intvect DefaultIRQHandler 69 /* USART (LIN, FIFO) 5 TX */ | |
| #pragma intvect DefaultIRQHandler 70 /* USART (LIN, FIFO) 6 RX */ | |
| #pragma intvect DefaultIRQHandler 71 /* USART (LIN, FIFO) 6 TX */ | |
| #pragma intvect DefaultIRQHandler 72 /* USART (LIN, FIFO) 7 RX */ | |
| #pragma intvect DefaultIRQHandler 73 /* USART (LIN, FIFO) 7 TX */ | |
| #pragma intvect DefaultIRQHandler 74 /* I2C 0 / I2C 2 */ | |
| #pragma intvect DefaultIRQHandler 75 /* I2C 1 / I2C 3 */ | |
| #pragma intvect DefaultIRQHandler 76 /* USART (LIN, FIFO) 8 RX */ | |
| #pragma intvect DefaultIRQHandler 77 /* USART (LIN, FIFO) 8 TX */ | |
| #pragma intvect DefaultIRQHandler 78 /* USART (LIN, FIFO) 9 RX */ | |
| #pragma intvect DefaultIRQHandler 79 /* USART (LIN, FIFO) 9 TX */ | |
| #pragma intvect DefaultIRQHandler 80 /* USART (LIN, FIFO) 10 RX */ | |
| #pragma intvect DefaultIRQHandler 81 /* USART (LIN, FIFO) 10 TX */ | |
| #pragma intvect DefaultIRQHandler 82 /* USART (LIN, FIFO) 11 RX */ | |
| #pragma intvect DefaultIRQHandler 83 /* USART (LIN, FIFO) 11 TX */ | |
| #pragma intvect DefaultIRQHandler 84 /* USART (LIN, FIFO) 12 RX */ | |
| #pragma intvect DefaultIRQHandler 85 /* USART (LIN, FIFO) 12 TX */ | |
| #pragma intvect DefaultIRQHandler 86 /* USART (LIN, FIFO) 13 RX */ | |
| #pragma intvect DefaultIRQHandler 87 /* USART (LIN, FIFO) 13 TX */ | |
| #pragma intvect DefaultIRQHandler 88 /* USART (LIN, FIFO) 14 RX */ | |
| #pragma intvect DefaultIRQHandler 89 /* USART (LIN, FIFO) 14 TX */ | |
| #pragma intvect DefaultIRQHandler 90 /* USART (LIN, FIFO) 15 RX */ | |
| #pragma intvect DefaultIRQHandler 91 /* USART (LIN, FIFO) 15 TX */ | |
| #pragma intvect DefaultIRQHandler 92 /* Input Capture 0 */ | |
| #pragma intvect DefaultIRQHandler 93 /* Input Capture 1 */ | |
| #pragma intvect DefaultIRQHandler 94 /* Input Capture 2 */ | |
| #pragma intvect DefaultIRQHandler 95 /* Input Capture 3 */ | |
| #pragma intvect DefaultIRQHandler 96 /* Input Capture 4 */ | |
| #pragma intvect DefaultIRQHandler 97 /* Input Capture 5 */ | |
| #pragma intvect DefaultIRQHandler 98 /* Input Capture 6 */ | |
| #pragma intvect DefaultIRQHandler 99 /* Input Capture 7 */ | |
| #pragma intvect DefaultIRQHandler 100 /* Output Compare 0 */ | |
| #pragma intvect DefaultIRQHandler 101 /* Output Compare 1 */ | |
| #pragma intvect DefaultIRQHandler 102 /* Output Compare 2 */ | |
| #pragma intvect DefaultIRQHandler 103 /* Output Compare 3 */ | |
| #pragma intvect DefaultIRQHandler 104 /* Output Compare 4 */ | |
| #pragma intvect DefaultIRQHandler 105 /* Output Compare 5 */ | |
| #pragma intvect DefaultIRQHandler 106 /* Output Compare 6 */ | |
| #pragma intvect DefaultIRQHandler 107 /* Output Compare 7 */ | |
| #pragma intvect DefaultIRQHandler 108 /* Sound Generator */ | |
| #pragma intvect DefaultIRQHandler 109 /* Phase Frequ. Modulator */ | |
| #pragma intvect DefaultIRQHandler 110 /* System Reserved */ | |
| #pragma intvect DefaultIRQHandler 111 /* System Reserved */ | |
| #pragma intvect DefaultIRQHandler 112 /* Prog. Pulse Gen. 0 */ | |
| #pragma intvect DefaultIRQHandler 113 /* Prog. Pulse Gen. 1 */ | |
| #pragma intvect DefaultIRQHandler 114 /* Prog. Pulse Gen. 2 */ | |
| #pragma intvect DefaultIRQHandler 115 /* Prog. Pulse Gen. 3 */ | |
| #pragma intvect DefaultIRQHandler 116 /* Prog. Pulse Gen. 4 */ | |
| #pragma intvect DefaultIRQHandler 117 /* Prog. Pulse Gen. 5 */ | |
| #pragma intvect DefaultIRQHandler 118 /* Prog. Pulse Gen. 6 */ | |
| #pragma intvect DefaultIRQHandler 119 /* Prog. Pulse Gen. 7 */ | |
| #pragma intvect DefaultIRQHandler 120 /* Prog. Pulse Gen. 8 */ | |
| #pragma intvect DefaultIRQHandler 121 /* Prog. Pulse Gen. 9 */ | |
| #pragma intvect DefaultIRQHandler 122 /* Prog. Pulse Gen. 10 */ | |
| #pragma intvect DefaultIRQHandler 123 /* Prog. Pulse Gen. 11 */ | |
| #pragma intvect DefaultIRQHandler 124 /* Prog. Pulse Gen. 12 */ | |
| #pragma intvect DefaultIRQHandler 125 /* Prog. Pulse Gen. 13 */ | |
| #pragma intvect DefaultIRQHandler 126 /* Prog. Pulse Gen. 14 */ | |
| #pragma intvect DefaultIRQHandler 127 /* Prog. Pulse Gen. 15 */ | |
| #pragma intvect DefaultIRQHandler 128 /* Up/Down Counter 0 */ | |
| #pragma intvect DefaultIRQHandler 129 /* Up/Down Counter 1 */ | |
| #pragma intvect DefaultIRQHandler 130 /* Up/Down Counter 2 */ | |
| #pragma intvect DefaultIRQHandler 131 /* Up/Down Counter 3 */ | |
| #pragma intvect DefaultIRQHandler 132 /* Real Time Clock */ | |
| #pragma intvect DefaultIRQHandler 133 /* Calibration Unit */ | |
| #pragma intvect DefaultIRQHandler 134 /* A/D Converter 0 */ | |
| #pragma intvect DefaultIRQHandler 135 /* - */ | |
| #pragma intvect DefaultIRQHandler 136 /* Alarm Comperator 0 */ | |
| #pragma intvect DefaultIRQHandler 137 /* Alarm Comperator 1 */ | |
| #pragma intvect DefaultIRQHandler 138 /* Low Volage Detector */ | |
| #pragma intvect DefaultIRQHandler 139 /* SMC Zero Point 0-5 */ | |
| #pragma intvect DefaultIRQHandler 140 /* Timebase Overflow */ | |
| #pragma intvect DefaultIRQHandler 141 /* PLL Clock Gear */ | |
| #pragma intvect DefaultIRQHandler 142 /* DMA Controller */ | |
| #pragma intvect DefaultIRQHandler 143 /* Main/Sub OSC stability wait */ | |
| #pragma intvect 0xFFFFFFFF 144 /* Boot Sec. Vector (MB91V460A) */ | |
| /*------------------------------------------------------------------------ | |
| DefaultIRQHandler() | |
| This function is a placeholder for all vector definitions. Either use | |
| your own placeholder or add necessary code here. | |
| -------------------------------------------------------------------------*/ | |
| __interrupt | |
| void DefaultIRQHandler (void) | |
| { | |
| /* RB_SYNC; */ /* Synchronisation with R-Bus */ | |
| /* May be required, if there is */ | |
| /* no R-Bus access after the */ | |
| /* reset of the interrupt flag */ | |
| __DI(); /* disable interrupts */ | |
| while(1) | |
| { | |
| Kick_Watchdog(); /* feed hardware watchdog */ | |
| } | |
| /* halt system */ | |
| } |