Memory to Memory DMA demo from CMSIS example. This demo execute 1000 times of 32 word memory to memory DMA (copy), and also measures number of dummy loop execution during DMA cylcles. Line 56 of "DMA_M2M.c" can change DMA source. where; 1)static : source is SRAM 2)const : source is Flash ROM

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers lpc_types.h Source File

lpc_types.h

Go to the documentation of this file.
00001 /***********************************************************************//**
00002  * @file        lpc_types.h
00003  * @brief        Contains the NXP ABL typedefs for C standard types.
00004  *                 It is intended to be used in ISO C conforming development
00005  *                 environments and checks for this insofar as it is possible
00006  *                 to do so.
00007  * @version        1.0
00008  * @date        27 Jul. 2008
00009  * @author        wellsk
00010  **************************************************************************
00011  * Software that is described herein is for illustrative purposes only
00012  * which provides customers with programming information regarding the
00013  * products. This software is supplied "AS IS" without any warranties.
00014  * NXP Semiconductors assumes no responsibility or liability for the
00015  * use of the software, conveys no license or title under any patent,
00016  * copyright, or mask work right to the product. NXP Semiconductors
00017  * reserves the right to make changes in the software without
00018  * notification. NXP Semiconductors also make no representation or
00019  * warranty that such application will be suitable for the specified
00020  * use without further testing or modification.
00021  **************************************************************************/
00022 
00023 /* Type group ----------------------------------------------------------- */
00024 /** @defgroup LPC_Types LPC_Types
00025  * @ingroup LPC1700CMSIS_FwLib_Drivers
00026  * @{
00027  */
00028 
00029 #ifndef LPC_TYPES_H
00030 #define LPC_TYPES_H
00031 
00032 /* Includes ------------------------------------------------------------------- */
00033 #include <stdint.h>
00034 
00035 
00036 /* Public Types --------------------------------------------------------------- */
00037 /** @defgroup LPC_Types_Public_Types LPC_Types Public Types
00038  * @{
00039  */
00040 
00041 /**
00042  * @brief Boolean Type definition
00043  */
00044 typedef enum {FALSE = 0, TRUE = !FALSE} Bool;
00045 
00046 /**
00047  * @brief Flag Status and Interrupt Flag Status type definition
00048  */
00049 typedef enum {RESET = 0, SET = !RESET} FlagStatus, IntStatus, SetState;
00050 #define PARAM_SETSTATE(State) ((State==RESET) || (State==SET))
00051 
00052 /**
00053  * @brief Functional State Definition
00054  */
00055 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
00056 #define PARAM_FUNCTIONALSTATE(State) ((State==DISABLE) || (State==ENABLE))
00057 
00058 /**
00059  * @ Status type definition
00060  */
00061 typedef enum {ERROR = 0, SUCCESS = !ERROR} Status;
00062 
00063 
00064 /**
00065  * Read/Write transfer type mode (Block or non-block)
00066  */
00067 typedef enum
00068 {
00069     NONE_BLOCKING = 0,        /**< None Blocking type */
00070     BLOCKING,                /**< Blocking type */
00071 } TRANSFER_BLOCK_Type;
00072 
00073 
00074 /** Pointer to Function returning Void (any number of parameters) */
00075 typedef void (*PFV)();
00076 
00077 /** Pointer to Function returning int32_t (any number of parameters) */
00078 typedef int32_t(*PFI)();
00079 
00080 /**
00081  * @}
00082  */
00083 
00084 
00085 /* Public Macros -------------------------------------------------------------- */
00086 /** @defgroup LPC_Types_Public_Macros  LPC_Types Public Macros
00087  * @{
00088  */
00089 
00090 /* _BIT(n) sets the bit at position "n"
00091  * _BIT(n) is intended to be used in "OR" and "AND" expressions:
00092  * e.g., "(_BIT(3) | _BIT(7))".
00093  */
00094 #undef _BIT
00095 /* Set bit macro */
00096 #define _BIT(n)    (1<<n)
00097 
00098 /* _SBF(f,v) sets the bit field starting at position "f" to value "v".
00099  * _SBF(f,v) is intended to be used in "OR" and "AND" expressions:
00100  * e.g., "((_SBF(5,7) | _SBF(12,0xF)) & 0xFFFF)"
00101  */
00102 #undef _SBF
00103 /* Set bit field macro */
00104 #define _SBF(f,v) (v<<f)
00105 
00106 /* _BITMASK constructs a symbol with 'field_width' least significant
00107  * bits set.
00108  * e.g., _BITMASK(5) constructs '0x1F', _BITMASK(16) == 0xFFFF
00109  * The symbol is intended to be used to limit the bit field width
00110  * thusly:
00111  * <a_register> = (any_expression) & _BITMASK(x), where 0 < x <= 32.
00112  * If "any_expression" results in a value that is larger than can be
00113  * contained in 'x' bits, the bits above 'x - 1' are masked off.  When
00114  * used with the _SBF example above, the example would be written:
00115  * a_reg = ((_SBF(5,7) | _SBF(12,0xF)) & _BITMASK(16))
00116  * This ensures that the value written to a_reg is no wider than
00117  * 16 bits, and makes the code easier to read and understand.
00118  */
00119 #undef _BITMASK
00120 /* Bitmask creation macro */
00121 #define _BITMASK(field_width) ( _BIT(field_width) - 1)
00122 
00123 /* NULL pointer */
00124 #ifndef NULL
00125 #define NULL ((void*) 0)
00126 #endif
00127 
00128 /* Number of elements in an array */
00129 #define NELEMENTS(array)  (sizeof (array) / sizeof (array[0]))
00130 
00131 /* Static data/function define */
00132 #define STATIC static
00133 /* External data/function define */
00134 #define EXTERN extern
00135 
00136 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
00137 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
00138 
00139 /**
00140  * @}
00141  */
00142 
00143 
00144 /* Old Type Definition compatibility ------------------------------------------ */
00145 /** @addtogroup LPC_Types_Public_Types LPC_Types Public Types
00146  * @{
00147  */
00148 
00149 /** SMA type for character type */
00150 typedef char CHAR;
00151 
00152 /** SMA type for 8 bit unsigned value */
00153 typedef uint8_t UNS_8;
00154 
00155 /** SMA type for 8 bit signed value */
00156 typedef int8_t INT_8;
00157 
00158 /** SMA type for 16 bit unsigned value */
00159 typedef    uint16_t UNS_16;
00160 
00161 /** SMA type for 16 bit signed value */
00162 typedef    int16_t INT_16;
00163 
00164 /** SMA type for 32 bit unsigned value */
00165 typedef    uint32_t UNS_32;
00166 
00167 /** SMA type for 32 bit signed value */
00168 typedef    int32_t INT_32;
00169 
00170 /** SMA type for 64 bit signed value */
00171 typedef int64_t INT_64;
00172 
00173 /** SMA type for 64 bit unsigned value */
00174 typedef uint64_t UNS_64;
00175 
00176 /** 32 bit boolean type */
00177 typedef Bool BOOL_32;
00178 
00179 /** 16 bit boolean type */
00180 typedef Bool BOOL_16;
00181 
00182 /** 8 bit boolean type */
00183 typedef Bool BOOL_8;
00184 
00185 /**
00186  * @}
00187  */
00188 
00189 
00190 #endif /* LPC_TYPES_H */
00191 
00192 /**
00193  * @}
00194  */
00195 
00196 /* --------------------------------- End Of File ------------------------------ */