Biomimetics MBED Library w/ Added Support for CAN3

Dependents:   CAN_TEST SPIne_Plus_DYNO_SENSORS SPIne_Plus_v2 SPIne_Plus_Dyno_v2

Committer:
saloutos
Date:
Thu Nov 26 04:08:56 2020 +0000
Revision:
0:083111ae2a11
first commit of leaned mbed dev lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
saloutos 0:083111ae2a11 1 /**************************************************************************//**
saloutos 0:083111ae2a11 2 * @file cmsis_compiler.h
saloutos 0:083111ae2a11 3 * @brief CMSIS compiler specific macros, functions, instructions
saloutos 0:083111ae2a11 4 * @version V1.00
saloutos 0:083111ae2a11 5 * @date 22. Feb 2017
saloutos 0:083111ae2a11 6 ******************************************************************************/
saloutos 0:083111ae2a11 7 /*
saloutos 0:083111ae2a11 8 * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
saloutos 0:083111ae2a11 9 *
saloutos 0:083111ae2a11 10 * SPDX-License-Identifier: Apache-2.0
saloutos 0:083111ae2a11 11 *
saloutos 0:083111ae2a11 12 * Licensed under the Apache License, Version 2.0 (the License); you may
saloutos 0:083111ae2a11 13 * not use this file except in compliance with the License.
saloutos 0:083111ae2a11 14 * You may obtain a copy of the License at
saloutos 0:083111ae2a11 15 *
saloutos 0:083111ae2a11 16 * www.apache.org/licenses/LICENSE-2.0
saloutos 0:083111ae2a11 17 *
saloutos 0:083111ae2a11 18 * Unless required by applicable law or agreed to in writing, software
saloutos 0:083111ae2a11 19 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
saloutos 0:083111ae2a11 20 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
saloutos 0:083111ae2a11 21 * See the License for the specific language governing permissions and
saloutos 0:083111ae2a11 22 * limitations under the License.
saloutos 0:083111ae2a11 23 */
saloutos 0:083111ae2a11 24
saloutos 0:083111ae2a11 25 #ifndef __CMSIS_COMPILER_H
saloutos 0:083111ae2a11 26 #define __CMSIS_COMPILER_H
saloutos 0:083111ae2a11 27
saloutos 0:083111ae2a11 28 #include <stdint.h>
saloutos 0:083111ae2a11 29
saloutos 0:083111ae2a11 30 /*
saloutos 0:083111ae2a11 31 * ARM Compiler 4/5
saloutos 0:083111ae2a11 32 */
saloutos 0:083111ae2a11 33 #if defined ( __CC_ARM )
saloutos 0:083111ae2a11 34 #include "cmsis_armcc.h"
saloutos 0:083111ae2a11 35
saloutos 0:083111ae2a11 36
saloutos 0:083111ae2a11 37 /*
saloutos 0:083111ae2a11 38 * ARM Compiler 6 (armclang)
saloutos 0:083111ae2a11 39 */
saloutos 0:083111ae2a11 40 #elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
saloutos 0:083111ae2a11 41 #include "cmsis_armclang.h"
saloutos 0:083111ae2a11 42
saloutos 0:083111ae2a11 43
saloutos 0:083111ae2a11 44 /*
saloutos 0:083111ae2a11 45 * GNU Compiler
saloutos 0:083111ae2a11 46 */
saloutos 0:083111ae2a11 47 #elif defined ( __GNUC__ )
saloutos 0:083111ae2a11 48 #include "cmsis_gcc.h"
saloutos 0:083111ae2a11 49
saloutos 0:083111ae2a11 50
saloutos 0:083111ae2a11 51 /*
saloutos 0:083111ae2a11 52 * IAR Compiler
saloutos 0:083111ae2a11 53 */
saloutos 0:083111ae2a11 54 #elif defined ( __ICCARM__ )
saloutos 0:083111ae2a11 55
saloutos 0:083111ae2a11 56 #ifndef __ASM
saloutos 0:083111ae2a11 57 #define __ASM __asm
saloutos 0:083111ae2a11 58 #endif
saloutos 0:083111ae2a11 59 #ifndef __INLINE
saloutos 0:083111ae2a11 60 #define __INLINE inline
saloutos 0:083111ae2a11 61 #endif
saloutos 0:083111ae2a11 62 #ifndef __STATIC_INLINE
saloutos 0:083111ae2a11 63 #define __STATIC_INLINE static inline
saloutos 0:083111ae2a11 64 #endif
saloutos 0:083111ae2a11 65
saloutos 0:083111ae2a11 66 #include <cmsis_iar.h>
saloutos 0:083111ae2a11 67
saloutos 0:083111ae2a11 68 #ifndef __NO_RETURN
saloutos 0:083111ae2a11 69 #define __NO_RETURN __noreturn
saloutos 0:083111ae2a11 70 #endif
saloutos 0:083111ae2a11 71 #ifndef __USED
saloutos 0:083111ae2a11 72 #define __USED __root
saloutos 0:083111ae2a11 73 #endif
saloutos 0:083111ae2a11 74 #ifndef __WEAK
saloutos 0:083111ae2a11 75 #define __WEAK __weak
saloutos 0:083111ae2a11 76 #endif
saloutos 0:083111ae2a11 77 #ifndef __UNALIGNED_UINT32
saloutos 0:083111ae2a11 78 __packed struct T_UINT32 { uint32_t v; };
saloutos 0:083111ae2a11 79 #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
saloutos 0:083111ae2a11 80 #endif
saloutos 0:083111ae2a11 81 #ifndef __ALIGNED
saloutos 0:083111ae2a11 82 #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
saloutos 0:083111ae2a11 83 #define __ALIGNED(x)
saloutos 0:083111ae2a11 84 #endif
saloutos 0:083111ae2a11 85 #ifndef __PACKED
saloutos 0:083111ae2a11 86 #define __PACKED __packed
saloutos 0:083111ae2a11 87 #endif
saloutos 0:083111ae2a11 88
saloutos 0:083111ae2a11 89
saloutos 0:083111ae2a11 90 /*
saloutos 0:083111ae2a11 91 * TI ARM Compiler
saloutos 0:083111ae2a11 92 */
saloutos 0:083111ae2a11 93 #elif defined ( __TI_ARM__ )
saloutos 0:083111ae2a11 94 #include <cmsis_ccs.h>
saloutos 0:083111ae2a11 95
saloutos 0:083111ae2a11 96 #ifndef __ASM
saloutos 0:083111ae2a11 97 #define __ASM __asm
saloutos 0:083111ae2a11 98 #endif
saloutos 0:083111ae2a11 99 #ifndef __INLINE
saloutos 0:083111ae2a11 100 #define __INLINE inline
saloutos 0:083111ae2a11 101 #endif
saloutos 0:083111ae2a11 102 #ifndef __STATIC_INLINE
saloutos 0:083111ae2a11 103 #define __STATIC_INLINE static inline
saloutos 0:083111ae2a11 104 #endif
saloutos 0:083111ae2a11 105 #ifndef __NO_RETURN
saloutos 0:083111ae2a11 106 #define __NO_RETURN __attribute__((noreturn))
saloutos 0:083111ae2a11 107 #endif
saloutos 0:083111ae2a11 108 #ifndef __USED
saloutos 0:083111ae2a11 109 #define __USED __attribute__((used))
saloutos 0:083111ae2a11 110 #endif
saloutos 0:083111ae2a11 111 #ifndef __WEAK
saloutos 0:083111ae2a11 112 #define __WEAK __attribute__((weak))
saloutos 0:083111ae2a11 113 #endif
saloutos 0:083111ae2a11 114 #ifndef __UNALIGNED_UINT32
saloutos 0:083111ae2a11 115 struct __attribute__((packed)) T_UINT32 { uint32_t v; };
saloutos 0:083111ae2a11 116 #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
saloutos 0:083111ae2a11 117 #endif
saloutos 0:083111ae2a11 118 #ifndef __ALIGNED
saloutos 0:083111ae2a11 119 #define __ALIGNED(x) __attribute__((aligned(x)))
saloutos 0:083111ae2a11 120 #endif
saloutos 0:083111ae2a11 121 #ifndef __PACKED
saloutos 0:083111ae2a11 122 #define __PACKED __attribute__((packed))
saloutos 0:083111ae2a11 123 #endif
saloutos 0:083111ae2a11 124
saloutos 0:083111ae2a11 125
saloutos 0:083111ae2a11 126 /*
saloutos 0:083111ae2a11 127 * TASKING Compiler
saloutos 0:083111ae2a11 128 */
saloutos 0:083111ae2a11 129 #elif defined ( __TASKING__ )
saloutos 0:083111ae2a11 130 /*
saloutos 0:083111ae2a11 131 * The CMSIS functions have been implemented as intrinsics in the compiler.
saloutos 0:083111ae2a11 132 * Please use "carm -?i" to get an up to date list of all intrinsics,
saloutos 0:083111ae2a11 133 * Including the CMSIS ones.
saloutos 0:083111ae2a11 134 */
saloutos 0:083111ae2a11 135
saloutos 0:083111ae2a11 136 #ifndef __ASM
saloutos 0:083111ae2a11 137 #define __ASM __asm
saloutos 0:083111ae2a11 138 #endif
saloutos 0:083111ae2a11 139 #ifndef __INLINE
saloutos 0:083111ae2a11 140 #define __INLINE inline
saloutos 0:083111ae2a11 141 #endif
saloutos 0:083111ae2a11 142 #ifndef __STATIC_INLINE
saloutos 0:083111ae2a11 143 #define __STATIC_INLINE static inline
saloutos 0:083111ae2a11 144 #endif
saloutos 0:083111ae2a11 145 #ifndef __NO_RETURN
saloutos 0:083111ae2a11 146 #define __NO_RETURN __attribute__((noreturn))
saloutos 0:083111ae2a11 147 #endif
saloutos 0:083111ae2a11 148 #ifndef __USED
saloutos 0:083111ae2a11 149 #define __USED __attribute__((used))
saloutos 0:083111ae2a11 150 #endif
saloutos 0:083111ae2a11 151 #ifndef __WEAK
saloutos 0:083111ae2a11 152 #define __WEAK __attribute__((weak))
saloutos 0:083111ae2a11 153 #endif
saloutos 0:083111ae2a11 154 #ifndef __UNALIGNED_UINT32
saloutos 0:083111ae2a11 155 struct __packed__ T_UINT32 { uint32_t v; };
saloutos 0:083111ae2a11 156 #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
saloutos 0:083111ae2a11 157 #endif
saloutos 0:083111ae2a11 158 #ifndef __ALIGNED
saloutos 0:083111ae2a11 159 #define __ALIGNED(x) __align(x)
saloutos 0:083111ae2a11 160 #endif
saloutos 0:083111ae2a11 161 #ifndef __PACKED
saloutos 0:083111ae2a11 162 #define __PACKED __packed__
saloutos 0:083111ae2a11 163 #endif
saloutos 0:083111ae2a11 164
saloutos 0:083111ae2a11 165
saloutos 0:083111ae2a11 166 /*
saloutos 0:083111ae2a11 167 * COSMIC Compiler
saloutos 0:083111ae2a11 168 */
saloutos 0:083111ae2a11 169 #elif defined ( __CSMC__ )
saloutos 0:083111ae2a11 170 #include <cmsis_csm.h>
saloutos 0:083111ae2a11 171
saloutos 0:083111ae2a11 172 #ifndef __ASM
saloutos 0:083111ae2a11 173 #define __ASM _asm
saloutos 0:083111ae2a11 174 #endif
saloutos 0:083111ae2a11 175 #ifndef __INLINE
saloutos 0:083111ae2a11 176 #define __INLINE inline
saloutos 0:083111ae2a11 177 #endif
saloutos 0:083111ae2a11 178 #ifndef __STATIC_INLINE
saloutos 0:083111ae2a11 179 #define __STATIC_INLINE static inline
saloutos 0:083111ae2a11 180 #endif
saloutos 0:083111ae2a11 181 #ifndef __NO_RETURN
saloutos 0:083111ae2a11 182 // NO RETURN is automatically detected hence no warning here
saloutos 0:083111ae2a11 183 #define __NO_RETURN
saloutos 0:083111ae2a11 184 #endif
saloutos 0:083111ae2a11 185 #ifndef __USED
saloutos 0:083111ae2a11 186 #warning No compiler specific solution for __USED. __USED is ignored.
saloutos 0:083111ae2a11 187 #define __USED
saloutos 0:083111ae2a11 188 #endif
saloutos 0:083111ae2a11 189 #ifndef __WEAK
saloutos 0:083111ae2a11 190 #define __WEAK __weak
saloutos 0:083111ae2a11 191 #endif
saloutos 0:083111ae2a11 192 #ifndef __UNALIGNED_UINT32
saloutos 0:083111ae2a11 193 @packed struct T_UINT32 { uint32_t v; };
saloutos 0:083111ae2a11 194 #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
saloutos 0:083111ae2a11 195 #endif
saloutos 0:083111ae2a11 196 #ifndef __ALIGNED
saloutos 0:083111ae2a11 197 #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
saloutos 0:083111ae2a11 198 #define __ALIGNED(x)
saloutos 0:083111ae2a11 199 #endif
saloutos 0:083111ae2a11 200 #ifndef __PACKED
saloutos 0:083111ae2a11 201 #define __PACKED @packed
saloutos 0:083111ae2a11 202 #endif
saloutos 0:083111ae2a11 203
saloutos 0:083111ae2a11 204
saloutos 0:083111ae2a11 205 #else
saloutos 0:083111ae2a11 206 #error Unknown compiler.
saloutos 0:083111ae2a11 207 #endif
saloutos 0:083111ae2a11 208
saloutos 0:083111ae2a11 209
saloutos 0:083111ae2a11 210 #endif /* __CMSIS_COMPILER_H */
saloutos 0:083111ae2a11 211