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:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /* Copyright (c) 2013, Nordic Semiconductor ASA
AnnaBridge 171:3a7713b1edbc 2 * All rights reserved.
AnnaBridge 171:3a7713b1edbc 3 *
AnnaBridge 171:3a7713b1edbc 4 * Redistribution and use in source and binary forms, with or without
AnnaBridge 171:3a7713b1edbc 5 * modification, are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * * Redistributions of source code must retain the above copyright notice, this
AnnaBridge 171:3a7713b1edbc 8 * list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 9 *
AnnaBridge 171:3a7713b1edbc 10 * * Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 11 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 12 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 13 *
AnnaBridge 171:3a7713b1edbc 14 * * Neither the name of Nordic Semiconductor ASA nor the names of its
AnnaBridge 171:3a7713b1edbc 15 * contributors may be used to endorse or promote products derived from
AnnaBridge 171:3a7713b1edbc 16 * this software without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 17 *
AnnaBridge 171:3a7713b1edbc 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 28 *
AnnaBridge 171:3a7713b1edbc 29 */
AnnaBridge 171:3a7713b1edbc 30 #ifndef _COMPILER_ABSTRACTION_H
AnnaBridge 171:3a7713b1edbc 31 #define _COMPILER_ABSTRACTION_H
AnnaBridge 171:3a7713b1edbc 32
AnnaBridge 171:3a7713b1edbc 33 /*lint ++flb "Enter library region" */
AnnaBridge 171:3a7713b1edbc 34
AnnaBridge 171:3a7713b1edbc 35 #if defined ( __CC_ARM )
AnnaBridge 171:3a7713b1edbc 36
AnnaBridge 171:3a7713b1edbc 37 #ifndef __ASM
AnnaBridge 171:3a7713b1edbc 38 #define __ASM __asm /*!< asm keyword for ARM Compiler */
AnnaBridge 171:3a7713b1edbc 39 #endif
AnnaBridge 171:3a7713b1edbc 40
AnnaBridge 171:3a7713b1edbc 41 #ifndef __INLINE
AnnaBridge 171:3a7713b1edbc 42 #define __INLINE __inline /*!< inline keyword for ARM Compiler */
AnnaBridge 171:3a7713b1edbc 43 #endif
AnnaBridge 171:3a7713b1edbc 44
AnnaBridge 171:3a7713b1edbc 45 #ifndef __WEAK
AnnaBridge 171:3a7713b1edbc 46 #define __WEAK __weak /*!< weak keyword for ARM Compiler */
AnnaBridge 171:3a7713b1edbc 47 #endif
AnnaBridge 171:3a7713b1edbc 48
AnnaBridge 171:3a7713b1edbc 49 #define GET_SP() __current_sp() /*!> read current SP function for ARM Compiler */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 #elif defined ( __ICCARM__ )
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 #ifndef __ASM
AnnaBridge 171:3a7713b1edbc 54 #define __ASM __asm /*!< asm keyword for IAR Compiler */
AnnaBridge 171:3a7713b1edbc 55 #endif
AnnaBridge 171:3a7713b1edbc 56
AnnaBridge 171:3a7713b1edbc 57 #ifndef __INLINE
AnnaBridge 171:3a7713b1edbc 58 #define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
AnnaBridge 171:3a7713b1edbc 59 #endif
AnnaBridge 171:3a7713b1edbc 60
AnnaBridge 171:3a7713b1edbc 61 #ifndef __WEAK
AnnaBridge 171:3a7713b1edbc 62 #define __WEAK __weak /*!> define weak function for IAR Compiler */
AnnaBridge 171:3a7713b1edbc 63 #endif
AnnaBridge 171:3a7713b1edbc 64
AnnaBridge 171:3a7713b1edbc 65 #define GET_SP() __get_SP() /*!> read current SP function for IAR Compiler */
AnnaBridge 171:3a7713b1edbc 66
AnnaBridge 171:3a7713b1edbc 67 #elif defined ( __GNUC__ )
AnnaBridge 171:3a7713b1edbc 68
AnnaBridge 171:3a7713b1edbc 69 #ifndef __ASM
AnnaBridge 171:3a7713b1edbc 70 #define __ASM __asm /*!< asm keyword for GNU Compiler */
AnnaBridge 171:3a7713b1edbc 71 #endif
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 #ifndef __INLINE
AnnaBridge 171:3a7713b1edbc 74 #define __INLINE inline /*!< inline keyword for GNU Compiler */
AnnaBridge 171:3a7713b1edbc 75 #endif
AnnaBridge 171:3a7713b1edbc 76
AnnaBridge 171:3a7713b1edbc 77 #ifndef __WEAK
AnnaBridge 171:3a7713b1edbc 78 #define __WEAK __attribute__((weak)) /*!< weak keyword for GNU Compiler */
AnnaBridge 171:3a7713b1edbc 79 #endif
AnnaBridge 171:3a7713b1edbc 80
AnnaBridge 171:3a7713b1edbc 81 #define GET_SP() gcc_current_sp() /*!> read current SP function for GNU Compiler */
AnnaBridge 171:3a7713b1edbc 82
AnnaBridge 171:3a7713b1edbc 83 static inline unsigned int gcc_current_sp(void)
AnnaBridge 171:3a7713b1edbc 84 {
AnnaBridge 171:3a7713b1edbc 85 register unsigned sp asm("sp");
AnnaBridge 171:3a7713b1edbc 86 return sp;
AnnaBridge 171:3a7713b1edbc 87 }
AnnaBridge 171:3a7713b1edbc 88
AnnaBridge 171:3a7713b1edbc 89 #elif defined ( __TASKING__ )
AnnaBridge 171:3a7713b1edbc 90
AnnaBridge 171:3a7713b1edbc 91 #ifndef __ASM
AnnaBridge 171:3a7713b1edbc 92 #define __ASM __asm /*!< asm keyword for TASKING Compiler */
AnnaBridge 171:3a7713b1edbc 93 #endif
AnnaBridge 171:3a7713b1edbc 94
AnnaBridge 171:3a7713b1edbc 95 #ifndef __INLINE
AnnaBridge 171:3a7713b1edbc 96 #define __INLINE inline /*!< inline keyword for TASKING Compiler */
AnnaBridge 171:3a7713b1edbc 97 #endif
AnnaBridge 171:3a7713b1edbc 98
AnnaBridge 171:3a7713b1edbc 99 #ifndef __WEAK
AnnaBridge 171:3a7713b1edbc 100 #define __WEAK __attribute__((weak)) /*!< weak keyword for TASKING Compiler */
AnnaBridge 171:3a7713b1edbc 101 #endif
AnnaBridge 171:3a7713b1edbc 102
AnnaBridge 171:3a7713b1edbc 103 #define GET_SP() __get_MSP() /*!> read current SP function for TASKING Compiler */
AnnaBridge 171:3a7713b1edbc 104
AnnaBridge 171:3a7713b1edbc 105 #endif
AnnaBridge 171:3a7713b1edbc 106
AnnaBridge 171:3a7713b1edbc 107 /*lint --flb "Leave library region" */
AnnaBridge 171:3a7713b1edbc 108
AnnaBridge 171:3a7713b1edbc 109 #endif