#ifndef __CMSIS_COMPILER_H__ #define __CMSIS_COMPILER_H__ #include #define __I volatile const #define __O volatile #define __IO volatile #define __IM volatile const #define __OM volatile #define __IOM volatile #define __CLZ __builtin_clz #ifndef __ASM #define __ASM __asm #endif #ifndef __INLINE #define __INLINE inline #endif #ifndef __STATIC_INLINE #define __STATIC_INLINE static inline #endif #ifndef __NO_RETURN #define __NO_RETURN __attribute__((__noreturn__)) #endif #ifndef __USED #define __USED __attribute__((used)) #endif #ifndef __WEAK #define __WEAK __attribute__((weak)) #endif #ifndef __UNALIGNED_UINT32 #define __UNALIGNED_UINT32(x) (*((volatile uint32_t *)(x))) #endif #ifndef __PACKED #define __PACKED __attribute__((packed)) #endif #ifndef __ALIGNED #define __ALIGNED(x) __attribute__((aligned(x))) #endif #endif