CC26xx Driver Library |

- Main Page
- Related Pages
- CC26xx APIs
- Register Descriptions
- Online Resources

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Data Structures | Functions
[udma] Micro Direct Memory Access

## Data Structures
struct | tDMAControlTable
| A structure that defines an entry in the channel control table. More...

## Functions
__STATIC_INLINE void | uDMAEnable (uint32_t ui32Base)
| Enables the uDMA controller for use. More...
__STATIC_INLINE void | uDMADisable (uint32_t ui32Base)
| Disables the uDMA controller for use. More...
__STATIC_INLINE uint32_t | uDMAErrorStatusGet (uint32_t ui32Base)
| Gets the uDMA error status. More...
__STATIC_INLINE void | uDMAErrorStatusClear (uint32_t ui32Base)
| Clears the uDMA error interrupt. More...
__STATIC_INLINE void | uDMAChannelEnable (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Enables a uDMA channel for operation. More...
__STATIC_INLINE void | uDMAChannelDisable (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Disables a uDMA channel for operation. More...
__STATIC_INLINE bool | uDMAChannelIsEnabled (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Checks if a uDMA channel is enabled for operation. More...
__STATIC_INLINE void | uDMAControlBaseSet (uint32_t ui32Base, void *pControlTable)
| Sets the base address for the channel control table. More...
__STATIC_INLINE void * | uDMAControlBaseGet (uint32_t ui32Base)
| Gets the base address for the channel control table. More...
__STATIC_INLINE void * | uDMAControlAlternateBaseGet (uint32_t ui32Base)
| Gets the base address for the channel control table alternate structures. More...
__STATIC_INLINE void | uDMAChannelRequest (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Requests a uDMA channel to start a transfer. More...
void | uDMAChannelAttributeEnable (uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)
| Enables attributes of a uDMA channel. More...
void | uDMAChannelAttributeDisable (uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)
| Disables attributes of an uDMA channel. More...
uint32_t | uDMAChannelAttributeGet (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Gets the enabled attributes of a uDMA channel. More...
void | uDMAChannelControlSet (uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Control)
| Sets the control parameters for a uDMA channel control structure. More...
void | uDMAChannelTransferSet (uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Mode, void *pvSrcAddr, void *pvDstAddr, uint32_t ui32TransferSize)
| Sets the transfer parameters for a uDMA channel control structure. More...
void | uDMAChannelScatterGatherSet (uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32TaskCount, void *pvTaskList, uint32_t ui32IsPeriphSG)
| Configures a uDMA channel for scatter-gather mode. More...
uint32_t | uDMAChannelSizeGet (uint32_t ui32Base, uint32_t ui32ChannelStructIndex)
| Gets the current transfer size for a uDMA channel control structure. More...
uint32_t | uDMAChannelModeGet (uint32_t ui32Base, uint32_t ui32ChannelStructIndex)
| Gets the transfer mode for a uDMA channel control structure. More...
__STATIC_INLINE void | uDMAIntRegister (uint32_t ui32Base, uint32_t ui32IntChannel, void(*pfnHandler)(void))
| Registers an interrupt handler for the uDMA controller. More...
__STATIC_INLINE void | uDMAIntUnregister (uint32_t ui32Base, uint32_t ui32IntChannel)
| Unregisters an interrupt handler for the uDMA controller. More...
__STATIC_INLINE void | uDMAIntClear (uint32_t ui32Base, uint32_t ui32ChanMask)
| Clears uDMA interrupt done status. More...
__STATIC_INLINE uint32_t | uDMAIntStatus (uint32_t ui32Base)
| Get the uDMA interrupt status. More...
__STATIC_INLINE void | uDMAIntSwEventEnable (uint32_t ui32Base, uint32_t ui32IntChannel)
| Enable interrupt on software event driven uDMA transfers. More...
__STATIC_INLINE void | uDMAIntSwEventDisable (uint32_t ui32Base, uint32_t ui32IntChannel)
| Disable interrupt on software event driven uDMA transfers. More...
__STATIC_INLINE uint32_t | uDMAGetStatus (uint32_t ui32Base)
| Return the status of the uDMA module. More...
__STATIC_INLINE void | uDMAChannelPrioritySet (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Set the priority of a uDMA channel. More...
__STATIC_INLINE bool | uDMAChannelPriorityGet (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Get the priority of a uDMA channel. More...
__STATIC_INLINE void | uDMAChannelPriorityClear (uint32_t ui32Base, uint32_t ui32ChannelNum)
| Clear the priority of a uDMA channel. More...

## Detailed Description

## Function Documentation

void uDMAChannelAttributeDisable | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum,
|  | uint32_t | ui32Attr
| ) |  |

Disables attributes of an uDMA channel.

This function is used to disable attributes of a uDMA channel.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel to configure.
  ui32Attr | is a combination of attributes for the channel. The parameter is the bitwise OR of any of the following: UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst mode. UDMA_ATTR_ALTSELECT is used to select the alternate control structure for this channel (it is very unlikely that this flag should be used). UDMA_ATTR_HIGH_PRIORITY is used to set this channel to high priority. UDMA_ATTR_REQMASK is used to mask the hardware request signal from the peripheral for this channel.

Returns
  None

Definition at line 123 of file udma.c.

void uDMAChannelAttributeEnable | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum,
|  | uint32_t | ui32Attr
| ) |  |

Enables attributes of a uDMA channel.

This function is used to enable attributes of a uDMA channel.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel to configure.
  ui32Attr | is a combination of attributes for the channel. The parameter is the bitwise OR of any of the following: UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst mode. UDMA_ATTR_ALTSELECT is used to select the alternate control structure for this channel (it is very unlikely that this flag should be used). UDMA_ATTR_HIGH_PRIORITY is used to set this channel to high priority. UDMA_ATTR_REQMASK is used to mask the hardware request signal from the peripheral for this channel.

Returns
  None

Definition at line 72 of file udma.c.

uint32_t uDMAChannelAttributeGet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Gets the enabled attributes of a uDMA channel.

This function returns a combination of flags representing the attributes of the uDMA channel.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel to configure.

Returns
  Returns the bitwise OR of the attributes of the uDMA channel, which can be any of the following:
  - UDMA_ATTR_USEBURST is used to restrict transfers to use only a burst mode.
  - UDMA_ATTR_ALTSELECT is used to select the alternate control structure for this channel (it is very unlikely that this flag should be used).
  - UDMA_ATTR_HIGH_PRIORITY is used to set this channel to high priority.
  - UDMA_ATTR_REQMASK is used to mask the hardware request signal from the peripheral for this channel.

Definition at line 174 of file udma.c.

void uDMAChannelControlSet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelStructIndex,
|  | uint32_t | ui32Control
| ) |  |

Sets the control parameters for a uDMA channel control structure.

This function is used to set control parameters for a uDMA transfer. These are typically parameters that are not changed often.

Note
  The address increment cannot be smaller than the data size.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelStructIndex | is the bitwise OR of the uDMA channel number and: UDMA_PRI_SELECT : Use primary data structure. UDMA_ALT_SELECT : Use alternate data structure.
  ui32Control | is the bitwise OR of five values: Data size UDMA_SIZE_8 : 8 bits. UDMA_SIZE_16 : 16 bits. UDMA_SIZE_32 : 32 bits. Source address increment UDMA_SRC_INC_8 : 8 bits. UDMA_SRC_INC_16 : 16 bits. UDMA_SRC_INC_32 : 32 bits. UDMA_SRC_INC_NONE : Non-incrementing. Destination address increment UDMA_DST_INC_8 : 8 bits. UDMA_DST_INC_16 : 16 bits. UDMA_DST_INC_32 : 32 bits. UDMA_DST_INC_NONE : Non-incrementing. Arbitration size. Determines how many items are transferred before the uDMA controller re-arbitrates for the bus. In power of 2. UDMA_ARB_1 UDMA_ARB_2 UDMA_ARB_4 UDMA_ARB_8 ... UDMA_ARB_1024 Force the channel to only respond to burst requests at the tail end of a scatter-gather transfer. UDMA_NEXT_USEBURST

Returns
  None

Definition at line 228 of file udma.c.

__STATIC_INLINE void uDMAChannelDisable | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Disables a uDMA channel for operation.

This function disables a specific uDMA channel. Once disabled, a channel will not respond to uDMA transfer requests until re-enabled via uDMAChannelEnable().

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel number to disable.

Returns
  None.

Definition at line 504 of file udma.h.

__STATIC_INLINE void uDMAChannelEnable | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Enables a uDMA channel for operation.

This function enables a specific uDMA channel for use. This function must be used to enable a channel before it can be used to perform a uDMA transfer.

When a uDMA transfer is completed, the channel will be automatically disabled by the uDMA controller. Therefore, this function should be called prior to starting up any new transfer.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel number to enable.

Returns
  None

Definition at line 475 of file udma.h.

__STATIC_INLINE bool uDMAChannelIsEnabled | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Checks if a uDMA channel is enabled for operation.

This function checks to see if a specific uDMA channel is enabled. This can be used to check the status of a transfer, since the channel will be automatically disabled at the end of a transfer.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel number to check.

Returns
  Returns status of uDMA channel.
  - `true` : Channel is enabled.
  - `false` : Disabled.

Definition at line 535 of file udma.h.

uint32_t uDMAChannelModeGet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelStructIndex
| ) |  |

Gets the transfer mode for a uDMA channel control structure.

This function is used to get the transfer mode for the uDMA channel. It can be used to query the status of a transfer on a channel. When the transfer is complete the mode will be UDMA_MODE_STOP.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelStructIndex | is the bitwise OR of the uDMA channel number and: UDMA_PRI_SELECT UDMA_ALT_SELECT

Returns
  Returns the transfer mode of the specified channel and control structure, which will be one of the following values:
  - UDMA_MODE_STOP
  - UDMA_MODE_BASIC
  - UDMA_MODE_AUTO
  - UDMA_MODE_PINGPONG
  - UDMA_MODE_MEM_SCATTER_GATHER
  - UDMA_MODE_PER_SCATTER_GATHER

Definition at line 514 of file udma.c.

__STATIC_INLINE void uDMAChannelPriorityClear | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Clear the priority of a uDMA channel.

Note
  Writing 0 to a bit has no effect on the priority. To set a channel priority to high use uDMAChannelPrioritySet().

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | The uDMA channel to clear the priority for.

Returns
  None

Definition at line 1255 of file udma.h.

__STATIC_INLINE bool uDMAChannelPriorityGet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Get the priority of a uDMA channel.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | The uDMA channel to get the priority for.

Returns
  Returns one of:
  - UDMA_PRIORITY_HIGH
  - UDMA_PRIORITY_LOW

Definition at line 1226 of file udma.h.

__STATIC_INLINE void uDMAChannelPrioritySet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Set the priority of a uDMA channel.

Note
  Writing 0 to a bit has no effect on the priority. To reset a channel priority to the default value use uDMAChannelPriorityClear().

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is uDMA channel to set the priority for.

Returns
  None

Definition at line 1199 of file udma.h.

__STATIC_INLINE void uDMAChannelRequest | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum
| ) |  |

Requests a uDMA channel to start a transfer.

This function allows software to request a uDMA channel to begin a transfer. This could be used for performing a memory to memory transfer, or if for some reason a transfer needs to be initiated by software instead of the peripheral associated with that channel.

Note
  If the channel is a software channel and interrupts are used, then the completion will be signaled on the uDMA dedicated interrupt. If a peripheral channel is used, then the completion will be signaled on the peripheral's interrupt.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the channel number on which to request a uDMA transfer.

Returns
  None.

Definition at line 674 of file udma.h.

void uDMAChannelScatterGatherSet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelNum,
|  | uint32_t | ui32TaskCount,
|  | void * | pvTaskList,
|  | uint32_t | ui32IsPeriphSG
| ) |  |

Configures a uDMA channel for scatter-gather mode.

This function is used to configure a channel for scatter-gather mode. The caller must have already set up a task list, and pass a pointer to the start of the task list as the `pvTaskList` parameter.

The `ui32TaskCount` parameter is the count of tasks in the task list, not the size of the task list.

The flag `bIsPeriphSG` should be used to indicate if the scatter-gather should be configured for a peripheral or memory scatter-gather operation.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelNum | is the uDMA channel number.
  ui32TaskCount | is the number of scatter-gather tasks to execute.
  pvTaskList | is a pointer to the beginning of the scatter-gather task list.
  ui32IsPeriphSG | is a flag to indicate it is a peripheral scatter-gather transfer (else it will be memory scatter-gather transfer)

Returns
  None

See also
  uDMATaskStructEntry()

Definition at line 391 of file udma.c.

uint32_t uDMAChannelSizeGet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelStructIndex
| ) |  |

