modes

Dependents:   mbed_USBserial

Fork of mbed-rtos by mbed official

Committer:
jvanhook
Date:
Mon Jun 16 15:36:29 2014 +0000
Revision:
32:1e1e7730b6c8
dfsdfgsdf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jvanhook 32:1e1e7730b6c8 1 /***********************************************************************//**
jvanhook 32:1e1e7730b6c8 2 * @file : lpc_types.h
jvanhook 32:1e1e7730b6c8 3 * @brief :
jvanhook 32:1e1e7730b6c8 4 * Contains the NXP ABL typedefs for C standard types.
jvanhook 32:1e1e7730b6c8 5 * It is intended to be used in ISO C conforming development
jvanhook 32:1e1e7730b6c8 6 * environments and checks for this insofar as it is possible
jvanhook 32:1e1e7730b6c8 7 * to do so.
jvanhook 32:1e1e7730b6c8 8 * @version : 1.0
jvanhook 32:1e1e7730b6c8 9 * @date : 27 Jul. 2008
jvanhook 32:1e1e7730b6c8 10 * @author : wellsk
jvanhook 32:1e1e7730b6c8 11 **************************************************************************
jvanhook 32:1e1e7730b6c8 12 * Software that is described herein is for illustrative purposes only
jvanhook 32:1e1e7730b6c8 13 * which provides customers with programming information regarding the
jvanhook 32:1e1e7730b6c8 14 * products. This software is supplied "AS IS" without any warranties.
jvanhook 32:1e1e7730b6c8 15 * NXP Semiconductors assumes no responsibility or liability for the
jvanhook 32:1e1e7730b6c8 16 * use of the software, conveys no license or title under any patent,
jvanhook 32:1e1e7730b6c8 17 * copyright, or mask work right to the product. NXP Semiconductors
jvanhook 32:1e1e7730b6c8 18 * reserves the right to make changes in the software without
jvanhook 32:1e1e7730b6c8 19 * notification. NXP Semiconductors also make no representation or
jvanhook 32:1e1e7730b6c8 20 * warranty that such application will be suitable for the specified
jvanhook 32:1e1e7730b6c8 21 * use without further testing or modification.
jvanhook 32:1e1e7730b6c8 22 **************************************************************************/
jvanhook 32:1e1e7730b6c8 23
jvanhook 32:1e1e7730b6c8 24 /* Type group ----------------------------------------------------------- */
jvanhook 32:1e1e7730b6c8 25 /** @defgroup LPC_Types
jvanhook 32:1e1e7730b6c8 26 * @ingroup LPC1700CMSIS_FwLib_Drivers
jvanhook 32:1e1e7730b6c8 27 * @{
jvanhook 32:1e1e7730b6c8 28 */
jvanhook 32:1e1e7730b6c8 29
jvanhook 32:1e1e7730b6c8 30 #ifndef LPC_TYPES_H
jvanhook 32:1e1e7730b6c8 31 #define LPC_TYPES_H
jvanhook 32:1e1e7730b6c8 32
jvanhook 32:1e1e7730b6c8 33 /* Includes ------------------------------------------------------------------- */
jvanhook 32:1e1e7730b6c8 34 #include <stdint.h>
jvanhook 32:1e1e7730b6c8 35
jvanhook 32:1e1e7730b6c8 36
jvanhook 32:1e1e7730b6c8 37 /* Public Types --------------------------------------------------------------- */
jvanhook 32:1e1e7730b6c8 38 /** @defgroup LPC_Types_Public_Types
jvanhook 32:1e1e7730b6c8 39 * @{
jvanhook 32:1e1e7730b6c8 40 */
jvanhook 32:1e1e7730b6c8 41
jvanhook 32:1e1e7730b6c8 42 /**
jvanhook 32:1e1e7730b6c8 43 * @brief Boolean Type definition
jvanhook 32:1e1e7730b6c8 44 */
jvanhook 32:1e1e7730b6c8 45 typedef enum {FALSE = 0, TRUE = !FALSE} Bool;
jvanhook 32:1e1e7730b6c8 46
jvanhook 32:1e1e7730b6c8 47 /**
jvanhook 32:1e1e7730b6c8 48 * @brief Flag Status and Interrupt Flag Status type definition
jvanhook 32:1e1e7730b6c8 49 */
jvanhook 32:1e1e7730b6c8 50 typedef enum {RESET = 0, SET = !RESET} FlagStatus, IntStatus, SetState;
jvanhook 32:1e1e7730b6c8 51 #define PARAM_SETSTATE(State) ((State==RESET) || (State==SET))
jvanhook 32:1e1e7730b6c8 52
jvanhook 32:1e1e7730b6c8 53 /**
jvanhook 32:1e1e7730b6c8 54 * @brief Functional State Definition
jvanhook 32:1e1e7730b6c8 55 */
jvanhook 32:1e1e7730b6c8 56 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
jvanhook 32:1e1e7730b6c8 57 #define PARAM_FUNCTIONALSTATE(State) ((State==DISABLE) || (State==ENABLE))
jvanhook 32:1e1e7730b6c8 58
jvanhook 32:1e1e7730b6c8 59 /**
jvanhook 32:1e1e7730b6c8 60 * @ Status type definition
jvanhook 32:1e1e7730b6c8 61 */
jvanhook 32:1e1e7730b6c8 62 typedef enum {ERROR = 0, SUCCESS = !ERROR} Status;
jvanhook 32:1e1e7730b6c8 63
jvanhook 32:1e1e7730b6c8 64
jvanhook 32:1e1e7730b6c8 65 /**
jvanhook 32:1e1e7730b6c8 66 * Read/Write transfer type mode (Block or non-block)
jvanhook 32:1e1e7730b6c8 67 */
jvanhook 32:1e1e7730b6c8 68 typedef enum
jvanhook 32:1e1e7730b6c8 69 {
jvanhook 32:1e1e7730b6c8 70 NONE_BLOCKING = 0, /**< None Blocking type */
jvanhook 32:1e1e7730b6c8 71 BLOCKING, /**< Blocking type */
jvanhook 32:1e1e7730b6c8 72 } TRANSFER_BLOCK_Type;
jvanhook 32:1e1e7730b6c8 73
jvanhook 32:1e1e7730b6c8 74
jvanhook 32:1e1e7730b6c8 75 /** Pointer to Function returning Void (any number of parameters) */
jvanhook 32:1e1e7730b6c8 76 typedef void (*PFV)();
jvanhook 32:1e1e7730b6c8 77
jvanhook 32:1e1e7730b6c8 78 /** Pointer to Function returning int32_t (any number of parameters) */
jvanhook 32:1e1e7730b6c8 79 typedef int32_t(*PFI)();
jvanhook 32:1e1e7730b6c8 80
jvanhook 32:1e1e7730b6c8 81 /**
jvanhook 32:1e1e7730b6c8 82 * @}
jvanhook 32:1e1e7730b6c8 83 */
jvanhook 32:1e1e7730b6c8 84
jvanhook 32:1e1e7730b6c8 85
jvanhook 32:1e1e7730b6c8 86 /* Public Macros -------------------------------------------------------------- */
jvanhook 32:1e1e7730b6c8 87 /** @defgroup LPC_Types_Public_Macros
jvanhook 32:1e1e7730b6c8 88 * @{
jvanhook 32:1e1e7730b6c8 89 */
jvanhook 32:1e1e7730b6c8 90
jvanhook 32:1e1e7730b6c8 91 /* _BIT(n) sets the bit at position "n"
jvanhook 32:1e1e7730b6c8 92 * _BIT(n) is intended to be used in "OR" and "AND" expressions:
jvanhook 32:1e1e7730b6c8 93 * e.g., "(_BIT(3) | _BIT(7))".
jvanhook 32:1e1e7730b6c8 94 */
jvanhook 32:1e1e7730b6c8 95 #undef _BIT
jvanhook 32:1e1e7730b6c8 96 /* Set bit macro */
jvanhook 32:1e1e7730b6c8 97 #define _BIT(n) (1UL<<n)
jvanhook 32:1e1e7730b6c8 98
jvanhook 32:1e1e7730b6c8 99 /* _SBF(f,v) sets the bit field starting at position "f" to value "v".
jvanhook 32:1e1e7730b6c8 100 * _SBF(f,v) is intended to be used in "OR" and "AND" expressions:
jvanhook 32:1e1e7730b6c8 101 * e.g., "((_SBF(5,7) | _SBF(12,0xF)) & 0xFFFF)"
jvanhook 32:1e1e7730b6c8 102 */
jvanhook 32:1e1e7730b6c8 103 #undef _SBF
jvanhook 32:1e1e7730b6c8 104 /* Set bit field macro */
jvanhook 32:1e1e7730b6c8 105 #define _SBF(f,v) (v<<f)
jvanhook 32:1e1e7730b6c8 106
jvanhook 32:1e1e7730b6c8 107 /* _BITMASK constructs a symbol with 'field_width' least significant
jvanhook 32:1e1e7730b6c8 108 * bits set.
jvanhook 32:1e1e7730b6c8 109 * e.g., _BITMASK(5) constructs '0x1F', _BITMASK(16) == 0xFFFF
jvanhook 32:1e1e7730b6c8 110 * The symbol is intended to be used to limit the bit field width
jvanhook 32:1e1e7730b6c8 111 * thusly:
jvanhook 32:1e1e7730b6c8 112 * <a_register> = (any_expression) & _BITMASK(x), where 0 < x <= 32.
jvanhook 32:1e1e7730b6c8 113 * If "any_expression" results in a value that is larger than can be
jvanhook 32:1e1e7730b6c8 114 * contained in 'x' bits, the bits above 'x - 1' are masked off. When
jvanhook 32:1e1e7730b6c8 115 * used with the _SBF example above, the example would be written:
jvanhook 32:1e1e7730b6c8 116 * a_reg = ((_SBF(5,7) | _SBF(12,0xF)) & _BITMASK(16))
jvanhook 32:1e1e7730b6c8 117 * This ensures that the value written to a_reg is no wider than
jvanhook 32:1e1e7730b6c8 118 * 16 bits, and makes the code easier to read and understand.
jvanhook 32:1e1e7730b6c8 119 */
jvanhook 32:1e1e7730b6c8 120 #undef _BITMASK
jvanhook 32:1e1e7730b6c8 121 /* Bitmask creation macro */
jvanhook 32:1e1e7730b6c8 122 #define _BITMASK(field_width) ( _BIT(field_width) - 1)
jvanhook 32:1e1e7730b6c8 123
jvanhook 32:1e1e7730b6c8 124 /* NULL pointer */
jvanhook 32:1e1e7730b6c8 125 #ifndef NULL
jvanhook 32:1e1e7730b6c8 126 #ifdef __cplusplus
jvanhook 32:1e1e7730b6c8 127 #define NULL 0
jvanhook 32:1e1e7730b6c8 128 #else
jvanhook 32:1e1e7730b6c8 129 #define NULL ((void *)0)
jvanhook 32:1e1e7730b6c8 130 #endif
jvanhook 32:1e1e7730b6c8 131 #endif
jvanhook 32:1e1e7730b6c8 132
jvanhook 32:1e1e7730b6c8 133 /* Number of elements in an array */
jvanhook 32:1e1e7730b6c8 134 #define NELEMENTS(array) (sizeof (array) / sizeof (array[0]))
jvanhook 32:1e1e7730b6c8 135
jvanhook 32:1e1e7730b6c8 136 /* Static data/function define */
jvanhook 32:1e1e7730b6c8 137 #define STATIC static
jvanhook 32:1e1e7730b6c8 138 /* External data/function define */
jvanhook 32:1e1e7730b6c8 139 #define EXTERN extern
jvanhook 32:1e1e7730b6c8 140
jvanhook 32:1e1e7730b6c8 141 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
jvanhook 32:1e1e7730b6c8 142 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
jvanhook 32:1e1e7730b6c8 143
jvanhook 32:1e1e7730b6c8 144 /**
jvanhook 32:1e1e7730b6c8 145 * @}
jvanhook 32:1e1e7730b6c8 146 */
jvanhook 32:1e1e7730b6c8 147
jvanhook 32:1e1e7730b6c8 148
jvanhook 32:1e1e7730b6c8 149 /* Old Type Definition compatibility ------------------------------------------ */
jvanhook 32:1e1e7730b6c8 150 /** @addtogroup LPC_Types_Public_Types
jvanhook 32:1e1e7730b6c8 151 * @{
jvanhook 32:1e1e7730b6c8 152 */
jvanhook 32:1e1e7730b6c8 153
jvanhook 32:1e1e7730b6c8 154 /** SMA type for character type */
jvanhook 32:1e1e7730b6c8 155 typedef char CHAR;
jvanhook 32:1e1e7730b6c8 156
jvanhook 32:1e1e7730b6c8 157 /** SMA type for 8 bit unsigned value */
jvanhook 32:1e1e7730b6c8 158 typedef uint8_t UNS_8;
jvanhook 32:1e1e7730b6c8 159
jvanhook 32:1e1e7730b6c8 160 /** SMA type for 8 bit signed value */
jvanhook 32:1e1e7730b6c8 161 typedef int8_t INT_8;
jvanhook 32:1e1e7730b6c8 162
jvanhook 32:1e1e7730b6c8 163 /** SMA type for 16 bit unsigned value */
jvanhook 32:1e1e7730b6c8 164 typedef uint16_t UNS_16;
jvanhook 32:1e1e7730b6c8 165
jvanhook 32:1e1e7730b6c8 166 /** SMA type for 16 bit signed value */
jvanhook 32:1e1e7730b6c8 167 typedef int16_t INT_16;
jvanhook 32:1e1e7730b6c8 168
jvanhook 32:1e1e7730b6c8 169 /** SMA type for 32 bit unsigned value */
jvanhook 32:1e1e7730b6c8 170 typedef uint32_t UNS_32;
jvanhook 32:1e1e7730b6c8 171
jvanhook 32:1e1e7730b6c8 172 /** SMA type for 32 bit signed value */
jvanhook 32:1e1e7730b6c8 173 typedef int32_t INT_32;
jvanhook 32:1e1e7730b6c8 174
jvanhook 32:1e1e7730b6c8 175 /** SMA type for 64 bit signed value */
jvanhook 32:1e1e7730b6c8 176 typedef int64_t INT_64;
jvanhook 32:1e1e7730b6c8 177
jvanhook 32:1e1e7730b6c8 178 /** SMA type for 64 bit unsigned value */
jvanhook 32:1e1e7730b6c8 179 typedef uint64_t UNS_64;
jvanhook 32:1e1e7730b6c8 180
jvanhook 32:1e1e7730b6c8 181 /** 32 bit boolean type */
jvanhook 32:1e1e7730b6c8 182 typedef Bool BOOL_32;
jvanhook 32:1e1e7730b6c8 183
jvanhook 32:1e1e7730b6c8 184 /** 16 bit boolean type */
jvanhook 32:1e1e7730b6c8 185 typedef Bool BOOL_16;
jvanhook 32:1e1e7730b6c8 186
jvanhook 32:1e1e7730b6c8 187 /** 8 bit boolean type */
jvanhook 32:1e1e7730b6c8 188 typedef Bool BOOL_8;
jvanhook 32:1e1e7730b6c8 189
jvanhook 32:1e1e7730b6c8 190 /**
jvanhook 32:1e1e7730b6c8 191 * @}
jvanhook 32:1e1e7730b6c8 192 */
jvanhook 32:1e1e7730b6c8 193
jvanhook 32:1e1e7730b6c8 194
jvanhook 32:1e1e7730b6c8 195 #endif /* LPC_TYPES_H */
jvanhook 32:1e1e7730b6c8 196
jvanhook 32:1e1e7730b6c8 197 /**
jvanhook 32:1e1e7730b6c8 198 * @}
jvanhook 32:1e1e7730b6c8 199 */
jvanhook 32:1e1e7730b6c8 200
jvanhook 32:1e1e7730b6c8 201 /* --------------------------------- End Of File ------------------------------ */