Example of UART-DMA transfers taken form the npx cmsis driver libary

Dependencies:   mbed

Committer:
dpslwk
Date:
Thu Sep 30 20:13:24 2010 +0000
Revision:
0:7480abd3b63b

        

Who changed what in which revision?

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