Gets the current transfer size for a uDMA channel control structure.

This function is used to get the uDMA transfer size for a channel. The transfer size is the number of items to transfer, where the size of an item might be 8, 16, or 32 bits. If a partial transfer has already occurred, then the number of remaining items will be returned. If the transfer is complete, then 0 will be returned.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelStructIndex | is the bitwise OR of the uDMA channel number and: UDMA_PRI_SELECT UDMA_ALT_SELECT

Returns
  Returns the number of items remaining to transfer.

Definition at line 462 of file udma.c.

void uDMAChannelTransferSet | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChannelStructIndex,
|  | uint32_t | ui32Mode,
|  | void * | pvSrcAddr,
|  | void * | pvDstAddr,
|  | uint32_t | ui32TransferSize
| ) |  |

Sets the transfer parameters for a uDMA channel control structure.

This function is used to set the parameters for a uDMA transfer. These are typically parameters that are changed often. The function uDMAChannelControlSet() MUST be called at least once for this channel prior to calling this function.

The `pvSrcAddr` and `pvDstAddr` parameters are pointers to the first location of the data to be transferred. These addresses should be aligned according to the item size. The compiler will take care of this if the pointers are pointing to storage of the appropriate data type.

The two scatter/gather modes, MEMORY and PERIPHERAL, are actually different depending on whether the primary or alternate control structure is selected. This function will look for the UDMA_PRI_SELECT and UDMA_ALT_SELECT flag along with the channel number and will set the scatter/gather mode as appropriate for the primary or alternate control structure.

The channel must also be enabled using uDMAChannelEnable() after calling this function. The transfer will not begin until the channel has been set up and enabled. Note that the channel is automatically disabled after the transfer is completed, meaning that uDMAChannelEnable() must be called again after setting up the next transfer.

Note
  Great care must be taken to not modify a channel control structure that is in use or else the results will be unpredictable, including the possibility of undesired data transfers to or from memory or peripherals. For BASIC and AUTO modes, it is safe to make changes when the channel is disabled, or the uDMAChannelModeGet() returns UDMA_MODE_STOP. For PINGPONG or one of the SCATTER_GATHER modes, it is safe to modify the primary or alternate control structure only when the other is being used. The uDMAChannelModeGet() function will return UDMA_MODE_STOP when a channel control structure is inactive and safe to modify.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChannelStructIndex | is the bitwise OR of the uDMA channel number and: UDMA_PRI_SELECT : Use primary data structure. UDMA_ALT_SELECT : Use alternate data structure.
  ui32Mode | is the type of uDMA transfer. The parameter should be one of the following values: UDMA_MODE_STOP : Stops the uDMA transfer. The controller sets the mode to this value at the end of a transfer. UDMA_MODE_BASIC : Perform a basic transfer based on request. UDMA_MODE_AUTO to perform a transfer that will always complete once started even if request is removed. UDMA_MODE_PINGPONG : Set up a transfer that switches between the primary and alternate control structures for the channel. This allows use of ping-pong buffering for uDMA transfers. UDMA_MODE_MEM_SCATTER_GATHER : Set up a memory scatter-gather transfer. UDMA_MODE_PER_SCATTER_GATHER : Set up a peripheral scatter-gather transfer.
  pvSrcAddr | is the source address for the transfer.
  pvDstAddr | is the destination address for the transfer.
  ui32TransferSize | is the number of data items to transfer (NOT bytes).

Returns
  None

Definition at line 265 of file udma.c.

__STATIC_INLINE void* uDMAControlAlternateBaseGet | ( | uint32_t | ui32Base | ) |

Gets the base address for the channel control table alternate structures.

This function gets the base address of the second half of the channel control table that holds the alternate control structures for each channel.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  Returns a pointer to the base address of the second half of the channel control table.

Definition at line 638 of file udma.h.

__STATIC_INLINE void* uDMAControlBaseGet | ( | uint32_t | ui32Base | ) |

Gets the base address for the channel control table.

This function gets the base address of the channel control table. This table resides in system memory and holds control information for each uDMA channel.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  Returns a pointer to the base address of the channel control table.

Definition at line 610 of file udma.h.

__STATIC_INLINE void uDMAControlBaseSet | ( | uint32_t | ui32Base,
|  | void * | pControlTable
| ) |  |

Sets the base address for the channel control table.

This function sets the base address of the channel control table. This table resides in system memory and holds control information for each uDMA channel. The table must be aligned on a 1024 byte boundary. The base address must be set before any of the channel functions can be used. Setting the base address of the primary control table will automatically set the address for the alternate control table as the next memory location after the primary control table.

The size of the channel control table depends on the number of uDMA channels, and which transfer modes are used. Refer to the introductory text and the microcontroller datasheet for more information about the channel control table.

Note
  This register cannot be read when the controller is in the reset state.

Parameters

  ui32Base | is the base address of the uDMA port.
  pControlTable | is a pointer to the 1024 byte aligned base address of the uDMA channel control table. The address must be an absolute address in system memory space.

Returns
  None

Definition at line 580 of file udma.h.

__STATIC_INLINE void uDMADisable | ( | uint32_t | ui32Base | ) |

Disables the uDMA controller for use.

This function disables the uDMA controller. Once disabled, the uDMA controller will not operate until re-enabled with uDMAEnable().

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  None.

Definition at line 390 of file udma.h.

__STATIC_INLINE void uDMAEnable | ( | uint32_t | ui32Base | ) |

Enables the uDMA controller for use.

This function enables the uDMA controller. The uDMA controller must be enabled before it can be configured and used.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  None

Definition at line 364 of file udma.h.

__STATIC_INLINE void uDMAErrorStatusClear | ( | uint32_t | ui32Base | ) |

Clears the uDMA error interrupt.

This function clears a pending uDMA error interrupt. It should be called from within the uDMA error interrupt handler to clear the interrupt.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  None

Definition at line 443 of file udma.h.

__STATIC_INLINE uint32_t uDMAErrorStatusGet | ( | uint32_t | ui32Base | ) |

Gets the uDMA error status.

This function returns the uDMA error status. It should be called from within the uDMA error interrupt handler to determine if a uDMA error occurred.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  Returns non-zero if a uDMA error is pending.

Definition at line 417 of file udma.h.

__STATIC_INLINE uint32_t uDMAGetStatus | ( | uint32_t | ui32Base | ) |

Return the status of the uDMA module.

Note
  This status register cannot be read when the controller is in the reset state.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  Current status of the uDMA module.

Definition at line 1172 of file udma.h.

__STATIC_INLINE void uDMAIntClear | ( | uint32_t | ui32Base,
|  | uint32_t | ui32ChanMask
| ) |  |

Clears uDMA interrupt done status.

Clears bits in the uDMA interrupt status register according to which bits are set in `ui32ChanMask`. There is one bit for each channel. If a a bit is set in `ui32ChanMask`, then that corresponding channel's interrupt status will be cleared (if it was set).

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32ChanMask | is a 32-bit mask with one bit for each uDMA channel.

Returns
  None

Definition at line 1056 of file udma.h.

__STATIC_INLINE void uDMAIntRegister | ( | uint32_t | ui32Base,
|  | uint32_t | ui32IntChannel,
|  | void(*)(void) | pfnHandler
| ) |  |

Registers an interrupt handler for the uDMA controller.

This sets and enables the handler to be called when the uDMA controller generates an interrupt.

Note
  The interrupt handler for uDMA is for transfer completion when the software channel is used, and for error interrupts. The interrupts for each peripheral channel are handled through the individual peripheral interrupt handlers.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32IntChannel | identifies which uDMA interrupt is to be registered. INT_UDMA : Register an interrupt handler to process interrupts from the uDMA software channel. INT_UDMAERR : Register an interrupt handler to process uDMA error interrupts.
  pfnHandler | is a pointer to the function to be called when the interrupt is activated.

Returns
  None

See also
  IntRegister() for important information about registering interrupt handlers.

Definition at line 979 of file udma.h.

__STATIC_INLINE uint32_t uDMAIntStatus | ( | uint32_t | ui32Base | ) |

Get the uDMA interrupt status.

This function returns the interrupt status for the specified UDMA. This function does not differentiate between software or hardware activated interrupts.

Parameters

  ui32Base | is the base address of the uDMA port.

Returns
  None

Definition at line 1083 of file udma.h.

__STATIC_INLINE void uDMAIntSwEventDisable | ( | uint32_t | ui32Base,
|  | uint32_t | ui32IntChannel
| ) |  |

Disable interrupt on software event driven uDMA transfers.

This register disables the blocking of the uDMA status signals propagation to the hardware peripheral connected to the uDMA on the `ui32IntChannel`.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32IntChannel | identifies which uDMA interrupt to disable software interrupts for.

Returns
  None

See also
  uDMAIntSwEventEnable()

Definition at line 1146 of file udma.h.

__STATIC_INLINE void uDMAIntSwEventEnable | ( | uint32_t | ui32Base,
|  | uint32_t | ui32IntChannel
| ) |  |

Enable interrupt on software event driven uDMA transfers.

Note
  The main purpose of this function is to prevent propagation of uDMA status signals to a peripheral, if a peripheral and a software event is sharing the uDMA channel. If it is desired to initiate a transfer by writing to a register inside the uDMA (this means a software driven channel), then the uDMA status signals propagation need to be blocked to the hardware peripherals.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32IntChannel | identifies which uDMA interrupt to enable software interrupts for.

Returns
  None

Definition at line 1115 of file udma.h.

__STATIC_INLINE void uDMAIntUnregister | ( | uint32_t | ui32Base,
|  | uint32_t | ui32IntChannel
| ) |  |

Unregisters an interrupt handler for the uDMA controller.

This function will disable and clear the handler to be called for the specified uDMA interrupt.

Parameters

  ui32Base | is the base address of the uDMA port.
  ui32IntChannel | identifies which uDMA interrupt to unregister. INT_UDMA : Register an interrupt handler to process interrupts from the uDMA software channel. INT_UDMAERR : Register an interrupt handler to process uDMA error interrupts.

Returns
  None

See also
  IntRegister() for important information about registering interrupt handlers.

Definition at line 1021 of file udma.h.

## Macro Definition Documentation

#define UDMA_ALT_SELECT 0x00000020

Definition at line 321 of file udma.h.

Referenced by uDMAChannelScatterGatherSet(), and uDMAChannelTransferSet().

#define UDMA_ARB_1 0x00000000

Definition at line 268 of file udma.h.

#define UDMA_ARB_1024 0x00028000

Definition at line 278 of file udma.h.

#define UDMA_ARB_128 0x0001c000

Definition at line 275 of file udma.h.

#define UDMA_ARB_16 0x00010000

Definition at line 272 of file udma.h.

#define UDMA_ARB_2 0x00004000

Definition at line 269 of file udma.h.

#define UDMA_ARB_256 0x00020000

Definition at line 276 of file udma.h.

#define UDMA_ARB_32 0x00014000

Definition at line 273 of file udma.h.

#define UDMA_ARB_4 0x00008000

Definition at line 270 of file udma.h.

Referenced by uDMAChannelScatterGatherSet().

#define UDMA_ARB_512 0x00024000

Definition at line 277 of file udma.h.

#define UDMA_ARB_64 0x00018000

Definition at line 274 of file udma.h.

#define UDMA_ARB_8 0x0000c000

Definition at line 271 of file udma.h.

#define UDMA_ARB_M 0x0003C000

Definition at line 279 of file udma.h.

Referenced by uDMAChannelControlSet().

#define UDMA_ARB_S 14

Definition at line 280 of file udma.h.

#define UDMA_ATTR_ALL 0x0000000F

Definition at line 227 of file udma.h.

#define UDMA_ATTR_ALTSELECT 0x00000002

Definition at line 224 of file udma.h.

Referenced by uDMAChannelAttributeDisable(), uDMAChannelAttributeEnable(), and uDMAChannelAttributeGet().

#define UDMA_ATTR_HIGH_PRIORITY 0x00000004

Definition at line 225 of file udma.h.

Referenced by uDMAChannelAttributeDisable(), uDMAChannelAttributeEnable(), and uDMAChannelAttributeGet().

#define UDMA_ATTR_REQMASK 0x00000008

Definition at line 226 of file udma.h.

Referenced by uDMAChannelAttributeDisable(), uDMAChannelAttributeEnable(), and uDMAChannelAttributeGet().

#define UDMA_ATTR_USEBURST 0x00000001

Definition at line 223 of file udma.h.

Referenced by uDMAChannelAttributeDisable(), uDMAChannelAttributeEnable(), and uDMAChannelAttributeGet().

#define UDMA_CHAN_AON_PROG2 13

Definition at line 305 of file udma.h.

#define UDMA_CHAN_AON_RTC 15

Definition at line 307 of file udma.h.

#define UDMA_CHAN_AUX_ADC 7

Definition at line 299 of file udma.h.

#define UDMA_CHAN_AUX_SW 8

Definition at line 300 of file udma.h.

#define UDMA_CHAN_DMA_PROG 14

Definition at line 306 of file udma.h.

#define UDMA_CHAN_SPIS_RX 5

Definition at line 297 of file udma.h.

#define UDMA_CHAN_SPIS_TX 6

Definition at line 298 of file udma.h.

#define UDMA_CHAN_SSI0_RX 3

Definition at line 295 of file udma.h.

#define UDMA_CHAN_SSI0_TX 4

Definition at line 296 of file udma.h.

#define UDMA_CHAN_SSI1_RX 16

Definition at line 308 of file udma.h.

#define UDMA_CHAN_SSI1_TX 17

Definition at line 309 of file udma.h.

#define UDMA_CHAN_SW_EVT0 0

Definition at line 292 of file udma.h.

#define UDMA_CHAN_SW_EVT1 18

Definition at line 310 of file udma.h.

#define UDMA_CHAN_SW_EVT2 19

Definition at line 311 of file udma.h.

#define UDMA_CHAN_SW_EVT3 20

Definition at line 312 of file udma.h.

#define UDMA_CHAN_TIMER0_A 9

Definition at line 301 of file udma.h.

#define UDMA_CHAN_TIMER0_B 10

Definition at line 302 of file udma.h.

#define UDMA_CHAN_TIMER1_A 11

Definition at line 303 of file udma.h.

#define UDMA_CHAN_TIMER1_B 12

Definition at line 304 of file udma.h.

#define UDMA_CHAN_UART0_RX 1

Definition at line 293 of file udma.h.

#define UDMA_CHAN_UART0_TX 2

Definition at line 294 of file udma.h.

#define UDMA_DST_INC_16 0x40000000

Definition at line 252 of file udma.h.

#define UDMA_DST_INC_32 0x80000000

Definition at line 253 of file udma.h.

Referenced by uDMAChannelScatterGatherSet().

#define UDMA_DST_INC_8 0x00000000

Definition at line 251 of file udma.h.

#define UDMA_DST_INC_M 0xC0000000

Definition at line 255 of file udma.h.

Referenced by uDMAChannelControlSet(), and uDMAChannelTransferSet().

#define UDMA_DST_INC_NONE 0xC0000000

Definition at line 254 of file udma.h.

Referenced by uDMAChannelTransferSet().

#define UDMA_DST_INC_S 30

Definition at line 256 of file udma.h.

Referenced by uDMAChannelTransferSet().

#define UDMA_MODE_ALT_SELECT 0x00000001

Definition at line 244 of file udma.h.

Referenced by uDMAChannelModeGet(), and uDMAChannelTransferSet().

#define UDMA_MODE_AUTO 0x00000002

Definition at line 237 of file udma.h.

#define UDMA_MODE_BASIC 0x00000001

Definition at line 236 of file udma.h.

#define UDMA_MODE_M 0x00000007

Definition at line 243 of file udma.h.

Referenced by uDMAChannelModeGet(), uDMAChannelSizeGet(), and uDMAChannelTransferSet().

#define UDMA_MODE_MEM_SCATTER_GATHER 0x00000004

Definition at line 239 of file udma.h.

Referenced by uDMAChannelModeGet(), uDMAChannelScatterGatherSet(), and uDMAChannelTransferSet().

#define UDMA_MODE_PER_SCATTER_GATHER 0x00000006

Definition at line 241 of file udma.h.

Referenced by uDMAChannelModeGet(), uDMAChannelScatterGatherSet(), and uDMAChannelTransferSet().

#define UDMA_MODE_PINGPONG 0x00000003

Definition at line 238 of file udma.h.

#define UDMA_MODE_STOP 0x00000000

Definition at line 235 of file udma.h.

#define UDMA_NEXT_USEBURST 0x00000008

Definition at line 281 of file udma.h.

Referenced by uDMAChannelControlSet().

#define UDMA_NUM_CHANNELS 21

Definition at line 207 of file udma.h.

Referenced by uDMAChannelAttributeDisable(), uDMAChannelAttributeEnable(), uDMAChannelAttributeGet(), uDMAChannelControlSet(), uDMAChannelDisable(), uDMAChannelEnable(), uDMAChannelIsEnabled(), uDMAChannelModeGet(), uDMAChannelPriorityClear(), uDMAChannelPriorityGet(), uDMAChannelPrioritySet(), uDMAChannelRequest(), uDMAChannelScatterGatherSet(), uDMAChannelSizeGet(), uDMAChannelTransferSet(), uDMAIntSwEventDisable(), and uDMAIntSwEventEnable().

#define UDMA_PRI_SELECT 0x00000000

Definition at line 320 of file udma.h.

#define UDMA_PRIORITY_HIGH 0x00000001

Definition at line 215 of file udma.h.

Referenced by uDMAChannelPriorityGet().

#define UDMA_PRIORITY_LOW 0x00000000

Definition at line 214 of file udma.h.

Referenced by uDMAChannelPriorityGet().

#define UDMA_SIZE_16 0x11000000

Definition at line 264 of file udma.h.

#define UDMA_SIZE_32 0x22000000

Definition at line 265 of file udma.h.

Referenced by uDMAChannelScatterGatherSet().

#define UDMA_SIZE_8 0x00000000

Definition at line 263 of file udma.h.

#define UDMA_SIZE_M 0x33000000

Definition at line 266 of file udma.h.

Referenced by uDMAChannelControlSet().

#define UDMA_SIZE_S 24

Definition at line 267 of file udma.h.

#define UDMA_SRC_INC_16 0x04000000

Definition at line 258 of file udma.h.

#define UDMA_SRC_INC_32 0x08000000

Definition at line 259 of file udma.h.

Referenced by uDMAChannelScatterGatherSet().

#define UDMA_SRC_INC_8 0x00000000

Definition at line 257 of file udma.h.

#define UDMA_SRC_INC_M 0x0C000000

Definition at line 261 of file udma.h.

Referenced by uDMAChannelControlSet(), and uDMAChannelTransferSet().

#define UDMA_SRC_INC_NONE 0x0c000000

Definition at line 260 of file udma.h.

Referenced by uDMAChannelTransferSet().

#define UDMA_SRC_INC_S 26

Definition at line 262 of file udma.h.

Referenced by uDMAChannelTransferSet().

#define UDMA_XFER_SIZE_M 0x00003FF0

Definition at line 283 of file udma.h.

Referenced by uDMAChannelSizeGet(), and uDMAChannelTransferSet().

#define UDMA_XFER_SIZE_MAX 1024

Definition at line 282 of file udma.h.

Referenced by uDMAChannelScatterGatherSet(), and uDMAChannelTransferSet().

#define UDMA_XFER_SIZE_S 4

Definition at line 284 of file udma.h.

Referenced by uDMAChannelScatterGatherSet(), uDMAChannelSizeGet(), and uDMAChannelTransferSet().

#define uDMATaskStructEntry | ( |  | ui32TransferCount,
|  |  | ui32ItemSize,
|  |  | ui32SrcIncrement,
|  |  | pvSrcAddr,
|  |  | ui32DstIncrement,
|  |  | pvDstAddr,
|  |  | ui32ArbSize,
|  |  | ui32Mode
| ) |  |

Value:
{ \
(((ui32SrcIncrement) == UDMA_SRC_INC_NONE) ? (pvSrcAddr) : \
((void *)(&((uint8_t *)(pvSrcAddr))[((ui32TransferCount) << \
((ui32SrcIncrement) >> 26)) - 1]))), \
(((ui32DstIncrement) == UDMA_DST_INC_NONE) ? (pvDstAddr) : \
((void *)(&((uint8_t *)(pvDstAddr))[((ui32TransferCount) << \
((ui32DstIncrement) >> 30)) - 1]))), \
(ui32SrcIncrement) | (ui32DstIncrement) | (ui32ItemSize) | \
(ui32ArbSize) | (((ui32TransferCount) - 1) << 4) | \
((((ui32Mode) == UDMA_MODE_MEM_SCATTER_GATHER) || \
((ui32Mode) == UDMA_MODE_PER_SCATTER_GATHER)) ? \
(ui32Mode) | UDMA_MODE_ALT_SELECT : (ui32Mode)), 0 \
}
UDMA_MODE_MEM_SCATTER_GATHER
#define UDMA_MODE_MEM_SCATTER_GATHER
Definition: udma.h:239
UDMA_MODE_ALT_SELECT
#define UDMA_MODE_ALT_SELECT
Definition: udma.h:244
UDMA_SRC_INC_NONE
#define UDMA_SRC_INC_NONE
Definition: udma.h:260
UDMA_MODE_PER_SCATTER_GATHER
#define UDMA_MODE_PER_SCATTER_GATHER
Definition: udma.h:241
UDMA_DST_INC_NONE
#define UDMA_DST_INC_NONE
Definition: udma.h:254

A helper macro for building scatter-gather task table entries.

This macro is intended to be used to help populate a table of uDMA tasks for a scatter-gather transfer. This macro will calculate the values for the fields of a task structure entry based on the input parameters.

There are specific requirements for the values of each parameter. No checking is done so it is up to the caller to ensure that correct values are used for the parameters.

This macro is intended to be used to initialize individual entries of a structure of tDMAControlTable type, like this:

      tDMAControlTable MyTaskList[] =
      {
          uDMATaskStructEntry(Task1Count, UDMA_SIZE_8,
                              UDMA_SRC_INC_8, MySourceBuf,
                              UDMA_DST_INC_8, MyDestBuf,
                              UDMA_ARB_8, UDMA_MODE_MEM_SCATTER_GATHER),
          uDMATaskStructEntry(Task2Count, ... ),
      }

Parameters

  ui32TransferCount | is the count of items to transfer for this task. It must be in the range 1-1024.
  ui32ItemSize | is the bit size of the items to transfer for this task. It must be one of: UDMA_SIZE_8 UDMA_SIZE_16 UDMA_SIZE_32
  ui32SrcIncrement | is the bit size increment for source data. It must be one of: UDMA_SRC_INC_8 UDMA_SRC_INC_16 UDMA_SRC_INC_32 UDMA_SRC_INC_NONE
  pvSrcAddr | is the starting address of the data to transfer.
  ui32DstIncrement | is the bit size increment for destination data. It must be one of: UDMA_DST_INC_8 UDMA_DST_INC_16 UDMA_DST_INC_32 UDMA_DST_INC_NONE
  pvDstAddr | is the starting address of the destination data.
  ui32ArbSize | is the arbitration size to use for the transfer task. This is used to select the arbitration size in powers of 2, from 1 to 1024. It must be one of: UDMA_ARB_1 UDMA_ARB_2 UDMA_ARB_4 ... UDMA_ARB_1024
  ui32Mode | is the transfer mode for this task. Note that normally all tasks will be one of the scatter-gather modes while the last task is a task list will be AUTO or BASIC. It must be one of: UDMA_MODE_BASIC UDMA_MODE_AUTO UDMA_MODE_MEM_SCATTER_GATHER UDMA_MODE_PER_SCATTER_GATHER

Returns
  None (this is not a function)

Definition at line 180 of file udma.h.