This section describes the programming interface of the SPI DMA driver.
|
typedef void(* | spi_dma_callback_t )(SPI_Type *base, spi_dma_handle_t *handle, status_t status, void *userData) |
| SPI DMA callback called at the end of transfer. More...
|
|
|
void | SPI_MasterTransferCreateHandleDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_dma_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle) |
| Initialize the SPI master DMA handle. More...
|
|
status_t | SPI_MasterTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_transfer_t *xfer) |
| Perform a non-blocking SPI transfer using DMA. More...
|
|
void | SPI_MasterTransferAbortDMA (SPI_Type *base, spi_dma_handle_t *handle) |
| Abort a SPI transfer using DMA. More...
|
|
status_t | SPI_MasterTransferGetCountDMA (SPI_Type *base, spi_dma_handle_t *handle, size_t *count) |
| Get the transferred bytes for SPI slave DMA. More...
|
|
static void | SPI_SlaveTransferCreateHandleDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_dma_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle) |
| Initialize the SPI slave DMA handle. More...
|
|
static status_t | SPI_SlaveTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_transfer_t *xfer) |
| Perform a non-blocking SPI transfer using DMA. More...
|
|
static void | SPI_SlaveTransferAbortDMA (SPI_Type *base, spi_dma_handle_t *handle) |
| Abort a SPI transfer using DMA. More...
|
|
static status_t | SPI_SlaveTransferGetCountDMA (SPI_Type *base, spi_dma_handle_t *handle, size_t *count) |
| Get the transferred bytes for SPI slave DMA. More...
|
|
typedef void(* spi_dma_callback_t)(SPI_Type *base, spi_dma_handle_t *handle, status_t status, void *userData) |
This function initializes the SPI master DMA handle which can be used for other SPI master transactional APIs. Usually, for a specified SPI instance, user need only call this API once to get the initialized handle.
- Parameters
-
base | SPI peripheral base address. |
handle | SPI handle pointer. |
callback | User callback function called at the end of a transfer. |
userData | User data for callback. |
txHandle | DMA handle pointer for SPI Tx, the handle shall be static allocated by users. |
rxHandle | DMA handle pointer for SPI Rx, the handle shall be static allocated by users. |
status_t SPI_MasterTransferDMA |
( |
SPI_Type * |
base, |
|
|
spi_dma_handle_t * |
handle, |
|
|
spi_transfer_t * |
xfer |
|
) |
| |
- Note
- This interface returned immediately after transfer initiates, users should call SPI_GetTransferStatus to poll the transfer status to check whether SPI transfer finished.
- Parameters
-
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
xfer | Pointer to dma transfer structure. |
- Return values
-
kStatus_Success | Successfully start a transfer. |
kStatus_InvalidArgument | Input argument is invalid. |
kStatus_SPI_Busy | SPI is not idle, is running another transfer. |
void SPI_MasterTransferAbortDMA |
( |
SPI_Type * |
base, |
|
|
spi_dma_handle_t * |
handle |
|
) |
| |
- Parameters
-
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
status_t SPI_MasterTransferGetCountDMA |
( |
SPI_Type * |
base, |
|
|
spi_dma_handle_t * |
handle, |
|
|
size_t * |
count |
|
) |
| |
- Parameters
-
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
count | Transferred bytes. |
- Return values
-
kStatus_SPI_Success | Succeed get the transfer count. |
kStatus_NoTransferInProgress | There is not a non-blocking transaction currently in progress. |
This function initializes the SPI slave DMA handle which can be used for other SPI master transactional APIs. Usually, for a specified SPI instance, user need only call this API once to get the initialized handle.
- Parameters
-
base | SPI peripheral base address. |
handle | SPI handle pointer. |
callback | User callback function called at the end of a transfer. |
userData | User data for callback. |
txHandle | DMA handle pointer for SPI Tx, the handle shall be static allocated by users. |
rxHandle | DMA handle pointer for SPI Rx, the handle shall be static allocated by users. |
static status_t SPI_SlaveTransferDMA |
( |
SPI_Type * |
base, |
|
|
spi_dma_handle_t * |
handle, |
|
|
spi_transfer_t * |
xfer |
|
) |
| |
|
inlinestatic |
- Note
- This interface returned immediately after transfer initiates, users should call SPI_GetTransferStatus to poll the transfer status to check whether SPI transfer finished.
- Parameters
-
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
xfer | Pointer to dma transfer structure. |
- Return values
-
kStatus_Success | Successfully start a transfer. |
kStatus_InvalidArgument | Input argument is invalid. |
kStatus_SPI_Busy | SPI is not idle, is running another transfer. |
static void SPI_SlaveTransferAbortDMA |
( |
SPI_Type * |
base, |
|
|
spi_dma_handle_t * |
handle |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
static status_t SPI_SlaveTransferGetCountDMA |
( |
SPI_Type * |
base, |
|
|
spi_dma_handle_t * |
handle, |
|
|
size_t * |
count |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
count | Transferred bytes. |
- Return values
-
kStatus_SPI_Success | Succeed get the transfer count. |
kStatus_NoTransferInProgress | There is not a non-blocking transaction currently in progress. |