stm32f407/stm32f407g-disc1/Drivers/CMSIS/Include/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 (armclang)
39  */
40 #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
41  #include "cmsis_armclang.h"
42 
43 
44 /*
45  * GNU Compiler
46  */
47 #elif defined ( __GNUC__ )
48  #include "cmsis_gcc.h"
49 
50 
51 /*
52  * IAR Compiler
53  */
54 #elif defined ( __ICCARM__ )
55  #include <cmsis_iccarm.h>
56 
57 
58 /*
59  * TI Arm Compiler
60  */
61 #elif defined ( __TI_ARM__ )
62  #include <cmsis_ccs.h>
63 
64  #ifndef __ASM
65  #define __ASM __asm
66  #endif
67  #ifndef __INLINE
68  #define __INLINE inline
69  #endif
70  #ifndef __STATIC_INLINE
71  #define __STATIC_INLINE static inline
72  #endif
73  #ifndef __STATIC_FORCEINLINE
74  #define __STATIC_FORCEINLINE __STATIC_INLINE
75  #endif
76  #ifndef __NO_RETURN
77  #define __NO_RETURN __attribute__((noreturn))
78  #endif
79  #ifndef __USED
80  #define __USED __attribute__((used))
81  #endif
82  #ifndef __WEAK
83  #define __WEAK __attribute__((weak))
84  #endif
85  #ifndef __PACKED
86  #define __PACKED __attribute__((packed))
87  #endif
88  #ifndef __PACKED_STRUCT
89  #define __PACKED_STRUCT struct __attribute__((packed))
90  #endif
91  #ifndef __PACKED_UNION
92  #define __PACKED_UNION union __attribute__((packed))
93  #endif
94  #ifndef __UNALIGNED_UINT32 /* deprecated */
95  struct __attribute__((packed)) T_UINT32 { uint32_t v; };
96  #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
97  #endif
98  #ifndef __UNALIGNED_UINT16_WRITE
99  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
100  #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val))
101  #endif
102  #ifndef __UNALIGNED_UINT16_READ
103  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
104  #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
105  #endif
106  #ifndef __UNALIGNED_UINT32_WRITE
107  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
108  #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
109  #endif
110  #ifndef __UNALIGNED_UINT32_READ
111  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
112  #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
113  #endif
114  #ifndef __ALIGNED
115  #define __ALIGNED(x) __attribute__((aligned(x)))
116  #endif
117  #ifndef __RESTRICT
118  #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
119  #define __RESTRICT
120  #endif
121 
122 
123 /*
124  * TASKING Compiler
125  */
126 #elif defined ( __TASKING__ )
127  /*
128  * The CMSIS functions have been implemented as intrinsics in the compiler.
129  * Please use "carm -?i" to get an up to date list of all intrinsics,
130  * Including the CMSIS ones.
131  */
132 
133  #ifndef __ASM
134  #define __ASM __asm
135  #endif
136  #ifndef __INLINE
137  #define __INLINE inline
138  #endif
139  #ifndef __STATIC_INLINE
140  #define __STATIC_INLINE static inline
141  #endif
142  #ifndef __STATIC_FORCEINLINE
143  #define __STATIC_FORCEINLINE __STATIC_INLINE
144  #endif
145  #ifndef __NO_RETURN
146  #define __NO_RETURN __attribute__((noreturn))
147  #endif
148  #ifndef __USED
149  #define __USED __attribute__((used))
150  #endif
151  #ifndef __WEAK
152  #define __WEAK __attribute__((weak))
153  #endif
154  #ifndef __PACKED
155  #define __PACKED __packed__
156  #endif
157  #ifndef __PACKED_STRUCT
158  #define __PACKED_STRUCT struct __packed__
159  #endif
160  #ifndef __PACKED_UNION
161  #define __PACKED_UNION union __packed__
162  #endif
163  #ifndef __UNALIGNED_UINT32 /* deprecated */
164  struct __packed__ T_UINT32 { uint32_t v; };
165  #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
166  #endif
167  #ifndef __UNALIGNED_UINT16_WRITE
168  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
169  #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
170  #endif
171  #ifndef __UNALIGNED_UINT16_READ
172  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
173  #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
174  #endif
175  #ifndef __UNALIGNED_UINT32_WRITE
176  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
177  #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
178  #endif
179  #ifndef __UNALIGNED_UINT32_READ
180  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
181  #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
182  #endif
183  #ifndef __ALIGNED
184  #define __ALIGNED(x) __align(x)
185  #endif
186  #ifndef __RESTRICT
187  #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
188  #define __RESTRICT
189  #endif
190 
191 
192 /*
193  * COSMIC Compiler
194  */
195 #elif defined ( __CSMC__ )
196  #include <cmsis_csm.h>
197 
198  #ifndef __ASM
199  #define __ASM _asm
200  #endif
201  #ifndef __INLINE
202  #define __INLINE inline
203  #endif
204  #ifndef __STATIC_INLINE
205  #define __STATIC_INLINE static inline
206  #endif
207  #ifndef __STATIC_FORCEINLINE
208  #define __STATIC_FORCEINLINE __STATIC_INLINE
209  #endif
210  #ifndef __NO_RETURN
211  // NO RETURN is automatically detected hence no warning here
212  #define __NO_RETURN
213  #endif
214  #ifndef __USED
215  #warning No compiler specific solution for __USED. __USED is ignored.
216  #define __USED
217  #endif
218  #ifndef __WEAK
219  #define __WEAK __weak
220  #endif
221  #ifndef __PACKED
222  #define __PACKED @packed
223  #endif
224  #ifndef __PACKED_STRUCT
225  #define __PACKED_STRUCT @packed struct
226  #endif
227  #ifndef __PACKED_UNION
228  #define __PACKED_UNION @packed union
229  #endif
230  #ifndef __UNALIGNED_UINT32 /* deprecated */
231  @packed struct T_UINT32 { uint32_t v; };
232  #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
233  #endif
234  #ifndef __UNALIGNED_UINT16_WRITE
235  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
236  #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
237  #endif
238  #ifndef __UNALIGNED_UINT16_READ
239  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
240  #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
241  #endif
242  #ifndef __UNALIGNED_UINT32_WRITE
243  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
244  #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
245  #endif
246  #ifndef __UNALIGNED_UINT32_READ
247  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
248  #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
249  #endif
250  #ifndef __ALIGNED
251  #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
252  #define __ALIGNED(x)
253  #endif
254  #ifndef __RESTRICT
255  #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
256  #define __RESTRICT
257  #endif
258 
259 
260 #else
261  #error Unknown compiler.
262 #endif
263 
264 
265 #endif /* __CMSIS_COMPILER_H */
266 
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