imxrt1050/imxrt1050-evkb/CMSIS/cmsis_compiler.h
Go to the documentation of this file.
1 /**************************************************************************/
7 /*
8  * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
9  *
10  * SPDX-License-Identifier: Apache-2.0
11  *
12  * Licensed under the Apache License, Version 2.0 (the License); you may
13  * not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  * www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  */
24 
25 #ifndef __CMSIS_COMPILER_H
26 #define __CMSIS_COMPILER_H
27 
28 #include <stdint.h>
29 
30 /*
31  * Arm Compiler 4/5
32  */
33 #if defined ( __CC_ARM )
34  #include "cmsis_armcc.h"
35 
36 
37 /*
38  * Arm Compiler 6.6 LTM (armclang)
39  */
40 #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100)
41  #include "cmsis_armclang_ltm.h"
42 
43  /*
44  * Arm Compiler above 6.10.1 (armclang)
45  */
46 #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100)
47  #include "cmsis_armclang.h"
48 
49 
50 /*
51  * GNU Compiler
52  */
53 #elif defined ( __GNUC__ )
54  #include "cmsis_gcc.h"
55 
56 
57 /*
58  * IAR Compiler
59  */
60 #elif defined ( __ICCARM__ )
61  #include <cmsis_iccarm.h>
62 
63 
64 /*
65  * TI Arm Compiler
66  */
67 #elif defined ( __TI_ARM__ )
68  #include <cmsis_ccs.h>
69 
70  #ifndef __ASM
71  #define __ASM __asm
72  #endif
73  #ifndef __INLINE
74  #define __INLINE inline
75  #endif
76  #ifndef __STATIC_INLINE
77  #define __STATIC_INLINE static inline
78  #endif
79  #ifndef __STATIC_FORCEINLINE
80  #define __STATIC_FORCEINLINE __STATIC_INLINE
81  #endif
82  #ifndef __NO_RETURN
83  #define __NO_RETURN __attribute__((noreturn))
84  #endif
85  #ifndef __USED
86  #define __USED __attribute__((used))
87  #endif
88  #ifndef __WEAK
89  #define __WEAK __attribute__((weak))
90  #endif
91  #ifndef __PACKED
92  #define __PACKED __attribute__((packed))
93  #endif
94  #ifndef __PACKED_STRUCT
95  #define __PACKED_STRUCT struct __attribute__((packed))
96  #endif
97  #ifndef __PACKED_UNION
98  #define __PACKED_UNION union __attribute__((packed))
99  #endif
100  #ifndef __UNALIGNED_UINT32 /* deprecated */
101  struct __attribute__((packed)) T_UINT32 { uint32_t v; };
102  #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
103  #endif
104  #ifndef __UNALIGNED_UINT16_WRITE
105  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
106  #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val))
107  #endif
108  #ifndef __UNALIGNED_UINT16_READ
109  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
110  #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
111  #endif
112  #ifndef __UNALIGNED_UINT32_WRITE
113  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
114  #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
115  #endif
116  #ifndef __UNALIGNED_UINT32_READ
117  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
118  #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
119  #endif
120  #ifndef __ALIGNED
121  #define __ALIGNED(x) __attribute__((aligned(x)))
122  #endif
123  #ifndef __RESTRICT
124  #define __RESTRICT __restrict
125  #endif
126  #ifndef __COMPILER_BARRIER
127  #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored.
128  #define __COMPILER_BARRIER() (void)0
129  #endif
130 
131 
132 /*
133  * TASKING Compiler
134  */
135 #elif defined ( __TASKING__ )
136  /*
137  * The CMSIS functions have been implemented as intrinsics in the compiler.
138  * Please use "carm -?i" to get an up to date list of all intrinsics,
139  * Including the CMSIS ones.
140  */
141 
142  #ifndef __ASM
143  #define __ASM __asm
144  #endif
145  #ifndef __INLINE
146  #define __INLINE inline
147  #endif
148  #ifndef __STATIC_INLINE
149  #define __STATIC_INLINE static inline
150  #endif
151  #ifndef __STATIC_FORCEINLINE
152  #define __STATIC_FORCEINLINE __STATIC_INLINE
153  #endif
154  #ifndef __NO_RETURN
155  #define __NO_RETURN __attribute__((noreturn))
156  #endif
157  #ifndef __USED
158  #define __USED __attribute__((used))
159  #endif
160  #ifndef __WEAK
161  #define __WEAK __attribute__((weak))
162  #endif
163  #ifndef __PACKED
164  #define __PACKED __packed__
165  #endif
166  #ifndef __PACKED_STRUCT
167  #define __PACKED_STRUCT struct __packed__
168  #endif
169  #ifndef __PACKED_UNION
170  #define __PACKED_UNION union __packed__
171  #endif
172  #ifndef __UNALIGNED_UINT32 /* deprecated */
173  struct __packed__ T_UINT32 { uint32_t v; };
174  #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
175  #endif
176  #ifndef __UNALIGNED_UINT16_WRITE
177  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
178  #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
179  #endif
180  #ifndef __UNALIGNED_UINT16_READ
181  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
182  #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
183  #endif
184  #ifndef __UNALIGNED_UINT32_WRITE
185  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
186  #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
187  #endif
188  #ifndef __UNALIGNED_UINT32_READ
189  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
190  #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
191  #endif
192  #ifndef __ALIGNED
193  #define __ALIGNED(x) __align(x)
194  #endif
195  #ifndef __RESTRICT
196  #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
197  #define __RESTRICT
198  #endif
199  #ifndef __COMPILER_BARRIER
200  #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored.
201  #define __COMPILER_BARRIER() (void)0
202  #endif
203 
204 
205 /*
206  * COSMIC Compiler
207  */
208 #elif defined ( __CSMC__ )
209  #include <cmsis_csm.h>
210 
211  #ifndef __ASM
212  #define __ASM _asm
213  #endif
214  #ifndef __INLINE
215  #define __INLINE inline
216  #endif
217  #ifndef __STATIC_INLINE
218  #define __STATIC_INLINE static inline
219  #endif
220  #ifndef __STATIC_FORCEINLINE
221  #define __STATIC_FORCEINLINE __STATIC_INLINE
222  #endif
223  #ifndef __NO_RETURN
224  // NO RETURN is automatically detected hence no warning here
225  #define __NO_RETURN
226  #endif
227  #ifndef __USED
228  #warning No compiler specific solution for __USED. __USED is ignored.
229  #define __USED
230  #endif
231  #ifndef __WEAK
232  #define __WEAK __weak
233  #endif
234  #ifndef __PACKED
235  #define __PACKED @packed
236  #endif
237  #ifndef __PACKED_STRUCT
238  #define __PACKED_STRUCT @packed struct
239  #endif
240  #ifndef __PACKED_UNION
241  #define __PACKED_UNION @packed union
242  #endif
243  #ifndef __UNALIGNED_UINT32 /* deprecated */
244  @packed struct T_UINT32 { uint32_t v; };
245  #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
246  #endif
247  #ifndef __UNALIGNED_UINT16_WRITE
248  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
249  #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
250  #endif
251  #ifndef __UNALIGNED_UINT16_READ
252  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
253  #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
254  #endif
255  #ifndef __UNALIGNED_UINT32_WRITE
256  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
257  #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
258  #endif
259  #ifndef __UNALIGNED_UINT32_READ
260  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
261  #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
262  #endif
263  #ifndef __ALIGNED
264  #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
265  #define __ALIGNED(x)
266  #endif
267  #ifndef __RESTRICT
268  #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
269  #define __RESTRICT
270  #endif
271  #ifndef __COMPILER_BARRIER
272  #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored.
273  #define __COMPILER_BARRIER() (void)0
274  #endif
275 
276 
277 #else
278  #error Unknown compiler.
279 #endif
280 
281 
282 #endif /* __CMSIS_COMPILER_H */
283 
T_UINT16_WRITE
__PACKED_STRUCT T_UINT16_WRITE
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:79
T_UINT32_WRITE
__PACKED_STRUCT T_UINT32_WRITE
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:95
__PACKED_STRUCT
#define __PACKED_STRUCT
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armcc.h:81
T_UINT16_READ
__PACKED_STRUCT T_UINT16_READ
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:87
__attribute__
__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value)
Reverse byte order (16 bit)
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armcc.h:492
T_UINT32_READ
__PACKED_STRUCT T_UINT32_READ
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:103


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:47