The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
emilmont
Date:
Fri Feb 21 12:21:39 2014 +0000
Revision:
80:8e73be2a2ac1
Child:
97:433970e64889
First alpha release for the NRF51822 target (to be tested in the online IDE)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 80:8e73be2a2ac1 1 /* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
emilmont 80:8e73be2a2ac1 2 *
emilmont 80:8e73be2a2ac1 3 * The information contained herein is confidential property of Nordic
emilmont 80:8e73be2a2ac1 4 * Semiconductor ASA.Terms and conditions of usage are described in detail
emilmont 80:8e73be2a2ac1 5 * in NORDIC SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
emilmont 80:8e73be2a2ac1 6 *
emilmont 80:8e73be2a2ac1 7 * Licensees are granted free, non-transferable use of the information. NO
emilmont 80:8e73be2a2ac1 8 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
emilmont 80:8e73be2a2ac1 9 * the file.
emilmont 80:8e73be2a2ac1 10 *
emilmont 80:8e73be2a2ac1 11 */
emilmont 80:8e73be2a2ac1 12
emilmont 80:8e73be2a2ac1 13 #ifndef _COMPILER_ABSTRACTION_H
emilmont 80:8e73be2a2ac1 14 #define _COMPILER_ABSTRACTION_H
emilmont 80:8e73be2a2ac1 15
emilmont 80:8e73be2a2ac1 16 /*lint ++flb "Enter library region" */
emilmont 80:8e73be2a2ac1 17
emilmont 80:8e73be2a2ac1 18 #if defined ( __CC_ARM )
emilmont 80:8e73be2a2ac1 19 #define __ASM __asm /*!< asm keyword for ARM Compiler */
emilmont 80:8e73be2a2ac1 20 #define __INLINE __inline /*!< inline keyword for ARM Compiler */
emilmont 80:8e73be2a2ac1 21 #define __STATIC_INLINE static __inline
emilmont 80:8e73be2a2ac1 22
emilmont 80:8e73be2a2ac1 23 #elif defined ( __ICCARM__ )
emilmont 80:8e73be2a2ac1 24 #define __ASM __asm /*!< asm keyword for IAR Compiler */
emilmont 80:8e73be2a2ac1 25 #define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
emilmont 80:8e73be2a2ac1 26 #define __STATIC_INLINE static inline
emilmont 80:8e73be2a2ac1 27 #define __current_sp() __get_SP()
emilmont 80:8e73be2a2ac1 28
emilmont 80:8e73be2a2ac1 29 #elif defined ( __GNUC__ )
emilmont 80:8e73be2a2ac1 30 #define __ASM __asm /*!< asm keyword for GNU Compiler */
emilmont 80:8e73be2a2ac1 31 #define __INLINE inline /*!< inline keyword for GNU Compiler */
emilmont 80:8e73be2a2ac1 32 #define __STATIC_INLINE static inline
emilmont 80:8e73be2a2ac1 33
emilmont 80:8e73be2a2ac1 34 static __INLINE unsigned int __current_sp(void)
emilmont 80:8e73be2a2ac1 35 {
emilmont 80:8e73be2a2ac1 36 register unsigned sp asm("sp");
emilmont 80:8e73be2a2ac1 37 return sp;
emilmont 80:8e73be2a2ac1 38 }
emilmont 80:8e73be2a2ac1 39
emilmont 80:8e73be2a2ac1 40 #elif defined ( __TASKING__ )
emilmont 80:8e73be2a2ac1 41 #define __ASM __asm /*!< asm keyword for TASKING Compiler */
emilmont 80:8e73be2a2ac1 42 #define __INLINE inline /*!< inline keyword for TASKING Compiler */
emilmont 80:8e73be2a2ac1 43 #define __STATIC_INLINE static inline
emilmont 80:8e73be2a2ac1 44
emilmont 80:8e73be2a2ac1 45 #endif
emilmont 80:8e73be2a2ac1 46
emilmont 80:8e73be2a2ac1 47 /*lint --flb "Leave library region" */
emilmont 80:8e73be2a2ac1 48
emilmont 80:8e73be2a2ac1 49 #endif