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:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_EFM32LG_STK3600/TARGET_Silicon_Labs/TARGET_EFM32/emlib/inc/em_ldma.h@160:5571c4ff569f
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 2 * @file em_ldma.h
AnnaBridge 156:ff21514d8981 3 * @brief Direct memory access (LDMA) API
Anna Bridge 160:5571c4ff569f 4 * @version 5.3.3
AnnaBridge 156:ff21514d8981 5 *******************************************************************************
Anna Bridge 160:5571c4ff569f 6 * # License
AnnaBridge 156:ff21514d8981 7 * <b>Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com</b>
AnnaBridge 156:ff21514d8981 8 *******************************************************************************
AnnaBridge 156:ff21514d8981 9 *
AnnaBridge 156:ff21514d8981 10 * Permission is granted to anyone to use this software for any purpose,
AnnaBridge 156:ff21514d8981 11 * including commercial applications, and to alter it and redistribute it
AnnaBridge 156:ff21514d8981 12 * freely, subject to the following restrictions:
AnnaBridge 156:ff21514d8981 13 *
AnnaBridge 156:ff21514d8981 14 * 1. The origin of this software must not be misrepresented; you must not
AnnaBridge 156:ff21514d8981 15 * claim that you wrote the original software.@n
AnnaBridge 156:ff21514d8981 16 * 2. Altered source versions must be plainly marked as such, and must not be
AnnaBridge 156:ff21514d8981 17 * misrepresented as being the original software.@n
AnnaBridge 156:ff21514d8981 18 * 3. This notice may not be removed or altered from any source distribution.
AnnaBridge 156:ff21514d8981 19 *
AnnaBridge 156:ff21514d8981 20 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
AnnaBridge 156:ff21514d8981 21 * obligation to support this Software. Silicon Labs is providing the
AnnaBridge 156:ff21514d8981 22 * Software "AS IS", with no express or implied warranties of any kind,
AnnaBridge 156:ff21514d8981 23 * including, but not limited to, any implied warranties of merchantability
AnnaBridge 156:ff21514d8981 24 * or fitness for any particular purpose or warranties against infringement
AnnaBridge 156:ff21514d8981 25 * of any proprietary rights of a third party.
AnnaBridge 156:ff21514d8981 26 *
AnnaBridge 156:ff21514d8981 27 * Silicon Labs will not be liable for any consequential, incidental, or
AnnaBridge 156:ff21514d8981 28 * special damages, or any other relief, or for any claim by any third party,
AnnaBridge 156:ff21514d8981 29 * arising from your use of this Software.
AnnaBridge 156:ff21514d8981 30 *
AnnaBridge 156:ff21514d8981 31 ******************************************************************************/
AnnaBridge 156:ff21514d8981 32
AnnaBridge 156:ff21514d8981 33 #ifndef EM_LDMA_H
AnnaBridge 156:ff21514d8981 34 #define EM_LDMA_H
AnnaBridge 156:ff21514d8981 35
AnnaBridge 156:ff21514d8981 36 #include "em_device.h"
AnnaBridge 156:ff21514d8981 37
Anna Bridge 160:5571c4ff569f 38 #if defined(LDMA_PRESENT) && (LDMA_COUNT == 1)
AnnaBridge 156:ff21514d8981 39
AnnaBridge 156:ff21514d8981 40 #include <stdbool.h>
AnnaBridge 156:ff21514d8981 41
AnnaBridge 156:ff21514d8981 42 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 43 extern "C" {
AnnaBridge 156:ff21514d8981 44 #endif
AnnaBridge 156:ff21514d8981 45
AnnaBridge 156:ff21514d8981 46 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 47 * @addtogroup emlib
AnnaBridge 156:ff21514d8981 48 * @{
AnnaBridge 156:ff21514d8981 49 ******************************************************************************/
AnnaBridge 156:ff21514d8981 50
AnnaBridge 156:ff21514d8981 51 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 52 * @addtogroup LDMA
AnnaBridge 156:ff21514d8981 53 * @brief Linked Direct Memory Access (LDMA) Peripheral API
AnnaBridge 156:ff21514d8981 54 *
AnnaBridge 156:ff21514d8981 55 * @details
AnnaBridge 156:ff21514d8981 56 * The LDMA API functions provide full support for the LDMA peripheral.
AnnaBridge 156:ff21514d8981 57 *
AnnaBridge 156:ff21514d8981 58 * The LDMA supports these DMA transfer types:
AnnaBridge 156:ff21514d8981 59 *
AnnaBridge 156:ff21514d8981 60 * @li Memory to memory.
AnnaBridge 156:ff21514d8981 61 * @li Memory to peripheral.
AnnaBridge 156:ff21514d8981 62 * @li Peripheral to memory.
AnnaBridge 156:ff21514d8981 63 * @li Peripheral to peripheral.
AnnaBridge 156:ff21514d8981 64 * @li Constant value to memory.
AnnaBridge 156:ff21514d8981 65 *
AnnaBridge 156:ff21514d8981 66 * The LDMA supports linked lists of DMA descriptors allowing:
AnnaBridge 156:ff21514d8981 67 *
AnnaBridge 156:ff21514d8981 68 * @li Circular and ping-pong buffer transfers.
AnnaBridge 156:ff21514d8981 69 * @li Scatter-gather transfers.
AnnaBridge 156:ff21514d8981 70 * @li Looped transfers.
AnnaBridge 156:ff21514d8981 71 *
AnnaBridge 156:ff21514d8981 72 * The LDMA has some advanced features:
AnnaBridge 156:ff21514d8981 73 *
AnnaBridge 156:ff21514d8981 74 * @li Intra-channel synchronization (SYNC), allowing hardware events to
AnnaBridge 156:ff21514d8981 75 * pause and restart a DMA sequence.
AnnaBridge 156:ff21514d8981 76 * @li Immediate-write (WRI), allowing the DMA to write a constant anywhere
AnnaBridge 156:ff21514d8981 77 * in the memory map.
AnnaBridge 156:ff21514d8981 78 * @li Complex flow control allowing if-else constructs.
AnnaBridge 156:ff21514d8981 79 *
AnnaBridge 156:ff21514d8981 80 * A basic understanding of the LDMA controller is assumed. Please refer to
AnnaBridge 156:ff21514d8981 81 * the reference manual for further details. The LDMA examples described
AnnaBridge 156:ff21514d8981 82 * in the reference manual are particularly helpful in understanding LDMA
AnnaBridge 156:ff21514d8981 83 * operations.
AnnaBridge 156:ff21514d8981 84 *
AnnaBridge 156:ff21514d8981 85 * In order to use the DMA controller, the initialization function @ref
AnnaBridge 156:ff21514d8981 86 * LDMA_Init() must have been executed once (normally during system init).
AnnaBridge 156:ff21514d8981 87 *
AnnaBridge 156:ff21514d8981 88 * DMA transfers are initiated by a call to @ref LDMA_StartTransfer(), the
AnnaBridge 156:ff21514d8981 89 * transfer properties are controlled by the contents of @ref LDMA_TransferCfg_t
AnnaBridge 156:ff21514d8981 90 * and @ref LDMA_Descriptor_t structure parameters.
AnnaBridge 156:ff21514d8981 91 * The @htmlonly LDMA_Descriptor_t @endhtmlonly structure parameter may be a
AnnaBridge 156:ff21514d8981 92 * pointer to an array of descriptors, the descriptors in the array should
AnnaBridge 156:ff21514d8981 93 * be linked together as needed.
AnnaBridge 156:ff21514d8981 94 *
AnnaBridge 156:ff21514d8981 95 * Transfer and descriptor initialization macros are provided for the most common
AnnaBridge 156:ff21514d8981 96 * transfer types. Due to the flexibility of the LDMA peripheral only a small
AnnaBridge 156:ff21514d8981 97 * subset of all possible initializer macros are provided, the user should create
AnnaBridge 156:ff21514d8981 98 * new one's when needed.
AnnaBridge 156:ff21514d8981 99 *
AnnaBridge 156:ff21514d8981 100 * <b> Examples of LDMA usage: </b>
AnnaBridge 156:ff21514d8981 101 *
AnnaBridge 156:ff21514d8981 102 * A simple memory to memory transfer:
AnnaBridge 156:ff21514d8981 103 *
AnnaBridge 156:ff21514d8981 104 * @include em_ldma_single.c
AnnaBridge 156:ff21514d8981 105 *
AnnaBridge 156:ff21514d8981 106 * @n A linked list of three memory to memory transfers:
AnnaBridge 156:ff21514d8981 107 *
AnnaBridge 156:ff21514d8981 108 * @include em_ldma_link_memory.c
AnnaBridge 156:ff21514d8981 109 *
AnnaBridge 156:ff21514d8981 110 * @n DMA from serial port peripheral to memory:
AnnaBridge 156:ff21514d8981 111 *
AnnaBridge 156:ff21514d8981 112 * @include em_ldma_peripheral.c
AnnaBridge 156:ff21514d8981 113 *
AnnaBridge 156:ff21514d8981 114 * @n Ping pong DMA from serial port peripheral to memory:
AnnaBridge 156:ff21514d8981 115 *
AnnaBridge 156:ff21514d8981 116 * @include em_ldma_pingpong.c
AnnaBridge 156:ff21514d8981 117 *
AnnaBridge 156:ff21514d8981 118 * @note The LDMA module does not implement the LDMA interrupt handler. A
AnnaBridge 156:ff21514d8981 119 * template for an LDMA IRQ handler is include here as an example.
AnnaBridge 156:ff21514d8981 120 *
AnnaBridge 156:ff21514d8981 121 * @include em_ldma_irq.c
AnnaBridge 156:ff21514d8981 122 *
AnnaBridge 156:ff21514d8981 123 * @{
AnnaBridge 156:ff21514d8981 124 ******************************************************************************/
AnnaBridge 156:ff21514d8981 125
AnnaBridge 156:ff21514d8981 126 /*******************************************************************************
AnnaBridge 156:ff21514d8981 127 ******************************** ENUMS ************************************
AnnaBridge 156:ff21514d8981 128 ******************************************************************************/
AnnaBridge 156:ff21514d8981 129
AnnaBridge 156:ff21514d8981 130 /**
AnnaBridge 156:ff21514d8981 131 * This value controls the number of unit data transfers per arbitration
AnnaBridge 156:ff21514d8981 132 * cycle, providing a means to balance DMA channels' load on the controller.
AnnaBridge 156:ff21514d8981 133 */
Anna Bridge 160:5571c4ff569f 134 typedef enum {
AnnaBridge 156:ff21514d8981 135 ldmaCtrlBlockSizeUnit1 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT1, /**< One transfer per arbitration. */
AnnaBridge 156:ff21514d8981 136 ldmaCtrlBlockSizeUnit2 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT2, /**< Two transfers per arbitration. */
AnnaBridge 156:ff21514d8981 137 ldmaCtrlBlockSizeUnit3 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT3, /**< Three transfers per arbitration. */
AnnaBridge 156:ff21514d8981 138 ldmaCtrlBlockSizeUnit4 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT4, /**< Four transfers per arbitration. */
AnnaBridge 156:ff21514d8981 139 ldmaCtrlBlockSizeUnit6 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT6, /**< Six transfers per arbitration. */
AnnaBridge 156:ff21514d8981 140 ldmaCtrlBlockSizeUnit8 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT8, /**< Eight transfers per arbitration. */
AnnaBridge 156:ff21514d8981 141 ldmaCtrlBlockSizeUnit16 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT16, /**< 16 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 142 ldmaCtrlBlockSizeUnit32 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT32, /**< 32 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 143 ldmaCtrlBlockSizeUnit64 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT64, /**< 64 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 144 ldmaCtrlBlockSizeUnit128 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT128, /**< 128 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 145 ldmaCtrlBlockSizeUnit256 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT256, /**< 256 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 146 ldmaCtrlBlockSizeUnit512 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT512, /**< 512 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 147 ldmaCtrlBlockSizeUnit1024 = _LDMA_CH_CTRL_BLOCKSIZE_UNIT1024, /**< 1024 transfers per arbitration. */
AnnaBridge 156:ff21514d8981 148 ldmaCtrlBlockSizeAll = _LDMA_CH_CTRL_BLOCKSIZE_ALL /**< Lock arbitration during transfer. */
AnnaBridge 156:ff21514d8981 149 } LDMA_CtrlBlockSize_t;
AnnaBridge 156:ff21514d8981 150
AnnaBridge 156:ff21514d8981 151 /** DMA structure type. */
Anna Bridge 160:5571c4ff569f 152 typedef enum {
AnnaBridge 156:ff21514d8981 153 ldmaCtrlStructTypeXfer = _LDMA_CH_CTRL_STRUCTTYPE_TRANSFER, /**< TRANSFER transfer type. */
AnnaBridge 156:ff21514d8981 154 ldmaCtrlStructTypeSync = _LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE, /**< SYNCHRONIZE transfer type. */
AnnaBridge 156:ff21514d8981 155 ldmaCtrlStructTypeWrite = _LDMA_CH_CTRL_STRUCTTYPE_WRITE /**< WRITE transfer type. */
AnnaBridge 156:ff21514d8981 156 } LDMA_CtrlStructType_t;
AnnaBridge 156:ff21514d8981 157
AnnaBridge 156:ff21514d8981 158 /** DMA transfer block or cycle selector. */
Anna Bridge 160:5571c4ff569f 159 typedef enum {
AnnaBridge 156:ff21514d8981 160 ldmaCtrlReqModeBlock = _LDMA_CH_CTRL_REQMODE_BLOCK, /**< Each DMA request trigger transfer of one block. */
AnnaBridge 156:ff21514d8981 161 ldmaCtrlReqModeAll = _LDMA_CH_CTRL_REQMODE_ALL /**< A DMA request trigger transfer of a complete cycle. */
AnnaBridge 156:ff21514d8981 162 } LDMA_CtrlReqMode_t;
AnnaBridge 156:ff21514d8981 163
AnnaBridge 156:ff21514d8981 164 /** Source address increment unit size. */
Anna Bridge 160:5571c4ff569f 165 typedef enum {
AnnaBridge 156:ff21514d8981 166 ldmaCtrlSrcIncOne = _LDMA_CH_CTRL_SRCINC_ONE, /**< Increment source address by one unit data size. */
AnnaBridge 156:ff21514d8981 167 ldmaCtrlSrcIncTwo = _LDMA_CH_CTRL_SRCINC_TWO, /**< Increment source address by two unit data sizes. */
AnnaBridge 156:ff21514d8981 168 ldmaCtrlSrcIncFour = _LDMA_CH_CTRL_SRCINC_FOUR, /**< Increment source address by four unit data sizes. */
AnnaBridge 156:ff21514d8981 169 ldmaCtrlSrcIncNone = _LDMA_CH_CTRL_SRCINC_NONE /**< Do not increment the source address. */
AnnaBridge 156:ff21514d8981 170 } LDMA_CtrlSrcInc_t;
AnnaBridge 156:ff21514d8981 171
AnnaBridge 156:ff21514d8981 172 /** DMA transfer unit size. */
Anna Bridge 160:5571c4ff569f 173 typedef enum {
AnnaBridge 156:ff21514d8981 174 ldmaCtrlSizeByte = _LDMA_CH_CTRL_SIZE_BYTE, /**< Each unit transfer is a byte. */
AnnaBridge 156:ff21514d8981 175 ldmaCtrlSizeHalf = _LDMA_CH_CTRL_SIZE_HALFWORD, /**< Each unit transfer is a half-word. */
AnnaBridge 156:ff21514d8981 176 ldmaCtrlSizeWord = _LDMA_CH_CTRL_SIZE_WORD /**< Each unit transfer is a word. */
AnnaBridge 156:ff21514d8981 177 } LDMA_CtrlSize_t;
AnnaBridge 156:ff21514d8981 178
AnnaBridge 156:ff21514d8981 179 /** Destination address increment unit size. */
Anna Bridge 160:5571c4ff569f 180 typedef enum {
AnnaBridge 156:ff21514d8981 181 ldmaCtrlDstIncOne = _LDMA_CH_CTRL_DSTINC_ONE, /**< Increment destination address by one unit data size. */
AnnaBridge 156:ff21514d8981 182 ldmaCtrlDstIncTwo = _LDMA_CH_CTRL_DSTINC_TWO, /**< Increment destination address by two unit data sizes. */
AnnaBridge 156:ff21514d8981 183 ldmaCtrlDstIncFour = _LDMA_CH_CTRL_DSTINC_FOUR, /**< Increment destination address by four unit data sizes. */
AnnaBridge 156:ff21514d8981 184 ldmaCtrlDstIncNone = _LDMA_CH_CTRL_DSTINC_NONE /**< Do not increment the destination address. */
AnnaBridge 156:ff21514d8981 185 } LDMA_CtrlDstInc_t;
AnnaBridge 156:ff21514d8981 186
AnnaBridge 156:ff21514d8981 187 /** Source addressing mode. */
Anna Bridge 160:5571c4ff569f 188 typedef enum {
AnnaBridge 156:ff21514d8981 189 ldmaCtrlSrcAddrModeAbs = _LDMA_CH_CTRL_SRCMODE_ABSOLUTE, /**< Address fetched from a linked structure is absolute. */
AnnaBridge 156:ff21514d8981 190 ldmaCtrlSrcAddrModeRel = _LDMA_CH_CTRL_SRCMODE_RELATIVE /**< Address fetched from a linked structure is relative. */
AnnaBridge 156:ff21514d8981 191 } LDMA_CtrlSrcAddrMode_t;
AnnaBridge 156:ff21514d8981 192
AnnaBridge 156:ff21514d8981 193 /** Destination addressing mode. */
Anna Bridge 160:5571c4ff569f 194 typedef enum {
AnnaBridge 156:ff21514d8981 195 ldmaCtrlDstAddrModeAbs = _LDMA_CH_CTRL_DSTMODE_ABSOLUTE, /**< Address fetched from a linked structure is absolute. */
AnnaBridge 156:ff21514d8981 196 ldmaCtrlDstAddrModeRel = _LDMA_CH_CTRL_DSTMODE_RELATIVE /**< Address fetched from a linked structure is relative. */
AnnaBridge 156:ff21514d8981 197 } LDMA_CtrlDstAddrMode_t;
AnnaBridge 156:ff21514d8981 198
AnnaBridge 156:ff21514d8981 199 /** DMA linkload address mode. */
Anna Bridge 160:5571c4ff569f 200 typedef enum {
AnnaBridge 156:ff21514d8981 201 ldmaLinkModeAbs = _LDMA_CH_LINK_LINKMODE_ABSOLUTE, /**< Link address is an absolute address value. */
AnnaBridge 156:ff21514d8981 202 ldmaLinkModeRel = _LDMA_CH_LINK_LINKMODE_RELATIVE /**< Link address is a two's complement releative address. */
AnnaBridge 156:ff21514d8981 203 } LDMA_LinkMode_t;
AnnaBridge 156:ff21514d8981 204
AnnaBridge 156:ff21514d8981 205 /** Insert extra arbitration slots to increase channel arbitration priority. */
Anna Bridge 160:5571c4ff569f 206 typedef enum {
AnnaBridge 156:ff21514d8981 207 ldmaCfgArbSlotsAs1 = _LDMA_CH_CFG_ARBSLOTS_ONE, /**< One arbitration slot selected. */
AnnaBridge 156:ff21514d8981 208 ldmaCfgArbSlotsAs2 = _LDMA_CH_CFG_ARBSLOTS_TWO, /**< Two arbitration slots selected. */
AnnaBridge 156:ff21514d8981 209 ldmaCfgArbSlotsAs4 = _LDMA_CH_CFG_ARBSLOTS_FOUR, /**< Four arbitration slots selected. */
AnnaBridge 156:ff21514d8981 210 ldmaCfgArbSlotsAs8 = _LDMA_CH_CFG_ARBSLOTS_EIGHT /**< Eight arbitration slots selected. */
AnnaBridge 156:ff21514d8981 211 } LDMA_CfgArbSlots_t;
AnnaBridge 156:ff21514d8981 212
AnnaBridge 156:ff21514d8981 213 /** Source address increment sign. */
Anna Bridge 160:5571c4ff569f 214 typedef enum {
AnnaBridge 156:ff21514d8981 215 ldmaCfgSrcIncSignPos = _LDMA_CH_CFG_SRCINCSIGN_POSITIVE, /**< Increment source address. */
AnnaBridge 156:ff21514d8981 216 ldmaCfgSrcIncSignNeg = _LDMA_CH_CFG_SRCINCSIGN_NEGATIVE /**< Decrement source address. */
AnnaBridge 156:ff21514d8981 217 } LDMA_CfgSrcIncSign_t;
AnnaBridge 156:ff21514d8981 218
AnnaBridge 156:ff21514d8981 219 /** Destination address increment sign. */
Anna Bridge 160:5571c4ff569f 220 typedef enum {
AnnaBridge 156:ff21514d8981 221 ldmaCfgDstIncSignPos = _LDMA_CH_CFG_DSTINCSIGN_POSITIVE, /**< Increment destination address. */
AnnaBridge 156:ff21514d8981 222 ldmaCfgDstIncSignNeg = _LDMA_CH_CFG_DSTINCSIGN_NEGATIVE /**< Decrement destination address. */
AnnaBridge 156:ff21514d8981 223 } LDMA_CfgDstIncSign_t;
AnnaBridge 156:ff21514d8981 224
AnnaBridge 156:ff21514d8981 225 /** Peripherals that can trigger LDMA transfers. */
Anna Bridge 160:5571c4ff569f 226 typedef enum {
AnnaBridge 156:ff21514d8981 227 ldmaPeripheralSignal_NONE = LDMA_CH_REQSEL_SOURCESEL_NONE, ///< No peripheral selected for DMA triggering.
AnnaBridge 156:ff21514d8981 228 #if defined(LDMA_CH_REQSEL_SIGSEL_ADC0SCAN)
AnnaBridge 156:ff21514d8981 229 ldmaPeripheralSignal_ADC0_SCAN = LDMA_CH_REQSEL_SIGSEL_ADC0SCAN | LDMA_CH_REQSEL_SOURCESEL_ADC0, ///< Trig on ADC0_SCAN.
AnnaBridge 156:ff21514d8981 230 #endif
AnnaBridge 156:ff21514d8981 231 #if defined(LDMA_CH_REQSEL_SIGSEL_ADC0SINGLE)
AnnaBridge 156:ff21514d8981 232 ldmaPeripheralSignal_ADC0_SINGLE = LDMA_CH_REQSEL_SIGSEL_ADC0SINGLE | LDMA_CH_REQSEL_SOURCESEL_ADC0, ///< Trig on ADC0_SINGLE.
AnnaBridge 156:ff21514d8981 233 #endif
Anna Bridge 160:5571c4ff569f 234 #if defined(LDMA_CH_REQSEL_SIGSEL_ADC1SCAN)
Anna Bridge 160:5571c4ff569f 235 ldmaPeripheralSignal_ADC1_SCAN = LDMA_CH_REQSEL_SIGSEL_ADC1SCAN | LDMA_CH_REQSEL_SOURCESEL_ADC1, ///< Trig on ADC1_SCAN.
Anna Bridge 160:5571c4ff569f 236 #endif
Anna Bridge 160:5571c4ff569f 237 #if defined(LDMA_CH_REQSEL_SIGSEL_ADC1SINGLE)
Anna Bridge 160:5571c4ff569f 238 ldmaPeripheralSignal_ADC1_SINGLE = LDMA_CH_REQSEL_SIGSEL_ADC1SINGLE | LDMA_CH_REQSEL_SOURCESEL_ADC1, ///< Trig on ADC1_SINGLE.
Anna Bridge 160:5571c4ff569f 239 #endif
Anna Bridge 160:5571c4ff569f 240 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTODATA0RD)
AnnaBridge 156:ff21514d8981 241 ldmaPeripheralSignal_CRYPTO_DATA0RD = LDMA_CH_REQSEL_SIGSEL_CRYPTODATA0RD | LDMA_CH_REQSEL_SOURCESEL_CRYPTO, ///< Trig on CRYPTO_DATA0RD.
AnnaBridge 156:ff21514d8981 242 #endif
Anna Bridge 160:5571c4ff569f 243 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTODATA0WR)
AnnaBridge 156:ff21514d8981 244 ldmaPeripheralSignal_CRYPTO_DATA0WR = LDMA_CH_REQSEL_SIGSEL_CRYPTODATA0WR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO, ///< Trig on CRYPTO_DATA0WR.
AnnaBridge 156:ff21514d8981 245 #endif
Anna Bridge 160:5571c4ff569f 246 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTODATA0XWR)
AnnaBridge 156:ff21514d8981 247 ldmaPeripheralSignal_CRYPTO_DATA0XWR = LDMA_CH_REQSEL_SIGSEL_CRYPTODATA0XWR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO, ///< Trig on CRYPTO_DATA0XWR.
AnnaBridge 156:ff21514d8981 248 #endif
Anna Bridge 160:5571c4ff569f 249 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTODATA1RD)
AnnaBridge 156:ff21514d8981 250 ldmaPeripheralSignal_CRYPTO_DATA1RD = LDMA_CH_REQSEL_SIGSEL_CRYPTODATA1RD | LDMA_CH_REQSEL_SOURCESEL_CRYPTO, ///< Trig on CRYPTO_DATA1RD.
AnnaBridge 156:ff21514d8981 251 #endif
Anna Bridge 160:5571c4ff569f 252 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTODATA1WR)
AnnaBridge 156:ff21514d8981 253 ldmaPeripheralSignal_CRYPTO_DATA1WR = LDMA_CH_REQSEL_SIGSEL_CRYPTODATA1WR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO, ///< Trig on CRYPTO_DATA1WR.
AnnaBridge 156:ff21514d8981 254 #endif
AnnaBridge 156:ff21514d8981 255 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA0RD)
AnnaBridge 156:ff21514d8981 256 ldmaPeripheralSignal_CRYPTO0_DATA0RD = LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA0RD | LDMA_CH_REQSEL_SOURCESEL_CRYPTO0, ///< Trig on CRYPTO0_DATA0RD.
AnnaBridge 156:ff21514d8981 257 #endif
AnnaBridge 156:ff21514d8981 258 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA0WR)
AnnaBridge 156:ff21514d8981 259 ldmaPeripheralSignal_CRYPTO0_DATA0WR = LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA0WR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO0, ///< Trig on CRYPTO0_DATA0WR.
AnnaBridge 156:ff21514d8981 260 #endif
AnnaBridge 156:ff21514d8981 261 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA0XWR)
AnnaBridge 156:ff21514d8981 262 ldmaPeripheralSignal_CRYPTO0_DATA0XWR = LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA0XWR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO0, ///< Trig on CRYPTO0_DATA0XWR.
AnnaBridge 156:ff21514d8981 263 #endif
AnnaBridge 156:ff21514d8981 264 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA1RD)
AnnaBridge 156:ff21514d8981 265 ldmaPeripheralSignal_CRYPTO0_DATA1RD = LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA1RD | LDMA_CH_REQSEL_SOURCESEL_CRYPTO0, ///< Trig on CRYPTO0_DATA1RD.
AnnaBridge 156:ff21514d8981 266 #endif
AnnaBridge 156:ff21514d8981 267 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA1WR)
AnnaBridge 156:ff21514d8981 268 ldmaPeripheralSignal_CRYPTO0_DATA1WR = LDMA_CH_REQSEL_SIGSEL_CRYPTO0DATA1WR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO0, ///< Trig on CRYPTO0_DATA1WR.
AnnaBridge 156:ff21514d8981 269 #endif
AnnaBridge 156:ff21514d8981 270 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA0RD)
AnnaBridge 156:ff21514d8981 271 ldmaPeripheralSignal_CRYPTO1_DATA0RD = LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA0RD | LDMA_CH_REQSEL_SOURCESEL_CRYPTO1, ///< Trig on CRYPTO1_DATA0RD.
AnnaBridge 156:ff21514d8981 272 #endif
AnnaBridge 156:ff21514d8981 273 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA0WR)
AnnaBridge 156:ff21514d8981 274 ldmaPeripheralSignal_CRYPTO1_DATA0WR = LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA0WR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO1, ///< Trig on CRYPTO1_DATA0WR.
AnnaBridge 156:ff21514d8981 275 #endif
AnnaBridge 156:ff21514d8981 276 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA0XWR)
AnnaBridge 156:ff21514d8981 277 ldmaPeripheralSignal_CRYPTO1_DATA0XWR = LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA0XWR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO1, ///< Trig on CRYPTO1_DATA0XWR.
AnnaBridge 156:ff21514d8981 278 #endif
AnnaBridge 156:ff21514d8981 279 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA1RD)
AnnaBridge 156:ff21514d8981 280 ldmaPeripheralSignal_CRYPTO1_DATA1RD = LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA1RD | LDMA_CH_REQSEL_SOURCESEL_CRYPTO1, ///< Trig on CRYPTO1_DATA1RD.
AnnaBridge 156:ff21514d8981 281 #endif
AnnaBridge 156:ff21514d8981 282 #if defined(LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA1WR)
AnnaBridge 156:ff21514d8981 283 ldmaPeripheralSignal_CRYPTO1_DATA1WR = LDMA_CH_REQSEL_SIGSEL_CRYPTO1DATA1WR | LDMA_CH_REQSEL_SOURCESEL_CRYPTO1, ///< Trig on CRYPTO1_DATA1WR.
AnnaBridge 156:ff21514d8981 284 #endif
AnnaBridge 156:ff21514d8981 285 #if defined(LDMA_CH_REQSEL_SIGSEL_CSENBSLN)
AnnaBridge 156:ff21514d8981 286 ldmaPeripheralSignal_CSEN_BSLN = LDMA_CH_REQSEL_SIGSEL_CSENBSLN | LDMA_CH_REQSEL_SOURCESEL_CSEN, ///< Trig on CSEN_BSLN.
AnnaBridge 156:ff21514d8981 287 #endif
AnnaBridge 156:ff21514d8981 288 #if defined(LDMA_CH_REQSEL_SIGSEL_CSENDATA)
AnnaBridge 156:ff21514d8981 289 ldmaPeripheralSignal_CSEN_DATA = LDMA_CH_REQSEL_SIGSEL_CSENDATA | LDMA_CH_REQSEL_SOURCESEL_CSEN, ///< Trig on CSEN_DATA.
AnnaBridge 156:ff21514d8981 290 #endif
Anna Bridge 160:5571c4ff569f 291 #if defined(LDMA_CH_REQSEL_SIGSEL_EBIPXL0EMPTY)
Anna Bridge 160:5571c4ff569f 292 ldmaPeripheralSignal_EBI_PXL0EMPTY = LDMA_CH_REQSEL_SIGSEL_EBIPXL0EMPTY | LDMA_CH_REQSEL_SOURCESEL_EBI, ///< Trig on EBI_PXL0EMPTY.
Anna Bridge 160:5571c4ff569f 293 #endif
Anna Bridge 160:5571c4ff569f 294 #if defined(LDMA_CH_REQSEL_SIGSEL_EBIPXL1EMPTY)
Anna Bridge 160:5571c4ff569f 295 ldmaPeripheralSignal_EBI_PXL1EMPTY = LDMA_CH_REQSEL_SIGSEL_EBIPXL1EMPTY | LDMA_CH_REQSEL_SOURCESEL_EBI, ///< Trig on EBI_PXL1EMPTY.
Anna Bridge 160:5571c4ff569f 296 #endif
Anna Bridge 160:5571c4ff569f 297 #if defined(LDMA_CH_REQSEL_SIGSEL_EBIPXLFULL)
Anna Bridge 160:5571c4ff569f 298 ldmaPeripheralSignal_EBI_PXLFULL = LDMA_CH_REQSEL_SIGSEL_EBIPXLFULL | LDMA_CH_REQSEL_SOURCESEL_EBI, ///< Trig on EBI_PXLFULL.
Anna Bridge 160:5571c4ff569f 299 #endif
Anna Bridge 160:5571c4ff569f 300 #if defined(LDMA_CH_REQSEL_SIGSEL_EBIDDEMPTY)
Anna Bridge 160:5571c4ff569f 301 ldmaPeripheralSignal_EBI_DDEMPTY = LDMA_CH_REQSEL_SIGSEL_EBIDDEMPTY | LDMA_CH_REQSEL_SOURCESEL_EBI, ///< Trig on EBI_DDEMPTY.
Anna Bridge 160:5571c4ff569f 302 #endif
Anna Bridge 160:5571c4ff569f 303 #if defined(LDMA_CH_REQSEL_SIGSEL_EBIVSYNC)
Anna Bridge 160:5571c4ff569f 304 ldmaPeripheralSignal_EBI_VSYNC = LDMA_CH_REQSEL_SIGSEL_EBIVSYNC | LDMA_CH_REQSEL_SOURCESEL_EBI, ///< Trig on EBI_VSYNC.
Anna Bridge 160:5571c4ff569f 305 #endif
Anna Bridge 160:5571c4ff569f 306 #if defined(LDMA_CH_REQSEL_SIGSEL_EBIHSYNC)
Anna Bridge 160:5571c4ff569f 307 ldmaPeripheralSignal_EBI_HSYNC = LDMA_CH_REQSEL_SIGSEL_EBIHSYNC | LDMA_CH_REQSEL_SOURCESEL_EBI, ///< Trig on EBI_HSYNC.
Anna Bridge 160:5571c4ff569f 308 #endif
AnnaBridge 156:ff21514d8981 309 #if defined(LDMA_CH_REQSEL_SIGSEL_I2C0RXDATAV)
AnnaBridge 156:ff21514d8981 310 ldmaPeripheralSignal_I2C0_RXDATAV = LDMA_CH_REQSEL_SIGSEL_I2C0RXDATAV | LDMA_CH_REQSEL_SOURCESEL_I2C0, ///< Trig on I2C0_RXDATAV.
AnnaBridge 156:ff21514d8981 311 #endif
AnnaBridge 156:ff21514d8981 312 #if defined(LDMA_CH_REQSEL_SIGSEL_I2C0TXBL)
AnnaBridge 156:ff21514d8981 313 ldmaPeripheralSignal_I2C0_TXBL = LDMA_CH_REQSEL_SIGSEL_I2C0TXBL | LDMA_CH_REQSEL_SOURCESEL_I2C0, ///< Trig on I2C0_TXBL.
AnnaBridge 156:ff21514d8981 314 #endif
AnnaBridge 156:ff21514d8981 315 #if defined(LDMA_CH_REQSEL_SIGSEL_I2C1RXDATAV)
AnnaBridge 156:ff21514d8981 316 ldmaPeripheralSignal_I2C1_RXDATAV = LDMA_CH_REQSEL_SIGSEL_I2C1RXDATAV | LDMA_CH_REQSEL_SOURCESEL_I2C1, ///< Trig on I2C1_RXDATAV.
AnnaBridge 156:ff21514d8981 317 #endif
AnnaBridge 156:ff21514d8981 318 #if defined(LDMA_CH_REQSEL_SIGSEL_I2C1TXBL)
AnnaBridge 156:ff21514d8981 319 ldmaPeripheralSignal_I2C1_TXBL = LDMA_CH_REQSEL_SIGSEL_I2C1TXBL | LDMA_CH_REQSEL_SOURCESEL_I2C1, ///< Trig on I2C1_TXBL.
AnnaBridge 156:ff21514d8981 320 #endif
Anna Bridge 160:5571c4ff569f 321 #if defined(LDMA_CH_REQSEL_SIGSEL_I2C2RXDATAV)
Anna Bridge 160:5571c4ff569f 322 ldmaPeripheralSignal_I2C2_RXDATAV = LDMA_CH_REQSEL_SIGSEL_I2C2RXDATAV | LDMA_CH_REQSEL_SOURCESEL_I2C2, ///< Trig on I2C2_RXDATAV.
Anna Bridge 160:5571c4ff569f 323 #endif
Anna Bridge 160:5571c4ff569f 324 #if defined(LDMA_CH_REQSEL_SIGSEL_I2C2TXBL)
Anna Bridge 160:5571c4ff569f 325 ldmaPeripheralSignal_I2C2_TXBL = LDMA_CH_REQSEL_SIGSEL_I2C2TXBL | LDMA_CH_REQSEL_SOURCESEL_I2C2, ///< Trig on I2C2_TXBL.
Anna Bridge 160:5571c4ff569f 326 #endif
AnnaBridge 156:ff21514d8981 327 #if defined(LDMA_CH_REQSEL_SIGSEL_LESENSEBUFDATAV)
AnnaBridge 156:ff21514d8981 328 ldmaPeripheralSignal_LESENSE_BUFDATAV = LDMA_CH_REQSEL_SIGSEL_LESENSEBUFDATAV | LDMA_CH_REQSEL_SOURCESEL_LESENSE, ///< Trig on LESENSE_BUFDATAV.
AnnaBridge 156:ff21514d8981 329 #endif
AnnaBridge 156:ff21514d8981 330 #if defined(LDMA_CH_REQSEL_SIGSEL_LEUART0RXDATAV)
AnnaBridge 156:ff21514d8981 331 ldmaPeripheralSignal_LEUART0_RXDATAV = LDMA_CH_REQSEL_SIGSEL_LEUART0RXDATAV | LDMA_CH_REQSEL_SOURCESEL_LEUART0, ///< Trig on LEUART0_RXDATAV.
AnnaBridge 156:ff21514d8981 332 #endif
AnnaBridge 156:ff21514d8981 333 #if defined(LDMA_CH_REQSEL_SIGSEL_LEUART0TXBL)
AnnaBridge 156:ff21514d8981 334 ldmaPeripheralSignal_LEUART0_TXBL = LDMA_CH_REQSEL_SIGSEL_LEUART0TXBL | LDMA_CH_REQSEL_SOURCESEL_LEUART0, ///< Trig on LEUART0_TXBL.
AnnaBridge 156:ff21514d8981 335 #endif
AnnaBridge 156:ff21514d8981 336 #if defined(LDMA_CH_REQSEL_SIGSEL_LEUART0TXEMPTY)
AnnaBridge 156:ff21514d8981 337 ldmaPeripheralSignal_LEUART0_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_LEUART0TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_LEUART0, ///< Trig on LEUART0_TXEMPTY.
AnnaBridge 156:ff21514d8981 338 #endif
Anna Bridge 160:5571c4ff569f 339 #if defined(LDMA_CH_REQSEL_SIGSEL_LEUART1RXDATAV)
Anna Bridge 160:5571c4ff569f 340 ldmaPeripheralSignal_LEUART1_RXDATAV = LDMA_CH_REQSEL_SIGSEL_LEUART1RXDATAV | LDMA_CH_REQSEL_SOURCESEL_LEUART1, ///< Trig on LEUART1_RXDATAV.
Anna Bridge 160:5571c4ff569f 341 #endif
Anna Bridge 160:5571c4ff569f 342 #if defined(LDMA_CH_REQSEL_SIGSEL_LEUART1TXBL)
Anna Bridge 160:5571c4ff569f 343 ldmaPeripheralSignal_LEUART1_TXBL = LDMA_CH_REQSEL_SIGSEL_LEUART1TXBL | LDMA_CH_REQSEL_SOURCESEL_LEUART1, ///< Trig on LEUART1_TXBL.
Anna Bridge 160:5571c4ff569f 344 #endif
Anna Bridge 160:5571c4ff569f 345 #if defined(LDMA_CH_REQSEL_SIGSEL_LEUART1TXEMPTY)
Anna Bridge 160:5571c4ff569f 346 ldmaPeripheralSignal_LEUART1_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_LEUART1TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_LEUART1, ///< Trig on LEUART1_TXEMPTY.
Anna Bridge 160:5571c4ff569f 347 #endif
AnnaBridge 156:ff21514d8981 348 #if defined(LDMA_CH_REQSEL_SIGSEL_MSCWDATA)
AnnaBridge 156:ff21514d8981 349 ldmaPeripheralSignal_MSC_WDATA = LDMA_CH_REQSEL_SIGSEL_MSCWDATA | LDMA_CH_REQSEL_SOURCESEL_MSC, ///< Trig on MSC_WDATA.
AnnaBridge 156:ff21514d8981 350 #endif
AnnaBridge 156:ff21514d8981 351 #if defined(LDMA_CH_REQSEL_SIGSEL_PRSREQ0)
AnnaBridge 156:ff21514d8981 352 ldmaPeripheralSignal_PRS_REQ0 = LDMA_CH_REQSEL_SIGSEL_PRSREQ0 | LDMA_CH_REQSEL_SOURCESEL_PRS, ///< Trig on PRS_REQ0.
AnnaBridge 156:ff21514d8981 353 #endif
AnnaBridge 156:ff21514d8981 354 #if defined(LDMA_CH_REQSEL_SIGSEL_PRSREQ1)
AnnaBridge 156:ff21514d8981 355 ldmaPeripheralSignal_PRS_REQ1 = LDMA_CH_REQSEL_SIGSEL_PRSREQ1 | LDMA_CH_REQSEL_SOURCESEL_PRS, ///< Trig on PRS_REQ1.
AnnaBridge 156:ff21514d8981 356 #endif
AnnaBridge 156:ff21514d8981 357 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER0CC0)
AnnaBridge 156:ff21514d8981 358 ldmaPeripheralSignal_TIMER0_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER0CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER0, ///< Trig on TIMER0_CC0.
AnnaBridge 156:ff21514d8981 359 #endif
AnnaBridge 156:ff21514d8981 360 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER0CC1)
AnnaBridge 156:ff21514d8981 361 ldmaPeripheralSignal_TIMER0_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER0CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER0, ///< Trig on TIMER0_CC1.
AnnaBridge 156:ff21514d8981 362 #endif
AnnaBridge 156:ff21514d8981 363 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER0CC2)
AnnaBridge 156:ff21514d8981 364 ldmaPeripheralSignal_TIMER0_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER0CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER0, ///< Trig on TIMER0_CC2.
AnnaBridge 156:ff21514d8981 365 #endif
AnnaBridge 156:ff21514d8981 366 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER0UFOF)
AnnaBridge 156:ff21514d8981 367 ldmaPeripheralSignal_TIMER0_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER0UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER0, ///< Trig on TIMER0_UFOF.
AnnaBridge 156:ff21514d8981 368 #endif
AnnaBridge 156:ff21514d8981 369 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER1CC0)
AnnaBridge 156:ff21514d8981 370 ldmaPeripheralSignal_TIMER1_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER1CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER1, ///< Trig on TIMER1_CC0.
AnnaBridge 156:ff21514d8981 371 #endif
AnnaBridge 156:ff21514d8981 372 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER1CC1)
AnnaBridge 156:ff21514d8981 373 ldmaPeripheralSignal_TIMER1_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER1CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER1, ///< Trig on TIMER1_CC1.
AnnaBridge 156:ff21514d8981 374 #endif
AnnaBridge 156:ff21514d8981 375 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER1CC2)
AnnaBridge 156:ff21514d8981 376 ldmaPeripheralSignal_TIMER1_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER1CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER1, ///< Trig on TIMER1_CC2.
AnnaBridge 156:ff21514d8981 377 #endif
AnnaBridge 156:ff21514d8981 378 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER1CC3)
AnnaBridge 156:ff21514d8981 379 ldmaPeripheralSignal_TIMER1_CC3 = LDMA_CH_REQSEL_SIGSEL_TIMER1CC3 | LDMA_CH_REQSEL_SOURCESEL_TIMER1, ///< Trig on TIMER1_CC3.
AnnaBridge 156:ff21514d8981 380 #endif
AnnaBridge 156:ff21514d8981 381 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER1UFOF)
AnnaBridge 156:ff21514d8981 382 ldmaPeripheralSignal_TIMER1_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER1UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER1, ///< Trig on TIMER1_UFOF.
AnnaBridge 156:ff21514d8981 383 #endif
Anna Bridge 160:5571c4ff569f 384 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER2CC0)
Anna Bridge 160:5571c4ff569f 385 ldmaPeripheralSignal_TIMER2_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER2CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER2, ///< Trig on TIMER2_CC0.
Anna Bridge 160:5571c4ff569f 386 #endif
Anna Bridge 160:5571c4ff569f 387 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER2CC1)
Anna Bridge 160:5571c4ff569f 388 ldmaPeripheralSignal_TIMER2_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER2CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER2, ///< Trig on TIMER2_CC1.
Anna Bridge 160:5571c4ff569f 389 #endif
Anna Bridge 160:5571c4ff569f 390 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER2CC2)
Anna Bridge 160:5571c4ff569f 391 ldmaPeripheralSignal_TIMER2_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER2CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER2, ///< Trig on TIMER2_CC2.
Anna Bridge 160:5571c4ff569f 392 #endif
Anna Bridge 160:5571c4ff569f 393 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER2UFOF)
Anna Bridge 160:5571c4ff569f 394 ldmaPeripheralSignal_TIMER2_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER2UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER2, ///< Trig on TIMER2_UFOF.
Anna Bridge 160:5571c4ff569f 395 #endif
Anna Bridge 160:5571c4ff569f 396 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER3CC0)
Anna Bridge 160:5571c4ff569f 397 ldmaPeripheralSignal_TIMER3_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER3CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER3, ///< Trig on TIMER3_CC0.
Anna Bridge 160:5571c4ff569f 398 #endif
Anna Bridge 160:5571c4ff569f 399 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER3CC1)
Anna Bridge 160:5571c4ff569f 400 ldmaPeripheralSignal_TIMER3_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER3CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER3, ///< Trig on TIMER3_CC1.
Anna Bridge 160:5571c4ff569f 401 #endif
Anna Bridge 160:5571c4ff569f 402 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER3CC2)
Anna Bridge 160:5571c4ff569f 403 ldmaPeripheralSignal_TIMER3_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER3CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER3, ///< Trig on TIMER3_CC2.
Anna Bridge 160:5571c4ff569f 404 #endif
Anna Bridge 160:5571c4ff569f 405 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER3UFOF)
Anna Bridge 160:5571c4ff569f 406 ldmaPeripheralSignal_TIMER3_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER3UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER3, ///< Trig on TIMER3_UFOF.
Anna Bridge 160:5571c4ff569f 407 #endif
Anna Bridge 160:5571c4ff569f 408 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER4CC0)
Anna Bridge 160:5571c4ff569f 409 ldmaPeripheralSignal_TIMER4_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER4CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER4, ///< Trig on TIMER4_CC0.
Anna Bridge 160:5571c4ff569f 410 #endif
Anna Bridge 160:5571c4ff569f 411 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER4CC1)
Anna Bridge 160:5571c4ff569f 412 ldmaPeripheralSignal_TIMER4_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER4CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER4, ///< Trig on TIMER4_CC1.
Anna Bridge 160:5571c4ff569f 413 #endif
Anna Bridge 160:5571c4ff569f 414 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER4CC2)
Anna Bridge 160:5571c4ff569f 415 ldmaPeripheralSignal_TIMER4_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER4CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER4, ///< Trig on TIMER4_CC2.
Anna Bridge 160:5571c4ff569f 416 #endif
Anna Bridge 160:5571c4ff569f 417 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER4UFOF)
Anna Bridge 160:5571c4ff569f 418 ldmaPeripheralSignal_TIMER4_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER4UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER4, ///< Trig on TIMER4_UFOF.
Anna Bridge 160:5571c4ff569f 419 #endif
Anna Bridge 160:5571c4ff569f 420 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER5CC0)
Anna Bridge 160:5571c4ff569f 421 ldmaPeripheralSignal_TIMER5_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER5CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER5, ///< Trig on TIMER5_CC0.
Anna Bridge 160:5571c4ff569f 422 #endif
Anna Bridge 160:5571c4ff569f 423 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER5CC1)
Anna Bridge 160:5571c4ff569f 424 ldmaPeripheralSignal_TIMER5_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER5CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER5, ///< Trig on TIMER5_CC1.
Anna Bridge 160:5571c4ff569f 425 #endif
Anna Bridge 160:5571c4ff569f 426 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER5CC2)
Anna Bridge 160:5571c4ff569f 427 ldmaPeripheralSignal_TIMER5_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER5CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER5, ///< Trig on TIMER5_CC2.
Anna Bridge 160:5571c4ff569f 428 #endif
Anna Bridge 160:5571c4ff569f 429 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER5UFOF)
Anna Bridge 160:5571c4ff569f 430 ldmaPeripheralSignal_TIMER5_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER5UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER5, ///< Trig on TIMER5_UFOF.
Anna Bridge 160:5571c4ff569f 431 #endif
Anna Bridge 160:5571c4ff569f 432 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER6CC0)
Anna Bridge 160:5571c4ff569f 433 ldmaPeripheralSignal_TIMER6_CC0 = LDMA_CH_REQSEL_SIGSEL_TIMER6CC0 | LDMA_CH_REQSEL_SOURCESEL_TIMER6, ///< Trig on TIMER6_CC0.
Anna Bridge 160:5571c4ff569f 434 #endif
Anna Bridge 160:5571c4ff569f 435 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER6CC1)
Anna Bridge 160:5571c4ff569f 436 ldmaPeripheralSignal_TIMER6_CC1 = LDMA_CH_REQSEL_SIGSEL_TIMER6CC1 | LDMA_CH_REQSEL_SOURCESEL_TIMER6, ///< Trig on TIMER6_CC1.
Anna Bridge 160:5571c4ff569f 437 #endif
Anna Bridge 160:5571c4ff569f 438 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER6CC2)
Anna Bridge 160:5571c4ff569f 439 ldmaPeripheralSignal_TIMER6_CC2 = LDMA_CH_REQSEL_SIGSEL_TIMER6CC2 | LDMA_CH_REQSEL_SOURCESEL_TIMER6, ///< Trig on TIMER6_CC2.
Anna Bridge 160:5571c4ff569f 440 #endif
Anna Bridge 160:5571c4ff569f 441 #if defined(LDMA_CH_REQSEL_SIGSEL_TIMER6UFOF)
Anna Bridge 160:5571c4ff569f 442 ldmaPeripheralSignal_TIMER6_UFOF = LDMA_CH_REQSEL_SIGSEL_TIMER6UFOF | LDMA_CH_REQSEL_SOURCESEL_TIMER6, ///< Trig on TIMER6_UFOF.
Anna Bridge 160:5571c4ff569f 443 #endif
Anna Bridge 160:5571c4ff569f 444 #if defined(LDMA_CH_REQSEL_SIGSEL_UART0RXDATAV)
Anna Bridge 160:5571c4ff569f 445 ldmaPeripheralSignal_UART0_RXDATAV = LDMA_CH_REQSEL_SIGSEL_UART0RXDATAV | LDMA_CH_REQSEL_SOURCESEL_UART0, ///< Trig on UART0_RXDATAV.
Anna Bridge 160:5571c4ff569f 446 #endif
Anna Bridge 160:5571c4ff569f 447 #if defined(LDMA_CH_REQSEL_SIGSEL_UART0TXBL)
Anna Bridge 160:5571c4ff569f 448 ldmaPeripheralSignal_UART0_TXBL = LDMA_CH_REQSEL_SIGSEL_UART0TXBL | LDMA_CH_REQSEL_SOURCESEL_UART0, ///< Trig on UART0_TXBL.
Anna Bridge 160:5571c4ff569f 449 #endif
Anna Bridge 160:5571c4ff569f 450 #if defined(LDMA_CH_REQSEL_SIGSEL_UART0TXEMPTY)
Anna Bridge 160:5571c4ff569f 451 ldmaPeripheralSignal_UART0_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_UART0TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_UART0, ///< Trig on UART0_TXEMPTY.
Anna Bridge 160:5571c4ff569f 452 #endif
Anna Bridge 160:5571c4ff569f 453 #if defined(LDMA_CH_REQSEL_SIGSEL_UART1RXDATAV)
Anna Bridge 160:5571c4ff569f 454 ldmaPeripheralSignal_UART1_RXDATAV = LDMA_CH_REQSEL_SIGSEL_UART1RXDATAV | LDMA_CH_REQSEL_SOURCESEL_UART1, ///< Trig on UART1_RXDATAV.
Anna Bridge 160:5571c4ff569f 455 #endif
Anna Bridge 160:5571c4ff569f 456 #if defined(LDMA_CH_REQSEL_SIGSEL_UART1TXBL)
Anna Bridge 160:5571c4ff569f 457 ldmaPeripheralSignal_UART1_TXBL = LDMA_CH_REQSEL_SIGSEL_UART1TXBL | LDMA_CH_REQSEL_SOURCESEL_UART1, ///< Trig on UART1_TXBL.
Anna Bridge 160:5571c4ff569f 458 #endif
Anna Bridge 160:5571c4ff569f 459 #if defined(LDMA_CH_REQSEL_SIGSEL_UART1TXEMPTY)
Anna Bridge 160:5571c4ff569f 460 ldmaPeripheralSignal_UART1_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_UART1TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_UART1, ///< Trig on UART1_TXEMPTY.
Anna Bridge 160:5571c4ff569f 461 #endif
AnnaBridge 156:ff21514d8981 462 #if defined(LDMA_CH_REQSEL_SIGSEL_USART0RXDATAV)
AnnaBridge 156:ff21514d8981 463 ldmaPeripheralSignal_USART0_RXDATAV = LDMA_CH_REQSEL_SIGSEL_USART0RXDATAV | LDMA_CH_REQSEL_SOURCESEL_USART0, ///< Trig on USART0_RXDATAV.
AnnaBridge 156:ff21514d8981 464 #endif
AnnaBridge 156:ff21514d8981 465 #if defined(LDMA_CH_REQSEL_SIGSEL_USART0TXBL)
AnnaBridge 156:ff21514d8981 466 ldmaPeripheralSignal_USART0_TXBL = LDMA_CH_REQSEL_SIGSEL_USART0TXBL | LDMA_CH_REQSEL_SOURCESEL_USART0, ///< Trig on USART0_TXBL.
AnnaBridge 156:ff21514d8981 467 #endif
AnnaBridge 156:ff21514d8981 468 #if defined(LDMA_CH_REQSEL_SIGSEL_USART0TXEMPTY)
AnnaBridge 156:ff21514d8981 469 ldmaPeripheralSignal_USART0_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_USART0TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_USART0, ///< Trig on USART0_TXEMPTY.
AnnaBridge 156:ff21514d8981 470 #endif
AnnaBridge 156:ff21514d8981 471 #if defined(LDMA_CH_REQSEL_SIGSEL_USART1RXDATAV)
AnnaBridge 156:ff21514d8981 472 ldmaPeripheralSignal_USART1_RXDATAV = LDMA_CH_REQSEL_SIGSEL_USART1RXDATAV | LDMA_CH_REQSEL_SOURCESEL_USART1, ///< Trig on USART1_RXDATAV.
AnnaBridge 156:ff21514d8981 473 #endif
AnnaBridge 156:ff21514d8981 474 #if defined(LDMA_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT)
AnnaBridge 156:ff21514d8981 475 ldmaPeripheralSignal_USART1_RXDATAVRIGHT = LDMA_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT | LDMA_CH_REQSEL_SOURCESEL_USART1, ///< Trig on USART1_RXDATAVRIGHT.
AnnaBridge 156:ff21514d8981 476 #endif
AnnaBridge 156:ff21514d8981 477 #if defined(LDMA_CH_REQSEL_SIGSEL_USART1TXBL)
AnnaBridge 156:ff21514d8981 478 ldmaPeripheralSignal_USART1_TXBL = LDMA_CH_REQSEL_SIGSEL_USART1TXBL | LDMA_CH_REQSEL_SOURCESEL_USART1, ///< Trig on USART1_TXBL.
AnnaBridge 156:ff21514d8981 479 #endif
AnnaBridge 156:ff21514d8981 480 #if defined(LDMA_CH_REQSEL_SIGSEL_USART1TXBLRIGHT)
AnnaBridge 156:ff21514d8981 481 ldmaPeripheralSignal_USART1_TXBLRIGHT = LDMA_CH_REQSEL_SIGSEL_USART1TXBLRIGHT | LDMA_CH_REQSEL_SOURCESEL_USART1, ///< Trig on USART1_TXBLRIGHT.
AnnaBridge 156:ff21514d8981 482 #endif
AnnaBridge 156:ff21514d8981 483 #if defined(LDMA_CH_REQSEL_SIGSEL_USART1TXEMPTY)
AnnaBridge 156:ff21514d8981 484 ldmaPeripheralSignal_USART1_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_USART1TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_USART1, ///< Trig on USART1_TXEMPTY.
AnnaBridge 156:ff21514d8981 485 #endif
AnnaBridge 156:ff21514d8981 486 #if defined(LDMA_CH_REQSEL_SIGSEL_USART2RXDATAV)
AnnaBridge 156:ff21514d8981 487 ldmaPeripheralSignal_USART2_RXDATAV = LDMA_CH_REQSEL_SIGSEL_USART2RXDATAV | LDMA_CH_REQSEL_SOURCESEL_USART2, ///< Trig on USART2_RXDATAV.
AnnaBridge 156:ff21514d8981 488 #endif
AnnaBridge 156:ff21514d8981 489 #if defined(LDMA_CH_REQSEL_SIGSEL_USART2TXBL)
AnnaBridge 156:ff21514d8981 490 ldmaPeripheralSignal_USART2_TXBL = LDMA_CH_REQSEL_SIGSEL_USART2TXBL | LDMA_CH_REQSEL_SOURCESEL_USART2, ///< Trig on USART2_TXBL.
AnnaBridge 156:ff21514d8981 491 #endif
AnnaBridge 156:ff21514d8981 492 #if defined(LDMA_CH_REQSEL_SIGSEL_USART2TXEMPTY)
AnnaBridge 156:ff21514d8981 493 ldmaPeripheralSignal_USART2_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_USART2TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_USART2, ///< Trig on USART2_TXEMPTY.
AnnaBridge 156:ff21514d8981 494 #endif
AnnaBridge 156:ff21514d8981 495 #if defined(LDMA_CH_REQSEL_SIGSEL_USART3RXDATAV)
AnnaBridge 156:ff21514d8981 496 ldmaPeripheralSignal_USART3_RXDATAV = LDMA_CH_REQSEL_SIGSEL_USART3RXDATAV | LDMA_CH_REQSEL_SOURCESEL_USART3, ///< Trig on USART3_RXDATAV.
AnnaBridge 156:ff21514d8981 497 #endif
AnnaBridge 156:ff21514d8981 498 #if defined(LDMA_CH_REQSEL_SIGSEL_USART3RXDATAVRIGHT)
AnnaBridge 156:ff21514d8981 499 ldmaPeripheralSignal_USART3_RXDATAVRIGHT = LDMA_CH_REQSEL_SIGSEL_USART3RXDATAVRIGHT | LDMA_CH_REQSEL_SOURCESEL_USART3, ///< Trig on USART3_RXDATAVRIGHT.
AnnaBridge 156:ff21514d8981 500 #endif
AnnaBridge 156:ff21514d8981 501 #if defined(LDMA_CH_REQSEL_SIGSEL_USART3TXBL)
AnnaBridge 156:ff21514d8981 502 ldmaPeripheralSignal_USART3_TXBL = LDMA_CH_REQSEL_SIGSEL_USART3TXBL | LDMA_CH_REQSEL_SOURCESEL_USART3, ///< Trig on USART3_TXBL.
AnnaBridge 156:ff21514d8981 503 #endif
AnnaBridge 156:ff21514d8981 504 #if defined(LDMA_CH_REQSEL_SIGSEL_USART3TXBLRIGHT)
AnnaBridge 156:ff21514d8981 505 ldmaPeripheralSignal_USART3_TXBLRIGHT = LDMA_CH_REQSEL_SIGSEL_USART3TXBLRIGHT | LDMA_CH_REQSEL_SOURCESEL_USART3, ///< Trig on USART3_TXBLRIGHT.
AnnaBridge 156:ff21514d8981 506 #endif
AnnaBridge 156:ff21514d8981 507 #if defined(LDMA_CH_REQSEL_SIGSEL_USART3TXEMPTY)
AnnaBridge 156:ff21514d8981 508 ldmaPeripheralSignal_USART3_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_USART3TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_USART3, ///< Trig on USART3_TXEMPTY.
AnnaBridge 156:ff21514d8981 509 #endif
Anna Bridge 160:5571c4ff569f 510 #if defined(LDMA_CH_REQSEL_SIGSEL_USART4RXDATAV)
Anna Bridge 160:5571c4ff569f 511 ldmaPeripheralSignal_USART4_RXDATAV = LDMA_CH_REQSEL_SIGSEL_USART4RXDATAV | LDMA_CH_REQSEL_SOURCESEL_USART4, ///< Trig on USART4_RXDATAV.
Anna Bridge 160:5571c4ff569f 512 #endif
Anna Bridge 160:5571c4ff569f 513 #if defined(LDMA_CH_REQSEL_SIGSEL_USART4RXDATAVRIGHT)
Anna Bridge 160:5571c4ff569f 514 ldmaPeripheralSignal_USART4_RXDATAVRIGHT = LDMA_CH_REQSEL_SIGSEL_USART4RXDATAVRIGHT | LDMA_CH_REQSEL_SOURCESEL_USART4, ///< Trig on USART4_RXDATAVRIGHT.
Anna Bridge 160:5571c4ff569f 515 #endif
Anna Bridge 160:5571c4ff569f 516 #if defined(LDMA_CH_REQSEL_SIGSEL_USART4TXBL)
Anna Bridge 160:5571c4ff569f 517 ldmaPeripheralSignal_USART4_TXBL = LDMA_CH_REQSEL_SIGSEL_USART4TXBL | LDMA_CH_REQSEL_SOURCESEL_USART4, ///< Trig on USART4_TXBL.
Anna Bridge 160:5571c4ff569f 518 #endif
Anna Bridge 160:5571c4ff569f 519 #if defined(LDMA_CH_REQSEL_SIGSEL_USART4TXBLRIGHT)
Anna Bridge 160:5571c4ff569f 520 ldmaPeripheralSignal_USART4_TXBLRIGHT = LDMA_CH_REQSEL_SIGSEL_USART4TXBLRIGHT | LDMA_CH_REQSEL_SOURCESEL_USART4, ///< Trig on USART4_TXBLRIGHT.
Anna Bridge 160:5571c4ff569f 521 #endif
Anna Bridge 160:5571c4ff569f 522 #if defined(LDMA_CH_REQSEL_SIGSEL_USART4TXEMPTY)
Anna Bridge 160:5571c4ff569f 523 ldmaPeripheralSignal_USART4_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_USART4TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_USART4, ///< Trig on USART4_TXEMPTY.
Anna Bridge 160:5571c4ff569f 524 #endif
Anna Bridge 160:5571c4ff569f 525 #if defined(LDMA_CH_REQSEL_SIGSEL_USART5RXDATAV)
Anna Bridge 160:5571c4ff569f 526 ldmaPeripheralSignal_USART5_RXDATAV = LDMA_CH_REQSEL_SIGSEL_USART5RXDATAV | LDMA_CH_REQSEL_SOURCESEL_USART5, ///< Trig on USART5_RXDATAV.
Anna Bridge 160:5571c4ff569f 527 #endif
Anna Bridge 160:5571c4ff569f 528 #if defined(LDMA_CH_REQSEL_SIGSEL_USART5TXBL)
Anna Bridge 160:5571c4ff569f 529 ldmaPeripheralSignal_USART5_TXBL = LDMA_CH_REQSEL_SIGSEL_USART5TXBL | LDMA_CH_REQSEL_SOURCESEL_USART5, ///< Trig on USART5_TXBL.
Anna Bridge 160:5571c4ff569f 530 #endif
Anna Bridge 160:5571c4ff569f 531 #if defined(LDMA_CH_REQSEL_SIGSEL_USART5TXEMPTY)
Anna Bridge 160:5571c4ff569f 532 ldmaPeripheralSignal_USART5_TXEMPTY = LDMA_CH_REQSEL_SIGSEL_USART5TXEMPTY | LDMA_CH_REQSEL_SOURCESEL_USART5, ///< Trig on USART5_TXEMPTY.
Anna Bridge 160:5571c4ff569f 533 #endif
AnnaBridge 156:ff21514d8981 534 #if defined(LDMA_CH_REQSEL_SIGSEL_VDAC0CH0)
AnnaBridge 156:ff21514d8981 535 ldmaPeripheralSignal_VDAC0_CH0 = LDMA_CH_REQSEL_SIGSEL_VDAC0CH0 | LDMA_CH_REQSEL_SOURCESEL_VDAC0, ///< Trig on VDAC0_CH0.
AnnaBridge 156:ff21514d8981 536 #endif
AnnaBridge 156:ff21514d8981 537 #if defined(LDMA_CH_REQSEL_SIGSEL_VDAC0CH1)
AnnaBridge 156:ff21514d8981 538 ldmaPeripheralSignal_VDAC0_CH1 = LDMA_CH_REQSEL_SIGSEL_VDAC0CH1 | LDMA_CH_REQSEL_SOURCESEL_VDAC0, ///< Trig on VDAC0_CH1.
AnnaBridge 156:ff21514d8981 539 #endif
AnnaBridge 156:ff21514d8981 540 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER0CC0)
AnnaBridge 156:ff21514d8981 541 ldmaPeripheralSignal_WTIMER0_CC0 = LDMA_CH_REQSEL_SIGSEL_WTIMER0CC0 | LDMA_CH_REQSEL_SOURCESEL_WTIMER0, ///< Trig on WTIMER0_CC0.
AnnaBridge 156:ff21514d8981 542 #endif
AnnaBridge 156:ff21514d8981 543 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER0CC1)
AnnaBridge 156:ff21514d8981 544 ldmaPeripheralSignal_WTIMER0_CC1 = LDMA_CH_REQSEL_SIGSEL_WTIMER0CC1 | LDMA_CH_REQSEL_SOURCESEL_WTIMER0, ///< Trig on WTIMER0_CC1.
AnnaBridge 156:ff21514d8981 545 #endif
AnnaBridge 156:ff21514d8981 546 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER0CC2)
AnnaBridge 156:ff21514d8981 547 ldmaPeripheralSignal_WTIMER0_CC2 = LDMA_CH_REQSEL_SIGSEL_WTIMER0CC2 | LDMA_CH_REQSEL_SOURCESEL_WTIMER0, ///< Trig on WTIMER0_CC2.
AnnaBridge 156:ff21514d8981 548 #endif
AnnaBridge 156:ff21514d8981 549 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER0UFOF)
AnnaBridge 156:ff21514d8981 550 ldmaPeripheralSignal_WTIMER0_UFOF = LDMA_CH_REQSEL_SIGSEL_WTIMER0UFOF | LDMA_CH_REQSEL_SOURCESEL_WTIMER0, ///< Trig on WTIMER0_UFOF.
AnnaBridge 156:ff21514d8981 551 #endif
AnnaBridge 156:ff21514d8981 552 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER1CC0)
AnnaBridge 156:ff21514d8981 553 ldmaPeripheralSignal_WTIMER1_CC0 = LDMA_CH_REQSEL_SIGSEL_WTIMER1CC0 | LDMA_CH_REQSEL_SOURCESEL_WTIMER1, ///< Trig on WTIMER1_CC0.
AnnaBridge 156:ff21514d8981 554 #endif
AnnaBridge 156:ff21514d8981 555 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER1CC1)
AnnaBridge 156:ff21514d8981 556 ldmaPeripheralSignal_WTIMER1_CC1 = LDMA_CH_REQSEL_SIGSEL_WTIMER1CC1 | LDMA_CH_REQSEL_SOURCESEL_WTIMER1, ///< Trig on WTIMER1_CC1.
AnnaBridge 156:ff21514d8981 557 #endif
AnnaBridge 156:ff21514d8981 558 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER1CC2)
AnnaBridge 156:ff21514d8981 559 ldmaPeripheralSignal_WTIMER1_CC2 = LDMA_CH_REQSEL_SIGSEL_WTIMER1CC2 | LDMA_CH_REQSEL_SOURCESEL_WTIMER1, ///< Trig on WTIMER1_CC2.
AnnaBridge 156:ff21514d8981 560 #endif
AnnaBridge 156:ff21514d8981 561 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER1CC3)
AnnaBridge 156:ff21514d8981 562 ldmaPeripheralSignal_WTIMER1_CC3 = LDMA_CH_REQSEL_SIGSEL_WTIMER1CC3 | LDMA_CH_REQSEL_SOURCESEL_WTIMER1, ///< Trig on WTIMER1_CC3.
AnnaBridge 156:ff21514d8981 563 #endif
AnnaBridge 156:ff21514d8981 564 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER1UFOF)
Anna Bridge 160:5571c4ff569f 565 ldmaPeripheralSignal_WTIMER1_UFOF = LDMA_CH_REQSEL_SIGSEL_WTIMER1UFOF | LDMA_CH_REQSEL_SOURCESEL_WTIMER1, ///< Trig on WTIMER1_UFOF.
Anna Bridge 160:5571c4ff569f 566 #endif
Anna Bridge 160:5571c4ff569f 567 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER2CC0)
Anna Bridge 160:5571c4ff569f 568 ldmaPeripheralSignal_WTIMER2_CC0 = LDMA_CH_REQSEL_SIGSEL_WTIMER2CC0 | LDMA_CH_REQSEL_SOURCESEL_WTIMER2, ///< Trig on WTIMER2_CC0.
Anna Bridge 160:5571c4ff569f 569 #endif
Anna Bridge 160:5571c4ff569f 570 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER2CC1)
Anna Bridge 160:5571c4ff569f 571 ldmaPeripheralSignal_WTIMER2_CC1 = LDMA_CH_REQSEL_SIGSEL_WTIMER2CC1 | LDMA_CH_REQSEL_SOURCESEL_WTIMER2, ///< Trig on WTIMER2_CC1.
Anna Bridge 160:5571c4ff569f 572 #endif
Anna Bridge 160:5571c4ff569f 573 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER2CC2)
Anna Bridge 160:5571c4ff569f 574 ldmaPeripheralSignal_WTIMER2_CC2 = LDMA_CH_REQSEL_SIGSEL_WTIMER2CC2 | LDMA_CH_REQSEL_SOURCESEL_WTIMER2, ///< Trig on WTIMER2_CC2.
Anna Bridge 160:5571c4ff569f 575 #endif
Anna Bridge 160:5571c4ff569f 576 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER2UFOF)
Anna Bridge 160:5571c4ff569f 577 ldmaPeripheralSignal_WTIMER2_UFOF = LDMA_CH_REQSEL_SIGSEL_WTIMER2UFOF | LDMA_CH_REQSEL_SOURCESEL_WTIMER2, ///< Trig on WTIMER2_UFOF.
Anna Bridge 160:5571c4ff569f 578 #endif
Anna Bridge 160:5571c4ff569f 579 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER3CC0)
Anna Bridge 160:5571c4ff569f 580 ldmaPeripheralSignal_WTIMER3_CC0 = LDMA_CH_REQSEL_SIGSEL_WTIMER3CC0 | LDMA_CH_REQSEL_SOURCESEL_WTIMER3, ///< Trig on WTIMER3_CC0.
Anna Bridge 160:5571c4ff569f 581 #endif
Anna Bridge 160:5571c4ff569f 582 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER3CC1)
Anna Bridge 160:5571c4ff569f 583 ldmaPeripheralSignal_WTIMER3_CC1 = LDMA_CH_REQSEL_SIGSEL_WTIMER3CC1 | LDMA_CH_REQSEL_SOURCESEL_WTIMER3, ///< Trig on WTIMER3_CC1.
Anna Bridge 160:5571c4ff569f 584 #endif
Anna Bridge 160:5571c4ff569f 585 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER3CC2)
Anna Bridge 160:5571c4ff569f 586 ldmaPeripheralSignal_WTIMER3_CC2 = LDMA_CH_REQSEL_SIGSEL_WTIMER3CC2 | LDMA_CH_REQSEL_SOURCESEL_WTIMER3, ///< Trig on WTIMER3_CC2.
Anna Bridge 160:5571c4ff569f 587 #endif
Anna Bridge 160:5571c4ff569f 588 #if defined(LDMA_CH_REQSEL_SIGSEL_WTIMER3UFOF)
Anna Bridge 160:5571c4ff569f 589 ldmaPeripheralSignal_WTIMER3_UFOF = LDMA_CH_REQSEL_SIGSEL_WTIMER3UFOF | LDMA_CH_REQSEL_SOURCESEL_WTIMER3, ///< Trig on WTIMER3_UFOF.
AnnaBridge 156:ff21514d8981 590 #endif
AnnaBridge 156:ff21514d8981 591 } LDMA_PeripheralSignal_t;
AnnaBridge 156:ff21514d8981 592
AnnaBridge 156:ff21514d8981 593 /*******************************************************************************
AnnaBridge 156:ff21514d8981 594 ******************************* STRUCTS ***********************************
AnnaBridge 156:ff21514d8981 595 ******************************************************************************/
AnnaBridge 156:ff21514d8981 596
AnnaBridge 156:ff21514d8981 597 /**
AnnaBridge 156:ff21514d8981 598 * @brief
AnnaBridge 156:ff21514d8981 599 * DMA descriptor.
AnnaBridge 156:ff21514d8981 600 * @details
AnnaBridge 156:ff21514d8981 601 * The LDMA DMA controller supports three different DMA descriptors. Each
AnnaBridge 156:ff21514d8981 602 * consist of four WORD's which map directly onto hw control registers for a
AnnaBridge 156:ff21514d8981 603 * given DMA channel. The three descriptor types are XFER, SYNC and WRI.
AnnaBridge 156:ff21514d8981 604 * Refer to the reference manual for further information.
AnnaBridge 156:ff21514d8981 605 */
Anna Bridge 160:5571c4ff569f 606 typedef union {
AnnaBridge 156:ff21514d8981 607 /**
AnnaBridge 156:ff21514d8981 608 * TRANSFER DMA descriptor, this is the only descriptor type which can be
AnnaBridge 156:ff21514d8981 609 * used to start a DMA transfer.
AnnaBridge 156:ff21514d8981 610 */
Anna Bridge 160:5571c4ff569f 611 struct {
AnnaBridge 156:ff21514d8981 612 uint32_t structType : 2; /**< Set to 0 to select XFER descriptor type. */
AnnaBridge 156:ff21514d8981 613 uint32_t reserved0 : 1;
AnnaBridge 156:ff21514d8981 614 uint32_t structReq : 1; /**< DMA transfer trigger during LINKLOAD. */
AnnaBridge 156:ff21514d8981 615 uint32_t xferCnt : 11; /**< Transfer count minus one. */
AnnaBridge 156:ff21514d8981 616 uint32_t byteSwap : 1; /**< Enable byte swapping transfers. */
AnnaBridge 156:ff21514d8981 617 uint32_t blockSize : 4; /**< Number of unit transfers per arb. cycle. */
AnnaBridge 156:ff21514d8981 618 uint32_t doneIfs : 1; /**< Generate interrupt when done. */
AnnaBridge 156:ff21514d8981 619 uint32_t reqMode : 1; /**< Block or cycle transfer selector. */
AnnaBridge 156:ff21514d8981 620 uint32_t decLoopCnt : 1; /**< Enable looped transfers. */
AnnaBridge 156:ff21514d8981 621 uint32_t ignoreSrec : 1; /**< Ignore single requests. */
AnnaBridge 156:ff21514d8981 622 uint32_t srcInc : 2; /**< Source address increment unit size. */
AnnaBridge 156:ff21514d8981 623 uint32_t size : 2; /**< DMA transfer unit size. */
AnnaBridge 156:ff21514d8981 624 uint32_t dstInc : 2; /**< Destination address increment unit size. */
Anna Bridge 160:5571c4ff569f 625 uint32_t srcAddrMode : 1; /**< Source addressing mode. */
Anna Bridge 160:5571c4ff569f 626 uint32_t dstAddrMode : 1; /**< Destination addressing mode. */
AnnaBridge 156:ff21514d8981 627
AnnaBridge 156:ff21514d8981 628 uint32_t srcAddr; /**< DMA source address. */
AnnaBridge 156:ff21514d8981 629 uint32_t dstAddr; /**< DMA destination address. */
AnnaBridge 156:ff21514d8981 630
AnnaBridge 156:ff21514d8981 631 uint32_t linkMode : 1; /**< Select absolute or relative link address.*/
AnnaBridge 156:ff21514d8981 632 uint32_t link : 1; /**< Enable LINKLOAD when transfer is done. */
AnnaBridge 156:ff21514d8981 633 int32_t linkAddr : 30; /**< Address of next (linked) descriptor. */
AnnaBridge 156:ff21514d8981 634 } xfer;
AnnaBridge 156:ff21514d8981 635
AnnaBridge 156:ff21514d8981 636 /** SYNCHRONIZE DMA descriptor, used for intra channel transfer
Anna Bridge 160:5571c4ff569f 637 * syncronization.
Anna Bridge 160:5571c4ff569f 638 */
Anna Bridge 160:5571c4ff569f 639 struct {
AnnaBridge 156:ff21514d8981 640 uint32_t structType : 2; /**< Set to 1 to select SYNC descriptor type. */
AnnaBridge 156:ff21514d8981 641 uint32_t reserved0 : 1;
AnnaBridge 156:ff21514d8981 642 uint32_t structReq : 1; /**< DMA transfer trigger during LINKLOAD. */
AnnaBridge 156:ff21514d8981 643 uint32_t xferCnt : 11; /**< Transfer count minus one. */
AnnaBridge 156:ff21514d8981 644 uint32_t byteSwap : 1; /**< Enable byte swapping transfers. */
AnnaBridge 156:ff21514d8981 645 uint32_t blockSize : 4; /**< Number of unit transfers per arb. cycle. */
AnnaBridge 156:ff21514d8981 646 uint32_t doneIfs : 1; /**< Generate interrupt when done. */
AnnaBridge 156:ff21514d8981 647 uint32_t reqMode : 1; /**< Block or cycle transfer selector. */
AnnaBridge 156:ff21514d8981 648 uint32_t decLoopCnt : 1; /**< Enable looped transfers. */
AnnaBridge 156:ff21514d8981 649 uint32_t ignoreSrec : 1; /**< Ignore single requests. */
AnnaBridge 156:ff21514d8981 650 uint32_t srcInc : 2; /**< Source address increment unit size. */
AnnaBridge 156:ff21514d8981 651 uint32_t size : 2; /**< DMA transfer unit size. */
AnnaBridge 156:ff21514d8981 652 uint32_t dstInc : 2; /**< Destination address increment unit size. */
Anna Bridge 160:5571c4ff569f 653 uint32_t srcAddrMode : 1; /**< Source addressing mode. */
Anna Bridge 160:5571c4ff569f 654 uint32_t dstAddrMode : 1; /**< Destination addressing mode. */
AnnaBridge 156:ff21514d8981 655
AnnaBridge 156:ff21514d8981 656 uint32_t syncSet : 8; /**< Set bits in LDMA_CTRL.SYNCTRIG register. */
AnnaBridge 156:ff21514d8981 657 uint32_t syncClr : 8; /**< Clear bits in LDMA_CTRL.SYNCTRIG register*/
AnnaBridge 156:ff21514d8981 658 uint32_t reserved3 : 16;
AnnaBridge 156:ff21514d8981 659 uint32_t matchVal : 8; /**< Sync trig match value. */
AnnaBridge 156:ff21514d8981 660 uint32_t matchEn : 8; /**< Sync trig match enable. */
AnnaBridge 156:ff21514d8981 661 uint32_t reserved4 : 16;
AnnaBridge 156:ff21514d8981 662
AnnaBridge 156:ff21514d8981 663 uint32_t linkMode : 1; /**< Select absolute or relative link address.*/
AnnaBridge 156:ff21514d8981 664 uint32_t link : 1; /**< Enable LINKLOAD when transfer is done. */
AnnaBridge 156:ff21514d8981 665 int32_t linkAddr : 30; /**< Address of next (linked) descriptor. */
AnnaBridge 156:ff21514d8981 666 } sync;
AnnaBridge 156:ff21514d8981 667
AnnaBridge 156:ff21514d8981 668 /** WRITE DMA descriptor, used for write immediate operations. */
Anna Bridge 160:5571c4ff569f 669 struct {
AnnaBridge 156:ff21514d8981 670 uint32_t structType : 2; /**< Set to 2 to select WRITE descriptor type.*/
AnnaBridge 156:ff21514d8981 671 uint32_t reserved0 : 1;
AnnaBridge 156:ff21514d8981 672 uint32_t structReq : 1; /**< DMA transfer trigger during LINKLOAD. */
AnnaBridge 156:ff21514d8981 673 uint32_t xferCnt : 11; /**< Transfer count minus one. */
AnnaBridge 156:ff21514d8981 674 uint32_t byteSwap : 1; /**< Enable byte swapping transfers. */
AnnaBridge 156:ff21514d8981 675 uint32_t blockSize : 4; /**< Number of unit transfers per arb. cycle. */
AnnaBridge 156:ff21514d8981 676 uint32_t doneIfs : 1; /**< Generate interrupt when done. */
AnnaBridge 156:ff21514d8981 677 uint32_t reqMode : 1; /**< Block or cycle transfer selector. */
AnnaBridge 156:ff21514d8981 678 uint32_t decLoopCnt : 1; /**< Enable looped transfers. */
AnnaBridge 156:ff21514d8981 679 uint32_t ignoreSrec : 1; /**< Ignore single requests. */
AnnaBridge 156:ff21514d8981 680 uint32_t srcInc : 2; /**< Source address increment unit size. */
AnnaBridge 156:ff21514d8981 681 uint32_t size : 2; /**< DMA transfer unit size. */
AnnaBridge 156:ff21514d8981 682 uint32_t dstInc : 2; /**< Destination address increment unit size. */
Anna Bridge 160:5571c4ff569f 683 uint32_t srcAddrMode : 1; /**< Source addressing mode. */
Anna Bridge 160:5571c4ff569f 684 uint32_t dstAddrMode : 1; /**< Destination addressing mode. */
AnnaBridge 156:ff21514d8981 685
AnnaBridge 156:ff21514d8981 686 uint32_t immVal; /**< Data to be written at dstAddr. */
AnnaBridge 156:ff21514d8981 687 uint32_t dstAddr; /**< DMA write destination address. */
AnnaBridge 156:ff21514d8981 688
AnnaBridge 156:ff21514d8981 689 uint32_t linkMode : 1; /**< Select absolute or relative link address.*/
AnnaBridge 156:ff21514d8981 690 uint32_t link : 1; /**< Enable LINKLOAD when transfer is done. */
AnnaBridge 156:ff21514d8981 691 int32_t linkAddr : 30; /**< Address of next (linked) descriptor. */
AnnaBridge 156:ff21514d8981 692 } wri;
AnnaBridge 156:ff21514d8981 693 } LDMA_Descriptor_t;
AnnaBridge 156:ff21514d8981 694
AnnaBridge 156:ff21514d8981 695 /** @brief LDMA initialization configuration structure. */
Anna Bridge 160:5571c4ff569f 696 typedef struct {
AnnaBridge 156:ff21514d8981 697 uint8_t ldmaInitCtrlNumFixed; /**< Arbitration mode separator.*/
AnnaBridge 156:ff21514d8981 698 uint8_t ldmaInitCtrlSyncPrsClrEn; /**< PRS Synctrig clear enable. */
AnnaBridge 156:ff21514d8981 699 uint8_t ldmaInitCtrlSyncPrsSetEn; /**< PRS Synctrig set enable. */
AnnaBridge 156:ff21514d8981 700 uint8_t ldmaInitIrqPriority; /**< LDMA IRQ priority (0..7). */
AnnaBridge 156:ff21514d8981 701 } LDMA_Init_t;
AnnaBridge 156:ff21514d8981 702
AnnaBridge 156:ff21514d8981 703 /**
AnnaBridge 156:ff21514d8981 704 * @brief
AnnaBridge 156:ff21514d8981 705 * DMA transfer configuration structure.
AnnaBridge 156:ff21514d8981 706 * @details
AnnaBridge 156:ff21514d8981 707 * This struct configures all aspects of a DMA transfer.
AnnaBridge 156:ff21514d8981 708 */
Anna Bridge 160:5571c4ff569f 709 typedef struct {
AnnaBridge 156:ff21514d8981 710 uint32_t ldmaReqSel; /**< Selects DMA trigger source. */
AnnaBridge 156:ff21514d8981 711 uint8_t ldmaCtrlSyncPrsClrOff; /**< PRS Synctrig clear enables to clear. */
AnnaBridge 156:ff21514d8981 712 uint8_t ldmaCtrlSyncPrsClrOn; /**< PRS Synctrig clear enables to set. */
AnnaBridge 156:ff21514d8981 713 uint8_t ldmaCtrlSyncPrsSetOff; /**< PRS Synctrig set enables to clear. */
AnnaBridge 156:ff21514d8981 714 uint8_t ldmaCtrlSyncPrsSetOn; /**< PRS Synctrig set enables to set. */
AnnaBridge 156:ff21514d8981 715 bool ldmaReqDis; /**< Mask the PRS trigger input. */
AnnaBridge 156:ff21514d8981 716 bool ldmaDbgHalt; /**< Dis. DMA trig when cpu is halted. */
AnnaBridge 156:ff21514d8981 717 uint8_t ldmaCfgArbSlots; /**< Arbitration slot number. */
AnnaBridge 156:ff21514d8981 718 uint8_t ldmaCfgSrcIncSign; /**< Source addr. increment sign. */
AnnaBridge 156:ff21514d8981 719 uint8_t ldmaCfgDstIncSign; /**< Dest. addr. increment sign. */
AnnaBridge 156:ff21514d8981 720 uint8_t ldmaLoopCnt; /**< Counter for looped transfers. */
AnnaBridge 156:ff21514d8981 721 } LDMA_TransferCfg_t;
AnnaBridge 156:ff21514d8981 722
AnnaBridge 156:ff21514d8981 723 /*******************************************************************************
AnnaBridge 156:ff21514d8981 724 ************************** STRUCT INITIALIZERS ****************************
AnnaBridge 156:ff21514d8981 725 ******************************************************************************/
AnnaBridge 156:ff21514d8981 726
AnnaBridge 156:ff21514d8981 727 /** @brief Default DMA initialization structure. */
Anna Bridge 160:5571c4ff569f 728 #define LDMA_INIT_DEFAULT \
Anna Bridge 160:5571c4ff569f 729 { \
Anna Bridge 160:5571c4ff569f 730 .ldmaInitCtrlNumFixed = _LDMA_CTRL_NUMFIXED_DEFAULT,/* Fixed priority arbitration.*/ \
Anna Bridge 160:5571c4ff569f 731 .ldmaInitCtrlSyncPrsClrEn = 0, /* No PRS Synctrig clear enable*/ \
Anna Bridge 160:5571c4ff569f 732 .ldmaInitCtrlSyncPrsSetEn = 0, /* No PRS Synctrig set enable. */ \
Anna Bridge 160:5571c4ff569f 733 .ldmaInitIrqPriority = 3 /* IRQ priority level 3. */ \
Anna Bridge 160:5571c4ff569f 734 }
AnnaBridge 156:ff21514d8981 735
AnnaBridge 156:ff21514d8981 736 /**
AnnaBridge 156:ff21514d8981 737 * @brief
AnnaBridge 156:ff21514d8981 738 * Generic DMA transfer configuration for memory to memory transfers.
AnnaBridge 156:ff21514d8981 739 */
Anna Bridge 160:5571c4ff569f 740 #define LDMA_TRANSFER_CFG_MEMORY() \
Anna Bridge 160:5571c4ff569f 741 { \
Anna Bridge 160:5571c4ff569f 742 0, 0, 0, 0, 0, \
Anna Bridge 160:5571c4ff569f 743 false, false, ldmaCfgArbSlotsAs1, \
Anna Bridge 160:5571c4ff569f 744 ldmaCfgSrcIncSignPos, ldmaCfgDstIncSignPos, 0 \
Anna Bridge 160:5571c4ff569f 745 }
AnnaBridge 156:ff21514d8981 746
AnnaBridge 156:ff21514d8981 747 /**
AnnaBridge 156:ff21514d8981 748 * @brief
AnnaBridge 156:ff21514d8981 749 * Generic DMA transfer configuration for looped memory to memory transfers.
AnnaBridge 156:ff21514d8981 750 */
AnnaBridge 156:ff21514d8981 751 #define LDMA_TRANSFER_CFG_MEMORY_LOOP(loopCnt) \
Anna Bridge 160:5571c4ff569f 752 { \
Anna Bridge 160:5571c4ff569f 753 0, 0, 0, 0, 0, \
Anna Bridge 160:5571c4ff569f 754 false, false, ldmaCfgArbSlotsAs1, \
Anna Bridge 160:5571c4ff569f 755 ldmaCfgSrcIncSignPos, ldmaCfgDstIncSignPos, \
Anna Bridge 160:5571c4ff569f 756 loopCnt \
Anna Bridge 160:5571c4ff569f 757 }
AnnaBridge 156:ff21514d8981 758
AnnaBridge 156:ff21514d8981 759 /**
AnnaBridge 156:ff21514d8981 760 * @brief
AnnaBridge 156:ff21514d8981 761 * Generic DMA transfer configuration for memory to/from peripheral transfers.
AnnaBridge 156:ff21514d8981 762 */
Anna Bridge 160:5571c4ff569f 763 #define LDMA_TRANSFER_CFG_PERIPHERAL(signal) \
Anna Bridge 160:5571c4ff569f 764 { \
Anna Bridge 160:5571c4ff569f 765 signal, 0, 0, 0, 0, \
Anna Bridge 160:5571c4ff569f 766 false, false, ldmaCfgArbSlotsAs1, \
Anna Bridge 160:5571c4ff569f 767 ldmaCfgSrcIncSignPos, ldmaCfgDstIncSignPos, 0 \
Anna Bridge 160:5571c4ff569f 768 }
AnnaBridge 156:ff21514d8981 769
AnnaBridge 156:ff21514d8981 770 /**
AnnaBridge 156:ff21514d8981 771 * @brief
AnnaBridge 156:ff21514d8981 772 * Generic DMA transfer configuration for looped memory to/from peripheral transfers.
AnnaBridge 156:ff21514d8981 773 */
Anna Bridge 160:5571c4ff569f 774 #define LDMA_TRANSFER_CFG_PERIPHERAL_LOOP(signal, loopCnt) \
Anna Bridge 160:5571c4ff569f 775 { \
Anna Bridge 160:5571c4ff569f 776 signal, 0, 0, 0, 0, \
Anna Bridge 160:5571c4ff569f 777 false, false, ldmaCfgArbSlotsAs1, \
Anna Bridge 160:5571c4ff569f 778 ldmaCfgSrcIncSignPos, ldmaCfgDstIncSignPos, loopCnt \
Anna Bridge 160:5571c4ff569f 779 }
AnnaBridge 156:ff21514d8981 780
AnnaBridge 156:ff21514d8981 781 /**
AnnaBridge 156:ff21514d8981 782 * @brief
AnnaBridge 156:ff21514d8981 783 * DMA descriptor initializer for single memory to memory word transfer.
AnnaBridge 156:ff21514d8981 784 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 785 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 786 * @param[in] count Number of words to transfer.
AnnaBridge 156:ff21514d8981 787 */
Anna Bridge 160:5571c4ff569f 788 #define LDMA_DESCRIPTOR_SINGLE_M2M_WORD(src, dest, count) \
Anna Bridge 160:5571c4ff569f 789 { \
Anna Bridge 160:5571c4ff569f 790 .xfer = \
Anna Bridge 160:5571c4ff569f 791 { \
Anna Bridge 160:5571c4ff569f 792 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 793 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 794 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 795 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 796 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 797 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 798 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 799 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 800 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 801 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 802 .size = ldmaCtrlSizeWord, \
Anna Bridge 160:5571c4ff569f 803 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 804 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 805 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 806 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 807 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 808 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 809 .link = 0, \
Anna Bridge 160:5571c4ff569f 810 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 811 } \
Anna Bridge 160:5571c4ff569f 812 }
AnnaBridge 156:ff21514d8981 813
AnnaBridge 156:ff21514d8981 814 /**
AnnaBridge 156:ff21514d8981 815 * @brief
AnnaBridge 156:ff21514d8981 816 * DMA descriptor initializer for single memory to memory half-word transfer.
AnnaBridge 156:ff21514d8981 817 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 818 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 819 * @param[in] count Number of half-words to transfer.
AnnaBridge 156:ff21514d8981 820 */
Anna Bridge 160:5571c4ff569f 821 #define LDMA_DESCRIPTOR_SINGLE_M2M_HALF(src, dest, count) \
Anna Bridge 160:5571c4ff569f 822 { \
Anna Bridge 160:5571c4ff569f 823 .xfer = \
Anna Bridge 160:5571c4ff569f 824 { \
Anna Bridge 160:5571c4ff569f 825 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 826 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 827 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 828 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 829 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 830 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 831 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 832 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 833 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 834 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 835 .size = ldmaCtrlSizeHalf, \
Anna Bridge 160:5571c4ff569f 836 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 837 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 838 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 839 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 840 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 841 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 842 .link = 0, \
Anna Bridge 160:5571c4ff569f 843 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 844 } \
Anna Bridge 160:5571c4ff569f 845 }
AnnaBridge 156:ff21514d8981 846
AnnaBridge 156:ff21514d8981 847 /**
AnnaBridge 156:ff21514d8981 848 * @brief
AnnaBridge 156:ff21514d8981 849 * DMA descriptor initializer for single memory to memory byte transfer.
AnnaBridge 156:ff21514d8981 850 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 851 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 852 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 853 */
Anna Bridge 160:5571c4ff569f 854 #define LDMA_DESCRIPTOR_SINGLE_M2M_BYTE(src, dest, count) \
Anna Bridge 160:5571c4ff569f 855 { \
Anna Bridge 160:5571c4ff569f 856 .xfer = \
Anna Bridge 160:5571c4ff569f 857 { \
Anna Bridge 160:5571c4ff569f 858 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 859 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 860 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 861 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 862 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 863 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 864 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 865 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 866 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 867 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 868 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 869 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 870 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 871 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 872 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 873 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 874 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 875 .link = 0, \
Anna Bridge 160:5571c4ff569f 876 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 877 } \
Anna Bridge 160:5571c4ff569f 878 }
AnnaBridge 156:ff21514d8981 879
AnnaBridge 156:ff21514d8981 880 /**
AnnaBridge 156:ff21514d8981 881 * @brief
AnnaBridge 156:ff21514d8981 882 * DMA descriptor initializer for linked memory to memory word transfer.
AnnaBridge 156:ff21514d8981 883 *
AnnaBridge 156:ff21514d8981 884 * The link address must be an absolute address.
AnnaBridge 156:ff21514d8981 885 * @note
AnnaBridge 156:ff21514d8981 886 * The linkAddr member of the transfer descriptor is not
AnnaBridge 156:ff21514d8981 887 * initialized.
AnnaBridge 156:ff21514d8981 888 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 889 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 890 * @param[in] count Number of words to transfer.
AnnaBridge 156:ff21514d8981 891 */
Anna Bridge 160:5571c4ff569f 892 #define LDMA_DESCRIPTOR_LINKABS_M2M_WORD(src, dest, count) \
Anna Bridge 160:5571c4ff569f 893 { \
Anna Bridge 160:5571c4ff569f 894 .xfer = \
Anna Bridge 160:5571c4ff569f 895 { \
Anna Bridge 160:5571c4ff569f 896 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 897 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 898 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 899 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 900 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 901 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 902 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 903 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 904 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 905 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 906 .size = ldmaCtrlSizeWord, \
Anna Bridge 160:5571c4ff569f 907 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 908 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 909 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 910 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 911 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 912 .linkMode = ldmaLinkModeAbs, \
Anna Bridge 160:5571c4ff569f 913 .link = 1, \
Anna Bridge 160:5571c4ff569f 914 .linkAddr = 0 /* Must be set runtime ! */ \
Anna Bridge 160:5571c4ff569f 915 } \
Anna Bridge 160:5571c4ff569f 916 }
AnnaBridge 156:ff21514d8981 917
AnnaBridge 156:ff21514d8981 918 /**
AnnaBridge 156:ff21514d8981 919 * @brief
AnnaBridge 156:ff21514d8981 920 * DMA descriptor initializer for linked memory to memory half-word transfer.
AnnaBridge 156:ff21514d8981 921 *
AnnaBridge 156:ff21514d8981 922 * The link address must be an absolute address.
AnnaBridge 156:ff21514d8981 923 * @note
AnnaBridge 156:ff21514d8981 924 * The linkAddr member of the transfer descriptor is not
AnnaBridge 156:ff21514d8981 925 * initialized.
AnnaBridge 156:ff21514d8981 926 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 927 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 928 * @param[in] count Number of half-words to transfer.
AnnaBridge 156:ff21514d8981 929 */
Anna Bridge 160:5571c4ff569f 930 #define LDMA_DESCRIPTOR_LINKABS_M2M_HALF(src, dest, count) \
Anna Bridge 160:5571c4ff569f 931 { \
Anna Bridge 160:5571c4ff569f 932 .xfer = \
Anna Bridge 160:5571c4ff569f 933 { \
Anna Bridge 160:5571c4ff569f 934 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 935 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 936 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 937 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 938 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 939 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 940 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 941 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 942 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 943 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 944 .size = ldmaCtrlSizeHalf, \
Anna Bridge 160:5571c4ff569f 945 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 946 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 947 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 948 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 949 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 950 .linkMode = ldmaLinkModeAbs, \
Anna Bridge 160:5571c4ff569f 951 .link = 1, \
Anna Bridge 160:5571c4ff569f 952 .linkAddr = 0 /* Must be set runtime ! */ \
Anna Bridge 160:5571c4ff569f 953 } \
Anna Bridge 160:5571c4ff569f 954 }
AnnaBridge 156:ff21514d8981 955
AnnaBridge 156:ff21514d8981 956 /**
AnnaBridge 156:ff21514d8981 957 * @brief
AnnaBridge 156:ff21514d8981 958 * DMA descriptor initializer for linked memory to memory byte transfer.
AnnaBridge 156:ff21514d8981 959 *
AnnaBridge 156:ff21514d8981 960 * The link address must be an absolute address.
AnnaBridge 156:ff21514d8981 961 * @note
AnnaBridge 156:ff21514d8981 962 * The linkAddr member of the transfer descriptor is not
AnnaBridge 156:ff21514d8981 963 * initialized.
AnnaBridge 156:ff21514d8981 964 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 965 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 966 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 967 */
Anna Bridge 160:5571c4ff569f 968 #define LDMA_DESCRIPTOR_LINKABS_M2M_BYTE(src, dest, count) \
Anna Bridge 160:5571c4ff569f 969 { \
Anna Bridge 160:5571c4ff569f 970 .xfer = \
Anna Bridge 160:5571c4ff569f 971 { \
Anna Bridge 160:5571c4ff569f 972 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 973 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 974 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 975 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 976 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 977 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 978 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 979 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 980 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 981 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 982 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 983 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 984 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 985 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 986 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 987 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 988 .linkMode = ldmaLinkModeAbs, \
Anna Bridge 160:5571c4ff569f 989 .link = 1, \
Anna Bridge 160:5571c4ff569f 990 .linkAddr = 0 /* Must be set runtime ! */ \
Anna Bridge 160:5571c4ff569f 991 } \
Anna Bridge 160:5571c4ff569f 992 }
AnnaBridge 156:ff21514d8981 993
AnnaBridge 156:ff21514d8981 994 /**
AnnaBridge 156:ff21514d8981 995 * @brief
AnnaBridge 156:ff21514d8981 996 * DMA descriptor initializer for linked memory to memory word transfer.
AnnaBridge 156:ff21514d8981 997 *
AnnaBridge 156:ff21514d8981 998 * The link address is a relative address.
AnnaBridge 156:ff21514d8981 999 * @note
AnnaBridge 156:ff21514d8981 1000 * The linkAddr member of the transfer descriptor is
AnnaBridge 156:ff21514d8981 1001 * initialized to 4, assuming that the next descriptor immediately follows
AnnaBridge 156:ff21514d8981 1002 * this descriptor (in memory).
AnnaBridge 156:ff21514d8981 1003 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 1004 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 1005 * @param[in] count Number of words to transfer.
AnnaBridge 156:ff21514d8981 1006 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1007 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1008 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1009 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1010 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1011 */
Anna Bridge 160:5571c4ff569f 1012 #define LDMA_DESCRIPTOR_LINKREL_M2M_WORD(src, dest, count, linkjmp) \
Anna Bridge 160:5571c4ff569f 1013 { \
Anna Bridge 160:5571c4ff569f 1014 .xfer = \
Anna Bridge 160:5571c4ff569f 1015 { \
Anna Bridge 160:5571c4ff569f 1016 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1017 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1018 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1019 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1020 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1021 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1022 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 1023 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1024 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1025 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 1026 .size = ldmaCtrlSizeWord, \
Anna Bridge 160:5571c4ff569f 1027 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 1028 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1029 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1030 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1031 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1032 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1033 .link = 1, \
Anna Bridge 160:5571c4ff569f 1034 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1035 } \
Anna Bridge 160:5571c4ff569f 1036 }
AnnaBridge 156:ff21514d8981 1037
AnnaBridge 156:ff21514d8981 1038 /**
AnnaBridge 156:ff21514d8981 1039 * @brief
AnnaBridge 156:ff21514d8981 1040 * DMA descriptor initializer for linked memory to memory half-word transfer.
AnnaBridge 156:ff21514d8981 1041 *
AnnaBridge 156:ff21514d8981 1042 * The link address is a relative address.
AnnaBridge 156:ff21514d8981 1043 * @note
AnnaBridge 156:ff21514d8981 1044 * The linkAddr member of the transfer descriptor is
AnnaBridge 156:ff21514d8981 1045 * initialized to 4, assuming that the next descriptor immediately follows
AnnaBridge 156:ff21514d8981 1046 * this descriptor (in memory).
AnnaBridge 156:ff21514d8981 1047 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 1048 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 1049 * @param[in] count Number of half-words to transfer.
AnnaBridge 156:ff21514d8981 1050 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1051 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1052 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1053 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1054 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1055 */
Anna Bridge 160:5571c4ff569f 1056 #define LDMA_DESCRIPTOR_LINKREL_M2M_HALF(src, dest, count, linkjmp) \
Anna Bridge 160:5571c4ff569f 1057 { \
Anna Bridge 160:5571c4ff569f 1058 .xfer = \
Anna Bridge 160:5571c4ff569f 1059 { \
Anna Bridge 160:5571c4ff569f 1060 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1061 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1062 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1063 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1064 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1065 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1066 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 1067 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1068 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1069 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 1070 .size = ldmaCtrlSizeHalf, \
Anna Bridge 160:5571c4ff569f 1071 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 1072 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1073 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1074 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1075 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1076 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1077 .link = 1, \
Anna Bridge 160:5571c4ff569f 1078 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1079 } \
Anna Bridge 160:5571c4ff569f 1080 }
AnnaBridge 156:ff21514d8981 1081
AnnaBridge 156:ff21514d8981 1082 /**
AnnaBridge 156:ff21514d8981 1083 * @brief
AnnaBridge 156:ff21514d8981 1084 * DMA descriptor initializer for linked memory to memory byte transfer.
AnnaBridge 156:ff21514d8981 1085 *
AnnaBridge 156:ff21514d8981 1086 * The link address is a relative address.
AnnaBridge 156:ff21514d8981 1087 * @note
AnnaBridge 156:ff21514d8981 1088 * The linkAddr member of the transfer descriptor is
AnnaBridge 156:ff21514d8981 1089 * initialized to 4, assuming that the next descriptor immediately follows
AnnaBridge 156:ff21514d8981 1090 * this descriptor (in memory).
AnnaBridge 156:ff21514d8981 1091 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 1092 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 1093 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 1094 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1095 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1096 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1097 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1098 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1099 */
Anna Bridge 160:5571c4ff569f 1100 #define LDMA_DESCRIPTOR_LINKREL_M2M_BYTE(src, dest, count, linkjmp) \
Anna Bridge 160:5571c4ff569f 1101 { \
Anna Bridge 160:5571c4ff569f 1102 .xfer = \
Anna Bridge 160:5571c4ff569f 1103 { \
Anna Bridge 160:5571c4ff569f 1104 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1105 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1106 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1107 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1108 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1109 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1110 .reqMode = ldmaCtrlReqModeAll, \
Anna Bridge 160:5571c4ff569f 1111 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1112 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1113 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 1114 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 1115 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 1116 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1117 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1118 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1119 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1120 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1121 .link = 1, \
Anna Bridge 160:5571c4ff569f 1122 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1123 } \
Anna Bridge 160:5571c4ff569f 1124 }
AnnaBridge 156:ff21514d8981 1125
AnnaBridge 156:ff21514d8981 1126 /**
AnnaBridge 156:ff21514d8981 1127 * @brief
AnnaBridge 156:ff21514d8981 1128 * DMA descriptor initializer for byte transfers from a peripheral to memory.
AnnaBridge 156:ff21514d8981 1129 * @param[in] src Peripheral data source register address.
AnnaBridge 156:ff21514d8981 1130 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 1131 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 1132 */
Anna Bridge 160:5571c4ff569f 1133 #define LDMA_DESCRIPTOR_SINGLE_P2M_BYTE(src, dest, count) \
Anna Bridge 160:5571c4ff569f 1134 { \
Anna Bridge 160:5571c4ff569f 1135 .xfer = \
Anna Bridge 160:5571c4ff569f 1136 { \
Anna Bridge 160:5571c4ff569f 1137 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1138 .structReq = 0, \
Anna Bridge 160:5571c4ff569f 1139 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1140 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1141 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1142 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1143 .reqMode = ldmaCtrlReqModeBlock, \
Anna Bridge 160:5571c4ff569f 1144 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1145 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1146 .srcInc = ldmaCtrlSrcIncNone, \
Anna Bridge 160:5571c4ff569f 1147 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 1148 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 1149 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1150 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1151 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1152 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1153 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 1154 .link = 0, \
Anna Bridge 160:5571c4ff569f 1155 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 1156 } \
Anna Bridge 160:5571c4ff569f 1157 }
AnnaBridge 156:ff21514d8981 1158
AnnaBridge 156:ff21514d8981 1159 /**
AnnaBridge 156:ff21514d8981 1160 * @brief
AnnaBridge 156:ff21514d8981 1161 * DMA descriptor initializer for byte transfers from a peripheral to a peripheral.
AnnaBridge 156:ff21514d8981 1162 * @param[in] src Peripheral data source register address.
AnnaBridge 156:ff21514d8981 1163 * @param[in] dest Peripheral data destination register address.
AnnaBridge 156:ff21514d8981 1164 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 1165 */
Anna Bridge 160:5571c4ff569f 1166 #define LDMA_DESCRIPTOR_SINGLE_P2P_BYTE(src, dest, count) \
Anna Bridge 160:5571c4ff569f 1167 { \
Anna Bridge 160:5571c4ff569f 1168 .xfer = \
Anna Bridge 160:5571c4ff569f 1169 { \
Anna Bridge 160:5571c4ff569f 1170 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1171 .structReq = 0, \
Anna Bridge 160:5571c4ff569f 1172 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1173 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1174 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1175 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1176 .reqMode = ldmaCtrlReqModeBlock, \
Anna Bridge 160:5571c4ff569f 1177 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1178 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1179 .srcInc = ldmaCtrlSrcIncNone, \
Anna Bridge 160:5571c4ff569f 1180 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 1181 .dstInc = ldmaCtrlDstIncNone, \
Anna Bridge 160:5571c4ff569f 1182 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1183 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1184 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1185 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1186 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 1187 .link = 0, \
Anna Bridge 160:5571c4ff569f 1188 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 1189 } \
Anna Bridge 160:5571c4ff569f 1190 }
AnnaBridge 156:ff21514d8981 1191
AnnaBridge 156:ff21514d8981 1192 /**
AnnaBridge 156:ff21514d8981 1193 * @brief
AnnaBridge 156:ff21514d8981 1194 * DMA descriptor initializer for byte transfers from memory to a peripheral
AnnaBridge 156:ff21514d8981 1195 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 1196 * @param[in] dest Peripheral data register destination address.
AnnaBridge 156:ff21514d8981 1197 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 1198 */
Anna Bridge 160:5571c4ff569f 1199 #define LDMA_DESCRIPTOR_SINGLE_M2P_BYTE(src, dest, count) \
Anna Bridge 160:5571c4ff569f 1200 { \
Anna Bridge 160:5571c4ff569f 1201 .xfer = \
Anna Bridge 160:5571c4ff569f 1202 { \
Anna Bridge 160:5571c4ff569f 1203 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1204 .structReq = 0, \
Anna Bridge 160:5571c4ff569f 1205 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1206 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1207 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1208 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1209 .reqMode = ldmaCtrlReqModeBlock, \
Anna Bridge 160:5571c4ff569f 1210 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1211 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1212 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 1213 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 1214 .dstInc = ldmaCtrlDstIncNone, \
Anna Bridge 160:5571c4ff569f 1215 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1216 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1217 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1218 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1219 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 1220 .link = 0, \
Anna Bridge 160:5571c4ff569f 1221 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 1222 } \
Anna Bridge 160:5571c4ff569f 1223 }
AnnaBridge 156:ff21514d8981 1224
AnnaBridge 156:ff21514d8981 1225 /**
AnnaBridge 156:ff21514d8981 1226 * @brief
AnnaBridge 156:ff21514d8981 1227 * DMA descriptor initializer for byte transfers from a peripheral to memory.
AnnaBridge 156:ff21514d8981 1228 * @param[in] src Peripheral data source register address.
AnnaBridge 156:ff21514d8981 1229 * @param[in] dest Destination data address.
AnnaBridge 156:ff21514d8981 1230 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 1231 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1232 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1233 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1234 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1235 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1236 */
Anna Bridge 160:5571c4ff569f 1237 #define LDMA_DESCRIPTOR_LINKREL_P2M_BYTE(src, dest, count, linkjmp) \
Anna Bridge 160:5571c4ff569f 1238 { \
Anna Bridge 160:5571c4ff569f 1239 .xfer = \
Anna Bridge 160:5571c4ff569f 1240 { \
Anna Bridge 160:5571c4ff569f 1241 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1242 .structReq = 0, \
Anna Bridge 160:5571c4ff569f 1243 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1244 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1245 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1246 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1247 .reqMode = ldmaCtrlReqModeBlock, \
Anna Bridge 160:5571c4ff569f 1248 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1249 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1250 .srcInc = ldmaCtrlSrcIncNone, \
Anna Bridge 160:5571c4ff569f 1251 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 1252 .dstInc = ldmaCtrlDstIncOne, \
Anna Bridge 160:5571c4ff569f 1253 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1254 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1255 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1256 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1257 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1258 .link = 1, \
Anna Bridge 160:5571c4ff569f 1259 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1260 } \
Anna Bridge 160:5571c4ff569f 1261 }
AnnaBridge 156:ff21514d8981 1262
AnnaBridge 156:ff21514d8981 1263 /**
AnnaBridge 156:ff21514d8981 1264 * @brief
AnnaBridge 156:ff21514d8981 1265 * DMA descriptor initializer for byte transfers from memory to a peripheral
AnnaBridge 156:ff21514d8981 1266 * @param[in] src Source data address.
AnnaBridge 156:ff21514d8981 1267 * @param[in] dest Peripheral data register destination address.
AnnaBridge 156:ff21514d8981 1268 * @param[in] count Number of bytes to transfer.
AnnaBridge 156:ff21514d8981 1269 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1270 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1271 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1272 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1273 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1274 */
Anna Bridge 160:5571c4ff569f 1275 #define LDMA_DESCRIPTOR_LINKREL_M2P_BYTE(src, dest, count, linkjmp) \
Anna Bridge 160:5571c4ff569f 1276 { \
Anna Bridge 160:5571c4ff569f 1277 .xfer = \
Anna Bridge 160:5571c4ff569f 1278 { \
Anna Bridge 160:5571c4ff569f 1279 .structType = ldmaCtrlStructTypeXfer, \
Anna Bridge 160:5571c4ff569f 1280 .structReq = 0, \
Anna Bridge 160:5571c4ff569f 1281 .xferCnt = (count) - 1, \
Anna Bridge 160:5571c4ff569f 1282 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1283 .blockSize = ldmaCtrlBlockSizeUnit1, \
Anna Bridge 160:5571c4ff569f 1284 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1285 .reqMode = ldmaCtrlReqModeBlock, \
Anna Bridge 160:5571c4ff569f 1286 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1287 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1288 .srcInc = ldmaCtrlSrcIncOne, \
Anna Bridge 160:5571c4ff569f 1289 .size = ldmaCtrlSizeByte, \
Anna Bridge 160:5571c4ff569f 1290 .dstInc = ldmaCtrlDstIncNone, \
Anna Bridge 160:5571c4ff569f 1291 .srcAddrMode = ldmaCtrlSrcAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1292 .dstAddrMode = ldmaCtrlDstAddrModeAbs, \
Anna Bridge 160:5571c4ff569f 1293 .srcAddr = (uint32_t)(src), \
Anna Bridge 160:5571c4ff569f 1294 .dstAddr = (uint32_t)(dest), \
Anna Bridge 160:5571c4ff569f 1295 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1296 .link = 1, \
Anna Bridge 160:5571c4ff569f 1297 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1298 } \
Anna Bridge 160:5571c4ff569f 1299 }
AnnaBridge 156:ff21514d8981 1300
AnnaBridge 156:ff21514d8981 1301 /**
AnnaBridge 156:ff21514d8981 1302 * @brief
AnnaBridge 156:ff21514d8981 1303 * DMA descriptor initializer for Immediate WRITE transfer
AnnaBridge 156:ff21514d8981 1304 * @param[in] value Immediate value to write.
AnnaBridge 156:ff21514d8981 1305 * @param[in] address Write sddress.
AnnaBridge 156:ff21514d8981 1306 */
Anna Bridge 160:5571c4ff569f 1307 #define LDMA_DESCRIPTOR_SINGLE_WRITE(value, address) \
Anna Bridge 160:5571c4ff569f 1308 { \
Anna Bridge 160:5571c4ff569f 1309 .wri = \
Anna Bridge 160:5571c4ff569f 1310 { \
Anna Bridge 160:5571c4ff569f 1311 .structType = ldmaCtrlStructTypeWrite, \
Anna Bridge 160:5571c4ff569f 1312 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1313 .xferCnt = 0, \
Anna Bridge 160:5571c4ff569f 1314 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1315 .blockSize = 0, \
Anna Bridge 160:5571c4ff569f 1316 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1317 .reqMode = 0, \
Anna Bridge 160:5571c4ff569f 1318 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1319 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1320 .srcInc = 0, \
Anna Bridge 160:5571c4ff569f 1321 .size = 0, \
Anna Bridge 160:5571c4ff569f 1322 .dstInc = 0, \
Anna Bridge 160:5571c4ff569f 1323 .srcAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1324 .dstAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1325 .immVal = (value), \
Anna Bridge 160:5571c4ff569f 1326 .dstAddr = (uint32_t)(address), \
Anna Bridge 160:5571c4ff569f 1327 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 1328 .link = 0, \
Anna Bridge 160:5571c4ff569f 1329 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 1330 } \
Anna Bridge 160:5571c4ff569f 1331 }
AnnaBridge 156:ff21514d8981 1332
AnnaBridge 156:ff21514d8981 1333 /**
AnnaBridge 156:ff21514d8981 1334 * @brief
AnnaBridge 156:ff21514d8981 1335 * DMA descriptor initializer for Immediate WRITE transfer
AnnaBridge 156:ff21514d8981 1336 *
AnnaBridge 156:ff21514d8981 1337 * The link address must be an absolute address.
AnnaBridge 156:ff21514d8981 1338 * @note
AnnaBridge 156:ff21514d8981 1339 * The linkAddr member of the transfer descriptor is not
AnnaBridge 156:ff21514d8981 1340 * initialized.
AnnaBridge 156:ff21514d8981 1341 * @param[in] value Immediate value to write.
AnnaBridge 156:ff21514d8981 1342 * @param[in] address Write sddress.
AnnaBridge 156:ff21514d8981 1343 */
Anna Bridge 160:5571c4ff569f 1344 #define LDMA_DESCRIPTOR_LINKABS_WRITE(value, address) \
Anna Bridge 160:5571c4ff569f 1345 { \
Anna Bridge 160:5571c4ff569f 1346 .wri = \
Anna Bridge 160:5571c4ff569f 1347 { \
Anna Bridge 160:5571c4ff569f 1348 .structType = ldmaCtrlStructTypeWrite, \
Anna Bridge 160:5571c4ff569f 1349 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1350 .xferCnt = 0, \
Anna Bridge 160:5571c4ff569f 1351 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1352 .blockSize = 0, \
Anna Bridge 160:5571c4ff569f 1353 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1354 .reqMode = 0, \
Anna Bridge 160:5571c4ff569f 1355 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1356 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1357 .srcInc = 0, \
Anna Bridge 160:5571c4ff569f 1358 .size = 0, \
Anna Bridge 160:5571c4ff569f 1359 .dstInc = 0, \
Anna Bridge 160:5571c4ff569f 1360 .srcAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1361 .dstAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1362 .immVal = (value), \
Anna Bridge 160:5571c4ff569f 1363 .dstAddr = (uint32_t)(address), \
Anna Bridge 160:5571c4ff569f 1364 .linkMode = ldmaLinkModeAbs, \
Anna Bridge 160:5571c4ff569f 1365 .link = 1, \
Anna Bridge 160:5571c4ff569f 1366 .linkAddr = 0 /* Must be set runtime ! */ \
Anna Bridge 160:5571c4ff569f 1367 } \
Anna Bridge 160:5571c4ff569f 1368 }
AnnaBridge 156:ff21514d8981 1369
AnnaBridge 156:ff21514d8981 1370 /**
AnnaBridge 156:ff21514d8981 1371 * @brief
AnnaBridge 156:ff21514d8981 1372 * DMA descriptor initializer for Immediate WRITE transfer
AnnaBridge 156:ff21514d8981 1373 * @param[in] value Immediate value to write.
AnnaBridge 156:ff21514d8981 1374 * @param[in] address Write sddress.
AnnaBridge 156:ff21514d8981 1375 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1376 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1377 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1378 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1379 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1380 */
Anna Bridge 160:5571c4ff569f 1381 #define LDMA_DESCRIPTOR_LINKREL_WRITE(value, address, linkjmp) \
Anna Bridge 160:5571c4ff569f 1382 { \
Anna Bridge 160:5571c4ff569f 1383 .wri = \
Anna Bridge 160:5571c4ff569f 1384 { \
Anna Bridge 160:5571c4ff569f 1385 .structType = ldmaCtrlStructTypeWrite, \
Anna Bridge 160:5571c4ff569f 1386 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1387 .xferCnt = 0, \
Anna Bridge 160:5571c4ff569f 1388 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1389 .blockSize = 0, \
Anna Bridge 160:5571c4ff569f 1390 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1391 .reqMode = 0, \
Anna Bridge 160:5571c4ff569f 1392 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1393 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1394 .srcInc = 0, \
Anna Bridge 160:5571c4ff569f 1395 .size = 0, \
Anna Bridge 160:5571c4ff569f 1396 .dstInc = 0, \
Anna Bridge 160:5571c4ff569f 1397 .srcAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1398 .dstAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1399 .immVal = (value), \
Anna Bridge 160:5571c4ff569f 1400 .dstAddr = (uint32_t)(address), \
Anna Bridge 160:5571c4ff569f 1401 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1402 .link = 1, \
Anna Bridge 160:5571c4ff569f 1403 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1404 } \
Anna Bridge 160:5571c4ff569f 1405 }
AnnaBridge 156:ff21514d8981 1406
AnnaBridge 156:ff21514d8981 1407 /**
AnnaBridge 156:ff21514d8981 1408 * @brief
AnnaBridge 156:ff21514d8981 1409 * DMA descriptor initializer for SYNC transfer
AnnaBridge 156:ff21514d8981 1410 * @param[in] set Sync pattern bits to set.
AnnaBridge 156:ff21514d8981 1411 * @param[in] clr Sync pattern bits to clear.
AnnaBridge 156:ff21514d8981 1412 * @param[in] matchValue Sync pattern to match.
AnnaBridge 156:ff21514d8981 1413 * @param[in] matchEnable Sync pattern bits to enable for match.
AnnaBridge 156:ff21514d8981 1414 */
Anna Bridge 160:5571c4ff569f 1415 #define LDMA_DESCRIPTOR_SINGLE_SYNC(set, clr, matchValue, matchEnable) \
Anna Bridge 160:5571c4ff569f 1416 { \
Anna Bridge 160:5571c4ff569f 1417 .sync = \
Anna Bridge 160:5571c4ff569f 1418 { \
Anna Bridge 160:5571c4ff569f 1419 .structType = ldmaCtrlStructTypeSync, \
Anna Bridge 160:5571c4ff569f 1420 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1421 .xferCnt = 0, \
Anna Bridge 160:5571c4ff569f 1422 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1423 .blockSize = 0, \
Anna Bridge 160:5571c4ff569f 1424 .doneIfs = 1, \
Anna Bridge 160:5571c4ff569f 1425 .reqMode = 0, \
Anna Bridge 160:5571c4ff569f 1426 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1427 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1428 .srcInc = 0, \
Anna Bridge 160:5571c4ff569f 1429 .size = 0, \
Anna Bridge 160:5571c4ff569f 1430 .dstInc = 0, \
Anna Bridge 160:5571c4ff569f 1431 .srcAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1432 .dstAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1433 .syncSet = (set), \
Anna Bridge 160:5571c4ff569f 1434 .syncClr = (clr), \
Anna Bridge 160:5571c4ff569f 1435 .matchVal = (matchValue), \
Anna Bridge 160:5571c4ff569f 1436 .matchEn = (matchEnable), \
Anna Bridge 160:5571c4ff569f 1437 .linkMode = 0, \
Anna Bridge 160:5571c4ff569f 1438 .link = 0, \
Anna Bridge 160:5571c4ff569f 1439 .linkAddr = 0 \
Anna Bridge 160:5571c4ff569f 1440 } \
Anna Bridge 160:5571c4ff569f 1441 }
AnnaBridge 156:ff21514d8981 1442
AnnaBridge 156:ff21514d8981 1443 /**
AnnaBridge 156:ff21514d8981 1444 * @brief
AnnaBridge 156:ff21514d8981 1445 * DMA descriptor initializer for SYNC transfer
AnnaBridge 156:ff21514d8981 1446 *
AnnaBridge 156:ff21514d8981 1447 * The link address must be an absolute address.
AnnaBridge 156:ff21514d8981 1448 * @note
AnnaBridge 156:ff21514d8981 1449 * The linkAddr member of the transfer descriptor is not
AnnaBridge 156:ff21514d8981 1450 * initialized.
AnnaBridge 156:ff21514d8981 1451 * @param[in] set Sync pattern bits to set.
AnnaBridge 156:ff21514d8981 1452 * @param[in] clr Sync pattern bits to clear.
AnnaBridge 156:ff21514d8981 1453 * @param[in] matchValue Sync pattern to match.
AnnaBridge 156:ff21514d8981 1454 * @param[in] matchEnable Sync pattern bits to enable for match.
AnnaBridge 156:ff21514d8981 1455 */
Anna Bridge 160:5571c4ff569f 1456 #define LDMA_DESCRIPTOR_LINKABS_SYNC(set, clr, matchValue, matchEnable) \
Anna Bridge 160:5571c4ff569f 1457 { \
Anna Bridge 160:5571c4ff569f 1458 .sync = \
Anna Bridge 160:5571c4ff569f 1459 { \
Anna Bridge 160:5571c4ff569f 1460 .structType = ldmaCtrlStructTypeSync, \
Anna Bridge 160:5571c4ff569f 1461 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1462 .xferCnt = 0, \
Anna Bridge 160:5571c4ff569f 1463 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1464 .blockSize = 0, \
Anna Bridge 160:5571c4ff569f 1465 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1466 .reqMode = 0, \
Anna Bridge 160:5571c4ff569f 1467 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1468 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1469 .srcInc = 0, \
Anna Bridge 160:5571c4ff569f 1470 .size = 0, \
Anna Bridge 160:5571c4ff569f 1471 .dstInc = 0, \
Anna Bridge 160:5571c4ff569f 1472 .srcAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1473 .dstAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1474 .syncSet = (set), \
Anna Bridge 160:5571c4ff569f 1475 .syncClr = (clr), \
Anna Bridge 160:5571c4ff569f 1476 .matchVal = (matchValue), \
Anna Bridge 160:5571c4ff569f 1477 .matchEn = (matchEnable), \
Anna Bridge 160:5571c4ff569f 1478 .linkMode = ldmaLinkModeAbs, \
Anna Bridge 160:5571c4ff569f 1479 .link = 1, \
Anna Bridge 160:5571c4ff569f 1480 .linkAddr = 0 /* Must be set runtime ! */ \
Anna Bridge 160:5571c4ff569f 1481 } \
Anna Bridge 160:5571c4ff569f 1482 }
AnnaBridge 156:ff21514d8981 1483
AnnaBridge 156:ff21514d8981 1484 /**
AnnaBridge 156:ff21514d8981 1485 * @brief
AnnaBridge 156:ff21514d8981 1486 * DMA descriptor initializer for SYNC transfer
AnnaBridge 156:ff21514d8981 1487 * @param[in] set Sync pattern bits to set.
AnnaBridge 156:ff21514d8981 1488 * @param[in] clr Sync pattern bits to clear.
AnnaBridge 156:ff21514d8981 1489 * @param[in] matchValue Sync pattern to match.
AnnaBridge 156:ff21514d8981 1490 * @param[in] matchEnable Sync pattern bits to enable for match.
AnnaBridge 156:ff21514d8981 1491 * @param[in] linkjmp Address of descriptor to link to expressed as a
AnnaBridge 156:ff21514d8981 1492 * signed number of descriptors from "here".
AnnaBridge 156:ff21514d8981 1493 * 1=one descriptor forward in memory,
AnnaBridge 156:ff21514d8981 1494 * 0=one this descriptor,
AnnaBridge 156:ff21514d8981 1495 * -1=one descriptor back in memory.
AnnaBridge 156:ff21514d8981 1496 */
AnnaBridge 156:ff21514d8981 1497 #define LDMA_DESCRIPTOR_LINKREL_SYNC(set, clr, matchValue, matchEnable, linkjmp) \
AnnaBridge 156:ff21514d8981 1498 { \
Anna Bridge 160:5571c4ff569f 1499 .sync = \
Anna Bridge 160:5571c4ff569f 1500 { \
Anna Bridge 160:5571c4ff569f 1501 .structType = ldmaCtrlStructTypeSync, \
Anna Bridge 160:5571c4ff569f 1502 .structReq = 1, \
Anna Bridge 160:5571c4ff569f 1503 .xferCnt = 0, \
Anna Bridge 160:5571c4ff569f 1504 .byteSwap = 0, \
Anna Bridge 160:5571c4ff569f 1505 .blockSize = 0, \
Anna Bridge 160:5571c4ff569f 1506 .doneIfs = 0, \
Anna Bridge 160:5571c4ff569f 1507 .reqMode = 0, \
Anna Bridge 160:5571c4ff569f 1508 .decLoopCnt = 0, \
Anna Bridge 160:5571c4ff569f 1509 .ignoreSrec = 0, \
Anna Bridge 160:5571c4ff569f 1510 .srcInc = 0, \
Anna Bridge 160:5571c4ff569f 1511 .size = 0, \
Anna Bridge 160:5571c4ff569f 1512 .dstInc = 0, \
Anna Bridge 160:5571c4ff569f 1513 .srcAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1514 .dstAddrMode = 0, \
Anna Bridge 160:5571c4ff569f 1515 .syncSet = (set), \
Anna Bridge 160:5571c4ff569f 1516 .syncClr = (clr), \
Anna Bridge 160:5571c4ff569f 1517 .matchVal = (matchValue), \
Anna Bridge 160:5571c4ff569f 1518 .matchEn = (matchEnable), \
Anna Bridge 160:5571c4ff569f 1519 .linkMode = ldmaLinkModeRel, \
Anna Bridge 160:5571c4ff569f 1520 .link = 1, \
Anna Bridge 160:5571c4ff569f 1521 .linkAddr = (linkjmp) * 4 \
Anna Bridge 160:5571c4ff569f 1522 } \
Anna Bridge 160:5571c4ff569f 1523 }
AnnaBridge 156:ff21514d8981 1524
AnnaBridge 156:ff21514d8981 1525 /*******************************************************************************
AnnaBridge 156:ff21514d8981 1526 ***************************** PROTOTYPES **********************************
AnnaBridge 156:ff21514d8981 1527 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1528
AnnaBridge 156:ff21514d8981 1529 void LDMA_DeInit(void);
AnnaBridge 156:ff21514d8981 1530 void LDMA_EnableChannelRequest(int ch, bool enable);
AnnaBridge 156:ff21514d8981 1531 void LDMA_Init(const LDMA_Init_t *init);
AnnaBridge 156:ff21514d8981 1532 void LDMA_StartTransfer(int ch,
AnnaBridge 156:ff21514d8981 1533 const LDMA_TransferCfg_t *transfer,
AnnaBridge 156:ff21514d8981 1534 const LDMA_Descriptor_t *descriptor);
AnnaBridge 156:ff21514d8981 1535 void LDMA_StopTransfer(int ch);
AnnaBridge 156:ff21514d8981 1536 bool LDMA_TransferDone(int ch);
AnnaBridge 156:ff21514d8981 1537 uint32_t LDMA_TransferRemainingCount(int ch);
AnnaBridge 156:ff21514d8981 1538
AnnaBridge 156:ff21514d8981 1539 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1540 * @brief
AnnaBridge 156:ff21514d8981 1541 * Clear one or more pending LDMA interrupts.
AnnaBridge 156:ff21514d8981 1542 *
AnnaBridge 156:ff21514d8981 1543 * @param[in] flags
AnnaBridge 156:ff21514d8981 1544 * Pending LDMA interrupt sources to clear. Use one or more valid
AnnaBridge 156:ff21514d8981 1545 * interrupt flags for the LDMA module. The flags are @ref LDMA_IFC_ERROR
AnnaBridge 156:ff21514d8981 1546 * and one done flag for each channel.
AnnaBridge 156:ff21514d8981 1547 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1548 __STATIC_INLINE void LDMA_IntClear(uint32_t flags)
AnnaBridge 156:ff21514d8981 1549 {
AnnaBridge 156:ff21514d8981 1550 LDMA->IFC = flags;
AnnaBridge 156:ff21514d8981 1551 }
AnnaBridge 156:ff21514d8981 1552
AnnaBridge 156:ff21514d8981 1553 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1554 * @brief
AnnaBridge 156:ff21514d8981 1555 * Disable one or more LDMA interrupts.
AnnaBridge 156:ff21514d8981 1556 *
AnnaBridge 156:ff21514d8981 1557 * @param[in] flags
AnnaBridge 156:ff21514d8981 1558 * LDMA interrupt sources to disable. Use one or more valid
AnnaBridge 156:ff21514d8981 1559 * interrupt flags for the LDMA module. The flags are @ref LDMA_IEN_ERROR
AnnaBridge 156:ff21514d8981 1560 * and one done flag for each channel.
AnnaBridge 156:ff21514d8981 1561 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1562 __STATIC_INLINE void LDMA_IntDisable(uint32_t flags)
AnnaBridge 156:ff21514d8981 1563 {
AnnaBridge 156:ff21514d8981 1564 LDMA->IEN &= ~flags;
AnnaBridge 156:ff21514d8981 1565 }
AnnaBridge 156:ff21514d8981 1566
AnnaBridge 156:ff21514d8981 1567 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1568 * @brief
AnnaBridge 156:ff21514d8981 1569 * Enable one or more LDMA interrupts.
AnnaBridge 156:ff21514d8981 1570 *
AnnaBridge 156:ff21514d8981 1571 * @note
AnnaBridge 156:ff21514d8981 1572 * Depending on the use, a pending interrupt may already be set prior to
AnnaBridge 156:ff21514d8981 1573 * enabling the interrupt. Consider using LDMA_IntClear() prior to enabling
AnnaBridge 156:ff21514d8981 1574 * if such a pending interrupt should be ignored.
AnnaBridge 156:ff21514d8981 1575 *
AnnaBridge 156:ff21514d8981 1576 * @param[in] flags
AnnaBridge 156:ff21514d8981 1577 * LDMA interrupt sources to enable. Use one or more valid
AnnaBridge 156:ff21514d8981 1578 * interrupt flags for the LDMA module. The flags are @ref LDMA_IEN_ERROR
AnnaBridge 156:ff21514d8981 1579 * and one done flag for each channel.
AnnaBridge 156:ff21514d8981 1580 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1581 __STATIC_INLINE void LDMA_IntEnable(uint32_t flags)
AnnaBridge 156:ff21514d8981 1582 {
AnnaBridge 156:ff21514d8981 1583 LDMA->IEN |= flags;
AnnaBridge 156:ff21514d8981 1584 }
AnnaBridge 156:ff21514d8981 1585
AnnaBridge 156:ff21514d8981 1586 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1587 * @brief
AnnaBridge 156:ff21514d8981 1588 * Get pending LDMA interrupt flags.
AnnaBridge 156:ff21514d8981 1589 *
AnnaBridge 156:ff21514d8981 1590 * @note
AnnaBridge 156:ff21514d8981 1591 * The event bits are not cleared by the use of this function.
AnnaBridge 156:ff21514d8981 1592 *
AnnaBridge 156:ff21514d8981 1593 * @return
AnnaBridge 156:ff21514d8981 1594 * LDMA interrupt sources pending. Returns one or more valid
AnnaBridge 156:ff21514d8981 1595 * interrupt flags for the LDMA module. The flags are @ref LDMA_IF_ERROR and
AnnaBridge 156:ff21514d8981 1596 * one flag for each LDMA channel.
AnnaBridge 156:ff21514d8981 1597 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1598 __STATIC_INLINE uint32_t LDMA_IntGet(void)
AnnaBridge 156:ff21514d8981 1599 {
AnnaBridge 156:ff21514d8981 1600 return LDMA->IF;
AnnaBridge 156:ff21514d8981 1601 }
AnnaBridge 156:ff21514d8981 1602
AnnaBridge 156:ff21514d8981 1603 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1604 * @brief
AnnaBridge 156:ff21514d8981 1605 * Get enabled and pending LDMA interrupt flags.
AnnaBridge 156:ff21514d8981 1606 * Useful for handling more interrupt sources in the same interrupt handler.
AnnaBridge 156:ff21514d8981 1607 *
AnnaBridge 156:ff21514d8981 1608 * @note
AnnaBridge 156:ff21514d8981 1609 * Interrupt flags are not cleared by the use of this function.
AnnaBridge 156:ff21514d8981 1610 *
AnnaBridge 156:ff21514d8981 1611 * @return
AnnaBridge 156:ff21514d8981 1612 * Pending and enabled LDMA interrupt sources
AnnaBridge 156:ff21514d8981 1613 * The return value is the bitwise AND of
AnnaBridge 156:ff21514d8981 1614 * - the enabled interrupt sources in LDMA_IEN and
AnnaBridge 156:ff21514d8981 1615 * - the pending interrupt flags LDMA_IF
AnnaBridge 156:ff21514d8981 1616 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1617 __STATIC_INLINE uint32_t LDMA_IntGetEnabled(void)
AnnaBridge 156:ff21514d8981 1618 {
AnnaBridge 156:ff21514d8981 1619 uint32_t ien;
AnnaBridge 156:ff21514d8981 1620
AnnaBridge 156:ff21514d8981 1621 ien = LDMA->IEN;
AnnaBridge 156:ff21514d8981 1622 return LDMA->IF & ien;
AnnaBridge 156:ff21514d8981 1623 }
AnnaBridge 156:ff21514d8981 1624
AnnaBridge 156:ff21514d8981 1625 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1626 * @brief
AnnaBridge 156:ff21514d8981 1627 * Set one or more pending LDMA interrupts
AnnaBridge 156:ff21514d8981 1628 *
AnnaBridge 156:ff21514d8981 1629 * @param[in] flags
AnnaBridge 156:ff21514d8981 1630 * LDMA interrupt sources to set to pending. Use one or more valid
AnnaBridge 156:ff21514d8981 1631 * interrupt flags for the LDMA module. The flags are @ref LDMA_IFS_ERROR and
AnnaBridge 156:ff21514d8981 1632 * one done flag for each LDMA channel.
AnnaBridge 156:ff21514d8981 1633 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1634 __STATIC_INLINE void LDMA_IntSet(uint32_t flags)
AnnaBridge 156:ff21514d8981 1635 {
AnnaBridge 156:ff21514d8981 1636 LDMA->IFS = flags;
AnnaBridge 156:ff21514d8981 1637 }
AnnaBridge 156:ff21514d8981 1638
AnnaBridge 156:ff21514d8981 1639 /** @} (end addtogroup LDMA) */
AnnaBridge 156:ff21514d8981 1640 /** @} (end addtogroup emlib) */
AnnaBridge 156:ff21514d8981 1641
AnnaBridge 156:ff21514d8981 1642 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 1643 }
AnnaBridge 156:ff21514d8981 1644 #endif
AnnaBridge 156:ff21514d8981 1645
AnnaBridge 156:ff21514d8981 1646 #endif /* defined( LDMA_PRESENT ) && ( LDMA_COUNT == 1 ) */
AnnaBridge 156:ff21514d8981 1647 #endif /* EM_LDMA_H */