]> git.sur5r.net Git - freertos/blob
d9a1b42adb9ba0bb0f045c156c0ddfdb7905c1fb
[freertos] /
1 /******************************************************************************
2 *
3 * Copyright (C) 2014 - 2015 Xilinx, Inc. All rights reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * Use of the Software is limited solely to applications:
16 * (a) running on a Xilinx device, or
17 * (b) that interact with a Xilinx device through a bus or interconnect.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
26 *
27 * Except as contained in this notice, the name of the Xilinx shall not be used
28 * in advertising or otherwise to promote the sale, use or other dealings in
29 * this Software without prior written authorization from Xilinx.
30 *
31 ******************************************************************************/
32 /*****************************************************************************/
33 /**
34 * @file vectors.c
35 *
36 * This file contains the C level vectors for the ARM Cortex A53 core.
37 *
38 * <pre>
39 * MODIFICATION HISTORY:
40 *
41 * Ver   Who  Date     Changes
42 * ----- ---- -------- ---------------------------------------------------
43 * 5.00  pkp  05/29/14 First release
44 * </pre>
45 *
46 * @note
47 *
48 * None.
49 *
50 ******************************************************************************/
51 /***************************** Include Files *********************************/
52
53 #include "xil_exception.h"
54 #include "vectors.h"
55
56 /************************** Constant Definitions *****************************/
57
58 /**************************** Type Definitions *******************************/
59
60 typedef struct {
61         Xil_ExceptionHandler Handler;
62         void *Data;
63 } XExc_VectorTableEntry;
64
65 /***************** Macros (Inline Functions) Definitions *********************/
66
67 /************************** Variable Definitions *****************************/
68
69 extern XExc_VectorTableEntry XExc_VectorTable[];
70
71 /************************** Function Prototypes ******************************/
72
73
74
75 /*****************************************************************************/
76 /**
77 *
78 * This is the C level wrapper for the FIQ interrupt called from the vectors.s
79 * file.
80 *
81 * @param        None.
82 *
83 * @return       None.
84 *
85 * @note         None.
86 *
87 ******************************************************************************/
88 void FIQInterrupt(void)
89 {
90         XExc_VectorTable[XIL_EXCEPTION_ID_FIQ_INT].Handler(XExc_VectorTable[
91                                         XIL_EXCEPTION_ID_FIQ_INT].Data);
92 }
93
94 /*****************************************************************************/
95 /**
96 *
97 * This is the C level wrapper for the IRQ interrupt called from the vectors.s
98 * file.
99 *
100 * @param        None.
101 *
102 * @return       None.
103 *
104 * @note         None.
105 *
106 ******************************************************************************/
107 void IRQInterrupt(void)
108 {
109         XExc_VectorTable[XIL_EXCEPTION_ID_IRQ_INT].Handler(XExc_VectorTable[
110                                         XIL_EXCEPTION_ID_IRQ_INT].Data);
111 }
112
113 /*****************************************************************************/
114 /**
115 *
116 * This is the C level wrapper for the Synchronous Interrupt called from the vectors.s
117 * file.
118 *
119 * @param        None.
120 *
121 * @return       None.
122 *
123 * @note         None.
124 *
125 ******************************************************************************/
126 void SynchronousInterrupt(void)
127 {
128         XExc_VectorTable[XIL_EXCEPTION_ID_SYNC_INT].Handler(XExc_VectorTable[
129                                         XIL_EXCEPTION_ID_SYNC_INT].Data);
130 }
131
132 /*****************************************************************************/
133 /**
134 *
135 * This is the C level wrapper for the SError Interrupt called from the
136 * vectors.s file.
137 *
138 * @param        None.
139 *
140 * @return       None.
141 *
142 * @note         None.
143 *
144 ******************************************************************************/
145 void SErrorInterrupt(void)
146 {
147         XExc_VectorTable[XIL_EXCEPTION_ID_SERROR_ABORT_INT].Handler(
148                 XExc_VectorTable[XIL_EXCEPTION_ID_SERROR_ABORT_INT].Data);
149 }