MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Data Structures

struct  flexspi_edma_handle_t
 FLEXSPI DMA transfer handle, users should not touch the content of the handle. More...
 

Typedefs

typedef void(* flexspi_edma_callback_t )(FLEXSPI_Type *base, flexspi_edma_handle_t *handle, status_t status, void *userData)
 FLEXSPI eDMA transfer callback function for finish and error.
 

Enumerations

enum  flexspi_edma_transfer_nsize_t {
  kFLEXPSI_EDMAnSize1Bytes = 0x1U,
  kFLEXPSI_EDMAnSize2Bytes = 0x2U,
  kFLEXPSI_EDMAnSize4Bytes = 0x4U,
  kFLEXPSI_EDMAnSize8Bytes = 0x8U,
  kFLEXPSI_EDMAnSize32Bytes = 0x20U
}
 eDMA transfer configuration More...
 

Driver version

#define FSL_FLEXSPI_EDMA_DRIVER_VERSION   (MAKE_VERSION(2, 0, 2))
 FLEXSPI EDMA driver version 2.0.2. More...
 

FLEXSPI eDMA Transactional

void FLEXSPI_TransferCreateHandleEDMA (FLEXSPI_Type *base, flexspi_edma_handle_t *handle, flexspi_edma_callback_t callback, void *userData, edma_handle_t *txDmaHandle, edma_handle_t *rxDmaHandle)
 Initializes the FLEXSPI handle for transfer which is used in transactional functions and set the callback. More...
 
void FLEXSPI_TransferUpdateSizeEDMA (FLEXSPI_Type *base, flexspi_edma_handle_t *handle, flexspi_edma_transfer_nsize_t nsize)
 Update FLEXSPI EDMA transfer source data transfer size(SSIZE) and destination data transfer size(DSIZE). More...
 
status_t FLEXSPI_TransferEDMA (FLEXSPI_Type *base, flexspi_edma_handle_t *handle, flexspi_transfer_t *xfer)
 Transfers FLEXSPI data using an eDMA non-blocking method. More...
 
void FLEXSPI_TransferAbortEDMA (FLEXSPI_Type *base, flexspi_edma_handle_t *handle)
 Aborts the transfer data using eDMA. More...
 
status_t FLEXSPI_TransferGetCountEDMA (FLEXSPI_Type *base, flexspi_edma_handle_t *handle, size_t *count)
 Gets the transferred counts of transfer. More...
 

Detailed Description


Data Structure Documentation

struct _flexspi_edma_handle

Data Fields

edma_handle_t * txDmaHandle
 eDMA handler for FLEXSPI Tx. More...
 
edma_handle_t * rxDmaHandle
 eDMA handler for FLEXSPI Rx. More...
 
size_t transferSize
 Bytes need to transfer. More...
 
flexspi_edma_transfer_nsize_t nsize
 eDMA SSIZE/DSIZE in each transfer. More...
 
uint8_t nbytes
 eDMA minor byte transfer count initially configured. More...
 
uint8_t count
 The transfer data count in a DMA request. More...
 
uint32_t state
 Internal state for FLEXSPI eDMA transfer. More...
 
flexspi_edma_callback_t completionCallback
 A callback function called after the eDMA transfer is finished. More...
 
void * userData
 User callback parameter.
 

Field Documentation

edma_handle_t* flexspi_edma_handle_t::txDmaHandle
edma_handle_t* flexspi_edma_handle_t::rxDmaHandle
size_t flexspi_edma_handle_t::transferSize
flexspi_edma_transfer_nsize_t flexspi_edma_handle_t::nsize
uint8_t flexspi_edma_handle_t::nbytes
uint8_t flexspi_edma_handle_t::count
uint32_t flexspi_edma_handle_t::state
flexspi_edma_callback_t flexspi_edma_handle_t::completionCallback

Macro Definition Documentation

#define FSL_FLEXSPI_EDMA_DRIVER_VERSION   (MAKE_VERSION(2, 0, 2))

Enumeration Type Documentation

Enumerator
kFLEXPSI_EDMAnSize1Bytes 

Source/Destination data transfer size is 1 byte every time.

kFLEXPSI_EDMAnSize2Bytes 

Source/Destination data transfer size is 2 bytes every time.

kFLEXPSI_EDMAnSize4Bytes 

Source/Destination data transfer size is 4 bytes every time.

kFLEXPSI_EDMAnSize8Bytes 

Source/Destination data transfer size is 8 bytes every time.

kFLEXPSI_EDMAnSize32Bytes 

Source/Destination data transfer size is 32 bytes every time.

Function Documentation

void FLEXSPI_TransferCreateHandleEDMA ( FLEXSPI_Type *  base,
flexspi_edma_handle_t *  handle,
flexspi_edma_callback_t  callback,
void *  userData,
edma_handle_t *  txDmaHandle,
edma_handle_t *  rxDmaHandle 
)
Parameters
baseFLEXSPI peripheral base address
handlePointer to flexspi_edma_handle_t structure
callbackFLEXSPI callback, NULL means no callback.
userDataUser callback function data.
txDmaHandleUser requested DMA handle for TX DMA transfer.
rxDmaHandleUser requested DMA handle for RX DMA transfer.
void FLEXSPI_TransferUpdateSizeEDMA ( FLEXSPI_Type *  base,
flexspi_edma_handle_t *  handle,
flexspi_edma_transfer_nsize_t  nsize 
)
Parameters
baseFLEXSPI peripheral base address
handlePointer to flexspi_edma_handle_t structure
nsizeFLEXSPI DMA transfer data transfer size(SSIZE/DSIZE), by default the size is kFLEXPSI_EDMAnSize1Bytes(one byte).
See Also
flexspi_edma_transfer_nsize_t .
status_t FLEXSPI_TransferEDMA ( FLEXSPI_Type *  base,
flexspi_edma_handle_t *  handle,
flexspi_transfer_t xfer 
)

This function writes/receives data to/from the FLEXSPI transmit/receive FIFO. This function is non-blocking.

Parameters
baseFLEXSPI peripheral base address.
handlePointer to flexspi_edma_handle_t structure
xferFLEXSPI transfer structure.
Return values
kStatus_FLEXSPI_BusyFLEXSPI is busy transfer.
kStatus_InvalidArgumentThe watermark configuration is invalid, the watermark should be power of 2 to do successfully EDMA transfer.
kStatus_SuccessFLEXSPI successfully start edma transfer.
void FLEXSPI_TransferAbortEDMA ( FLEXSPI_Type *  base,
flexspi_edma_handle_t *  handle 
)

This function aborts the transfer data using eDMA.

Parameters
baseFLEXSPI peripheral base address.
handlePointer to flexspi_edma_handle_t structure
status_t FLEXSPI_TransferGetCountEDMA ( FLEXSPI_Type *  base,
flexspi_edma_handle_t *  handle,
size_t *  count 
)
Parameters
baseFLEXSPI peripheral base address.
handlePointer to flexspi_edma_handle_t structure.
countBytes transfer.
Return values
kStatus_SuccessSucceed get the transfer count.
kStatus_NoTransferInProgressThere is not a non-blocking transaction currently in progress.