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.
TARGET_KW41Z/TOOLCHAIN_GCC_ARM/EmbeddedTypes.h@172:65be27845400, 2019-02-20 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |