uDMA driver implementation for CC32XX.
============================================================================
This driver is intended for use only by drivers that use the uDMA peripheral (e.g., SPI and I2S). This driver is mainly used for Power management of the UDMA peripheral.
The application should only define the memory for the control table and set up the UDMACC32XX_HWAttrs and UDMACC32XX_Config structures.
The UDMACC32XX header file should be included in an application as follows:
#include <stdint.h>
#include <stdbool.h>
#include <ti/drivers/dpl/HwiP.h>
Go to the source code of this file.
Data Structures | |
struct | UDMACC32XX_HWAttrs |
UDMACC32XX Hardware attributes. More... | |
struct | UDMACC32XX_Config |
UDMACC32XX Global configuration. More... | |
struct | UDMACC32XX_Object |
UDMACC32XX object. More... | |
Typedefs | |
typedef void(* | UDMACC32XX_ErrorFxn) (uintptr_t arg) |
UDMA error function pointer. More... | |
typedef struct UDMACC32XX_HWAttrs | UDMACC32XX_HWAttrs |
UDMACC32XX Hardware attributes. More... | |
typedef struct UDMACC32XX_Config | UDMACC32XX_Config |
UDMACC32XX Global configuration. More... | |
typedef struct UDMACC32XX_Config * | UDMACC32XX_Handle |
A handle that is returned from a UDMACC32XX_open() call. More... | |
typedef struct UDMACC32XX_Object | UDMACC32XX_Object |
UDMACC32XX object. More... | |
Functions | |
void | UDMACC32XX_close (UDMACC32XX_Handle handle) |
Function to close the DMA driver. More... | |
void | UDMACC32XX_init () |
Function to initialize the CC32XX DMA driver. More... | |
UDMACC32XX_Handle | UDMACC32XX_open () |
Function to initialize the CC32XX DMA peripheral. More... | |
typedef void(* UDMACC32XX_ErrorFxn) (uintptr_t arg) |
UDMA error function pointer.
typedef struct UDMACC32XX_HWAttrs UDMACC32XX_HWAttrs |
UDMACC32XX Hardware attributes.
This structure contains the base address of the uDMA control table, and uDMA error interrupt attributes.
The control table is used by the uDMA controller to store channel control structures. The control table can be located anywhere in system memory, but must be contiguous and aligned on a 1024-byte boundary.
dmaErrorFxn is the uDMA peripheral's error interrupt handler.
intPriority is priority of the uDMA peripheral's error interrupt, as defined by the underlying OS. It is passed unmodified to the underlying OS's interrupt handler creation code, so you need to refer to the OS documentation for usage. If the driver uses the ti.dpl interface instead of making OS calls directly, then the HwiP port handles the interrupt priority in an OS specific way. In the case of the SYS/BIOS port, intPriority is passed unmodified to Hwi_create().
A sample structure is shown below:
typedef struct UDMACC32XX_Config UDMACC32XX_Config |
UDMACC32XX Global configuration.
The UDMACC32XX_Config structure contains pointers used by the UDMACC32XX driver.
This structure needs to be defined before calling UDMACC32XX_init() and it must not be changed thereafter.
typedef struct UDMACC32XX_Config* UDMACC32XX_Handle |
A handle that is returned from a UDMACC32XX_open() call.
typedef struct UDMACC32XX_Object UDMACC32XX_Object |
UDMACC32XX object.
The application must not access any member variables of this structure!
void UDMACC32XX_close | ( | UDMACC32XX_Handle | handle | ) |
Function to close the DMA driver.
This function releases Power dependency on UDMA that was previously set with a call to UDMACC32XX_open(). If there is only one outstanding UDMACC32XX_open() call (i.e. all but one UDMACC32XX_open() calls have been matched by a corresponding call to UDMACC32XX_close()), this function will disable the UDMA.
handle | A UDMACC32XX_Handle returned from UDMACC32XX_open() |
void UDMACC32XX_init | ( | ) |
Function to initialize the CC32XX DMA driver.
The function will set the isOpen flag to false, and should be called prior to opening the DMA driver.
UDMACC32XX_Handle UDMACC32XX_open | ( | ) |
Function to initialize the CC32XX DMA peripheral.
UDMACC32XX_open() can be called multiple times. Each time the function is called, it will set a dependency on the peripheral and enable the clock. The Power dependency count on the UDMA will be equal to the number of outstanding calls to UDMACC32XX_open(). Calling UDMACC32XX_close() will decrement the Power dependency count, and the last call to UDMACC32XX_close() will disable the UDMA.