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
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /*!
AnnaBridge 172:65be27845400 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
AnnaBridge 172:65be27845400 3 * Copyright 2016-2017 NXP
AnnaBridge 172:65be27845400 4 *
AnnaBridge 172:65be27845400 5 * \file
AnnaBridge 172:65be27845400 6 *
AnnaBridge 172:65be27845400 7 * This file holds type definitions that maps the standard c-types into types
AnnaBridge 172:65be27845400 8 * with guaranteed sizes. The types are target/platform specific and must be edited
AnnaBridge 172:65be27845400 9 * for each new target/platform.
AnnaBridge 172:65be27845400 10 * The header file also provides definitions for TRUE, FALSE and NULL.
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 172:65be27845400 13 * are permitted provided that the following conditions are met:
AnnaBridge 172:65be27845400 14 *
AnnaBridge 172:65be27845400 15 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 172:65be27845400 16 * of conditions and the following disclaimer.
AnnaBridge 172:65be27845400 17 *
AnnaBridge 172:65be27845400 18 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 172:65be27845400 19 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 172:65be27845400 20 * other materials provided with the distribution.
AnnaBridge 172:65be27845400 21 *
AnnaBridge 172:65be27845400 22 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
AnnaBridge 172:65be27845400 23 * contributors may be used to endorse or promote products derived from this
AnnaBridge 172:65be27845400 24 * software without specific prior written permission.
AnnaBridge 172:65be27845400 25 *
AnnaBridge 172:65be27845400 26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 172:65be27845400 27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 172:65be27845400 28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 172:65be27845400 29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 172:65be27845400 30 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 172:65be27845400 31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 172:65be27845400 32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 172:65be27845400 33 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 172:65be27845400 34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 172:65be27845400 35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 172:65be27845400 36 */
AnnaBridge 172:65be27845400 37
AnnaBridge 172:65be27845400 38 #ifndef _EMBEDDEDTYPES_H_
AnnaBridge 172:65be27845400 39 #define _EMBEDDEDTYPES_H_
AnnaBridge 172:65be27845400 40
AnnaBridge 172:65be27845400 41
AnnaBridge 172:65be27845400 42 /************************************************************************************
AnnaBridge 172:65be27845400 43 *
AnnaBridge 172:65be27845400 44 * INCLUDES
AnnaBridge 172:65be27845400 45 *
AnnaBridge 172:65be27845400 46 ************************************************************************************/
AnnaBridge 172:65be27845400 47
AnnaBridge 172:65be27845400 48 #include <stdint.h>
AnnaBridge 172:65be27845400 49
AnnaBridge 172:65be27845400 50
AnnaBridge 172:65be27845400 51 /************************************************************************************
AnnaBridge 172:65be27845400 52 *
AnnaBridge 172:65be27845400 53 * TYPE DEFINITIONS
AnnaBridge 172:65be27845400 54 *
AnnaBridge 172:65be27845400 55 ************************************************************************************/
AnnaBridge 172:65be27845400 56
AnnaBridge 172:65be27845400 57 /* boolean types */
AnnaBridge 172:65be27845400 58 typedef uint8_t bool_t;
AnnaBridge 172:65be27845400 59
AnnaBridge 172:65be27845400 60 typedef uint8_t index_t;
AnnaBridge 172:65be27845400 61
AnnaBridge 172:65be27845400 62 /* TRUE/FALSE definition*/
AnnaBridge 172:65be27845400 63 #ifndef TRUE
AnnaBridge 172:65be27845400 64 #define TRUE 1
AnnaBridge 172:65be27845400 65 #endif
AnnaBridge 172:65be27845400 66
AnnaBridge 172:65be27845400 67 #ifndef FALSE
AnnaBridge 172:65be27845400 68 #define FALSE 0
AnnaBridge 172:65be27845400 69 #endif
AnnaBridge 172:65be27845400 70
AnnaBridge 172:65be27845400 71 /* null pointer definition*/
AnnaBridge 172:65be27845400 72 #ifndef NULL
AnnaBridge 172:65be27845400 73 #define NULL (( void * )( 0x0UL ))
AnnaBridge 172:65be27845400 74 #endif
AnnaBridge 172:65be27845400 75
AnnaBridge 172:65be27845400 76 #if defined(__GNUC__)
AnnaBridge 172:65be27845400 77 #define PACKED_STRUCT struct __attribute__ ((__packed__))
AnnaBridge 172:65be27845400 78 #define PACKED_UNION union __attribute__ ((__packed__))
AnnaBridge 172:65be27845400 79 #elif defined(__IAR_SYSTEMS_ICC__)
AnnaBridge 172:65be27845400 80 #define PACKED_STRUCT __packed struct
AnnaBridge 172:65be27845400 81 #define PACKED_UNION __packed union
AnnaBridge 172:65be27845400 82 #else
AnnaBridge 172:65be27845400 83 #define PACKED_STRUCT struct
AnnaBridge 172:65be27845400 84 #define PACKED_UNION union
AnnaBridge 172:65be27845400 85 #endif
AnnaBridge 172:65be27845400 86
AnnaBridge 172:65be27845400 87 typedef unsigned char uintn8_t;
AnnaBridge 172:65be27845400 88 typedef unsigned long uintn32_t;
AnnaBridge 172:65be27845400 89
AnnaBridge 172:65be27845400 90 typedef unsigned char uchar_t;
AnnaBridge 172:65be27845400 91
AnnaBridge 172:65be27845400 92 #if !defined(MIN)
AnnaBridge 172:65be27845400 93 #define MIN(a,b) (((a) < (b))?(a):(b))
AnnaBridge 172:65be27845400 94 #endif
AnnaBridge 172:65be27845400 95
AnnaBridge 172:65be27845400 96 #if !defined(MAX)
AnnaBridge 172:65be27845400 97 #define MAX(a,b) (((a) > (b))?(a):(b))
AnnaBridge 172:65be27845400 98 #endif
AnnaBridge 172:65be27845400 99
AnnaBridge 172:65be27845400 100 /* Compute the number of elements of an array */
AnnaBridge 172:65be27845400 101 #define NumberOfElements(x) (sizeof(x)/sizeof((x)[0]))
AnnaBridge 172:65be27845400 102
AnnaBridge 172:65be27845400 103 /* Compute the size of a string initialized with quotation marks */
AnnaBridge 172:65be27845400 104 #define SizeOfString(string) (sizeof(string) - 1)
AnnaBridge 172:65be27845400 105
AnnaBridge 172:65be27845400 106 #define GetRelAddr(strct, member) ((uint32_t)&(((strct*)(void *)0)->member))
AnnaBridge 172:65be27845400 107 #define GetSizeOfMember(strct, member) sizeof(((strct*)(void *)0)->member)
AnnaBridge 172:65be27845400 108
AnnaBridge 172:65be27845400 109 /* Type definitions for link configuration of instantiable layers */
AnnaBridge 172:65be27845400 110 #define gInvalidInstanceId_c (instanceId_t)(-1)
AnnaBridge 172:65be27845400 111 typedef uint32_t instanceId_t;
AnnaBridge 172:65be27845400 112
AnnaBridge 172:65be27845400 113 /* Bit shift definitions */
AnnaBridge 172:65be27845400 114 #define BIT0 0x01
AnnaBridge 172:65be27845400 115 #define BIT1 0x02
AnnaBridge 172:65be27845400 116 #define BIT2 0x04
AnnaBridge 172:65be27845400 117 #define BIT3 0x08
AnnaBridge 172:65be27845400 118 #define BIT4 0x10
AnnaBridge 172:65be27845400 119 #define BIT5 0x20
AnnaBridge 172:65be27845400 120 #define BIT6 0x40
AnnaBridge 172:65be27845400 121 #define BIT7 0x80
AnnaBridge 172:65be27845400 122 #define BIT8 0x100
AnnaBridge 172:65be27845400 123 #define BIT9 0x200
AnnaBridge 172:65be27845400 124 #define BIT10 0x400
AnnaBridge 172:65be27845400 125 #define BIT11 0x800
AnnaBridge 172:65be27845400 126 #define BIT12 0x1000
AnnaBridge 172:65be27845400 127 #define BIT13 0x2000
AnnaBridge 172:65be27845400 128 #define BIT14 0x4000
AnnaBridge 172:65be27845400 129 #define BIT15 0x8000
AnnaBridge 172:65be27845400 130 #define BIT16 0x10000
AnnaBridge 172:65be27845400 131 #define BIT17 0x20000
AnnaBridge 172:65be27845400 132 #define BIT18 0x40000
AnnaBridge 172:65be27845400 133 #define BIT19 0x80000
AnnaBridge 172:65be27845400 134 #define BIT20 0x100000
AnnaBridge 172:65be27845400 135 #define BIT21 0x200000
AnnaBridge 172:65be27845400 136 #define BIT22 0x400000
AnnaBridge 172:65be27845400 137 #define BIT23 0x800000
AnnaBridge 172:65be27845400 138 #define BIT24 0x1000000
AnnaBridge 172:65be27845400 139 #define BIT25 0x2000000
AnnaBridge 172:65be27845400 140 #define BIT26 0x4000000
AnnaBridge 172:65be27845400 141 #define BIT27 0x8000000
AnnaBridge 172:65be27845400 142 #define BIT28 0x10000000
AnnaBridge 172:65be27845400 143 #define BIT29 0x20000000
AnnaBridge 172:65be27845400 144 #define BIT30 0x40000000
AnnaBridge 172:65be27845400 145 #define BIT31 0x80000000
AnnaBridge 172:65be27845400 146
AnnaBridge 172:65be27845400 147 /* Shift definitions */
AnnaBridge 172:65be27845400 148 #define SHIFT0 (0)
AnnaBridge 172:65be27845400 149 #define SHIFT1 (1)
AnnaBridge 172:65be27845400 150 #define SHIFT2 (2)
AnnaBridge 172:65be27845400 151 #define SHIFT3 (3)
AnnaBridge 172:65be27845400 152 #define SHIFT4 (4)
AnnaBridge 172:65be27845400 153 #define SHIFT5 (5)
AnnaBridge 172:65be27845400 154 #define SHIFT6 (6)
AnnaBridge 172:65be27845400 155 #define SHIFT7 (7)
AnnaBridge 172:65be27845400 156 #define SHIFT8 (8)
AnnaBridge 172:65be27845400 157 #define SHIFT9 (9)
AnnaBridge 172:65be27845400 158 #define SHIFT10 (10)
AnnaBridge 172:65be27845400 159 #define SHIFT11 (11)
AnnaBridge 172:65be27845400 160 #define SHIFT12 (12)
AnnaBridge 172:65be27845400 161 #define SHIFT13 (13)
AnnaBridge 172:65be27845400 162 #define SHIFT14 (14)
AnnaBridge 172:65be27845400 163 #define SHIFT15 (15)
AnnaBridge 172:65be27845400 164 #define SHIFT16 (16)
AnnaBridge 172:65be27845400 165 #define SHIFT17 (17)
AnnaBridge 172:65be27845400 166 #define SHIFT18 (18)
AnnaBridge 172:65be27845400 167 #define SHIFT19 (19)
AnnaBridge 172:65be27845400 168 #define SHIFT20 (20)
AnnaBridge 172:65be27845400 169 #define SHIFT21 (21)
AnnaBridge 172:65be27845400 170 #define SHIFT22 (22)
AnnaBridge 172:65be27845400 171 #define SHIFT23 (23)
AnnaBridge 172:65be27845400 172 #define SHIFT24 (24)
AnnaBridge 172:65be27845400 173 #define SHIFT25 (25)
AnnaBridge 172:65be27845400 174 #define SHIFT26 (26)
AnnaBridge 172:65be27845400 175 #define SHIFT27 (27)
AnnaBridge 172:65be27845400 176 #define SHIFT28 (28)
AnnaBridge 172:65be27845400 177 #define SHIFT29 (29)
AnnaBridge 172:65be27845400 178 #define SHIFT30 (30)
AnnaBridge 172:65be27845400 179 #define SHIFT31 (31)
AnnaBridge 172:65be27845400 180
AnnaBridge 172:65be27845400 181 #define SHIFT32 (32)
AnnaBridge 172:65be27845400 182 #define SHIFT33 (33)
AnnaBridge 172:65be27845400 183 #define SHIFT34 (34)
AnnaBridge 172:65be27845400 184 #define SHIFT35 (35)
AnnaBridge 172:65be27845400 185 #define SHIFT36 (36)
AnnaBridge 172:65be27845400 186 #define SHIFT37 (37)
AnnaBridge 172:65be27845400 187 #define SHIFT38 (38)
AnnaBridge 172:65be27845400 188 #define SHIFT39 (39)
AnnaBridge 172:65be27845400 189 #define SHIFT40 (40)
AnnaBridge 172:65be27845400 190 #define SHIFT41 (41)
AnnaBridge 172:65be27845400 191 #define SHIFT42 (42)
AnnaBridge 172:65be27845400 192 #define SHIFT43 (43)
AnnaBridge 172:65be27845400 193 #define SHIFT44 (44)
AnnaBridge 172:65be27845400 194 #define SHIFT45 (45)
AnnaBridge 172:65be27845400 195 #define SHIFT46 (46)
AnnaBridge 172:65be27845400 196 #define SHIFT47 (47)
AnnaBridge 172:65be27845400 197 #define SHIFT48 (48)
AnnaBridge 172:65be27845400 198 #define SHIFT49 (49)
AnnaBridge 172:65be27845400 199 #define SHIFT50 (50)
AnnaBridge 172:65be27845400 200 #define SHIFT51 (51)
AnnaBridge 172:65be27845400 201 #define SHIFT52 (52)
AnnaBridge 172:65be27845400 202 #define SHIFT53 (53)
AnnaBridge 172:65be27845400 203 #define SHIFT54 (54)
AnnaBridge 172:65be27845400 204 #define SHIFT55 (55)
AnnaBridge 172:65be27845400 205 #define SHIFT56 (56)
AnnaBridge 172:65be27845400 206 #define SHIFT57 (57)
AnnaBridge 172:65be27845400 207 #define SHIFT58 (58)
AnnaBridge 172:65be27845400 208 #define SHIFT59 (59)
AnnaBridge 172:65be27845400 209 #define SHIFT60 (60)
AnnaBridge 172:65be27845400 210 #define SHIFT61 (61)
AnnaBridge 172:65be27845400 211 #define SHIFT62 (62)
AnnaBridge 172:65be27845400 212 #define SHIFT63 (63)
AnnaBridge 172:65be27845400 213
AnnaBridge 172:65be27845400 214
AnnaBridge 172:65be27845400 215 #endif /* _EMBEDDEDTYPES_H_ */