RTEMS 6.1-rc5
|
Data Structures | |
struct | _flexcan_edma_handle |
FlexCAN eDMA handle. More... | |
Driver version | |
typedef struct _flexcan_edma_handle | flexcan_edma_handle_t |
typedef void(* | flexcan_edma_transfer_callback_t) (CAN_Type *base, flexcan_edma_handle_t *handle, status_t status, void *userData) |
FlexCAN transfer callback function. | |
#define | FSL_FLEXCAN_EDMA_DRIVER_VERSION (MAKE_VERSION(2, 9, 2)) |
FlexCAN EDMA driver version. | |
eDMA transactional | |
void | FLEXCAN_TransferCreateHandleEDMA (CAN_Type *base, flexcan_edma_handle_t *handle, flexcan_edma_transfer_callback_t callback, void *userData, edma_handle_t *rxFifoEdmaHandle) |
Initializes the FlexCAN handle, which is used in transactional functions. | |
void | FLEXCAN_PrepareTransfConfiguration (CAN_Type *base, flexcan_fifo_transfer_t *pFifoXfer, edma_transfer_config_t *pEdmaConfig) |
Prepares the eDMA transfer configuration for FLEXCAN Legacy RX FIFO. | |
status_t | FLEXCAN_StartTransferDatafromRxFIFO (CAN_Type *base, flexcan_edma_handle_t *handle, edma_transfer_config_t *pEdmaConfig) |
Start Transfer Data from the FLEXCAN Legacy Rx FIFO using eDMA. | |
status_t | FLEXCAN_TransferReceiveFifoEDMA (CAN_Type *base, flexcan_edma_handle_t *handle, flexcan_fifo_transfer_t *pFifoXfer) |
Receives the CAN Message from the Legacy Rx FIFO using eDMA. | |
status_t | FLEXCAN_TransferGetReceiveFifoCountEMDA (CAN_Type *base, flexcan_edma_handle_t *handle, size_t *count) |
Gets the Legacy Rx Fifo transfer status during a interrupt non-blocking receive. | |
void | FLEXCAN_TransferAbortReceiveFifoEDMA (CAN_Type *base, flexcan_edma_handle_t *handle) |
Aborts the receive Legacy/Enhanced Rx FIFO process which used eDMA. | |
void FLEXCAN_PrepareTransfConfiguration | ( | CAN_Type * | base, |
flexcan_fifo_transfer_t * | pFifoXfer, | ||
edma_transfer_config_t * | pEdmaConfig | ||
) |
Prepares the eDMA transfer configuration for FLEXCAN Legacy RX FIFO.
This function prepares the eDMA transfer configuration structure according to FLEXCAN Legacy RX FIFO.
base | FlexCAN peripheral base address. |
pFifoXfer | FlexCAN Rx FIFO EDMA transfer structure, see flexcan_fifo_transfer_t. |
pEdmaConfig | The user configuration structure of type edma_transfer_t. |
status_t FLEXCAN_StartTransferDatafromRxFIFO | ( | CAN_Type * | base, |
flexcan_edma_handle_t * | handle, | ||
edma_transfer_config_t * | pEdmaConfig | ||
) |
Start Transfer Data from the FLEXCAN Legacy Rx FIFO using eDMA.
This function to Update edma transfer confiugration and Start eDMA transfer
base | FlexCAN peripheral base address. |
handle | Pointer to flexcan_edma_handle_t structure. |
pEdmaConfig | The user configuration structure of type edma_transfer_t. |
kStatus_Success | if succeed, others failed. |
kStatus_FLEXCAN_RxFifoBusy | Previous transfer ongoing. |
void FLEXCAN_TransferAbortReceiveFifoEDMA | ( | CAN_Type * | base, |
flexcan_edma_handle_t * | handle | ||
) |
Aborts the receive Legacy/Enhanced Rx FIFO process which used eDMA.
This function aborts the receive Legacy/Enhanced Rx FIFO process which used eDMA.
base | FlexCAN peripheral base address. |
handle | Pointer to flexcan_edma_handle_t structure. |
void FLEXCAN_TransferCreateHandleEDMA | ( | CAN_Type * | base, |
flexcan_edma_handle_t * | handle, | ||
flexcan_edma_transfer_callback_t | callback, | ||
void * | userData, | ||
edma_handle_t * | rxFifoEdmaHandle | ||
) |
Initializes the FlexCAN handle, which is used in transactional functions.
base | FlexCAN peripheral base address. |
handle | Pointer to flexcan_edma_handle_t structure. |
callback | The callback function. |
userData | The parameter of the callback function. |
rxFifoEdmaHandle | User-requested DMA handle for Rx FIFO DMA transfer. |
status_t FLEXCAN_TransferGetReceiveFifoCountEMDA | ( | CAN_Type * | base, |
flexcan_edma_handle_t * | handle, | ||
size_t * | count | ||
) |
Gets the Legacy Rx Fifo transfer status during a interrupt non-blocking receive.
base | FlexCAN peripheral base address. |
handle | FlexCAN handle pointer. |
count | Number of CAN messages receive so far by the non-blocking transaction. |
kStatus_InvalidArgument | count is Invalid. |
kStatus_Success | Successfully return the count. |
status_t FLEXCAN_TransferReceiveFifoEDMA | ( | CAN_Type * | base, |
flexcan_edma_handle_t * | handle, | ||
flexcan_fifo_transfer_t * | pFifoXfer | ||
) |
Receives the CAN Message from the Legacy Rx FIFO using eDMA.
This function receives the CAN Message using eDMA. This is a non-blocking function, which returns right away. After the CAN Message is received, the receive callback function is called.
base | FlexCAN peripheral base address. |
handle | Pointer to flexcan_edma_handle_t structure. |
pFifoXfer | FlexCAN Rx FIFO EDMA transfer structure, see flexcan_fifo_transfer_t. |
kStatus_Success | if succeed, others failed. |
kStatus_FLEXCAN_RxFifoBusy | Previous transfer ongoing. |
flexcan_edma_transfer_callback_t _flexcan_edma_handle::callback |
Callback function.
size_t _flexcan_edma_handle::frameNum |
The number of messages that need to be received.
edma_handle_t* _flexcan_edma_handle::rxFifoEdmaHandle |
The EDMA handler for Rx FIFO.
volatile uint8_t _flexcan_edma_handle::rxFifoState |
Rx FIFO transfer state.
void* _flexcan_edma_handle::userData |
FlexCAN callback function parameter.