S32 SDK
flexcan_driver.c File Reference
#include "flexcan_driver.h"
#include "interrupt_manager.h"

Go to the source code of this file.

Macros

#define FLEXCAN_MB_HANDLE_RXFIFO   0U
 

Functions

static status_t FLEXCAN_DRV_StartSendData (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id, const uint8_t *mb_data, bool isBlocking)
 
static status_t FLEXCAN_DRV_StartRxMessageBufferData (uint8_t instance, uint8_t mb_idx, flexcan_msgbuff_t *data, bool isBlocking)
 
static status_t FLEXCAN_DRV_StartRxMessageFifoData (uint8_t instance, flexcan_msgbuff_t *data, bool isBlocking)
 
static void FLEXCAN_DRV_CompleteTransfer (uint32_t instance, uint8_t mb_idx)
 
static void FLEXCAN_DRV_CompleteRxMessageFifoData (uint32_t instance)
 
void FLEXCAN_DRV_SetBitrate (uint8_t instance, const flexcan_time_segment_t *bitrate)
 Sets the FlexCAN bit rate. More...
 
void FLEXCAN_DRV_SetBitrateCbt (uint8_t instance, const flexcan_time_segment_t *bitrate)
 Sets the FlexCAN bit rate for FD BRS. More...
 
void FLEXCAN_DRV_GetBitrate (uint8_t instance, flexcan_time_segment_t *bitrate)
 Gets the FlexCAN bit rate. More...
 
void FLEXCAN_DRV_SetRxMaskType (uint8_t instance, flexcan_rx_mask_type_t type)
 Sets the RX masking type. More...
 
void FLEXCAN_DRV_SetRxFifoGlobalMask (uint8_t instance, flexcan_msgbuff_id_type_t id_type, uint32_t mask)
 Sets the FlexCAN RX FIFO global standard or extended mask. More...
 
void FLEXCAN_DRV_SetRxMbGlobalMask (uint8_t instance, flexcan_msgbuff_id_type_t id_type, uint32_t mask)
 Sets the FlexCAN RX MB global standard or extended mask. More...
 
status_t FLEXCAN_DRV_SetRxIndividualMask (uint8_t instance, flexcan_msgbuff_id_type_t id_type, uint8_t mb_idx, uint32_t mask)
 Sets the FlexCAN RX individual standard or extended mask. More...
 
status_t FLEXCAN_DRV_Init (uint32_t instance, flexcan_state_t *state, const flexcan_user_config_t *data)
 Initializes the FlexCAN peripheral. More...
 
status_t FLEXCAN_DRV_ConfigTxMb (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id)
 FlexCAN transmit message buffer field configuration. More...
 
status_t FLEXCAN_DRV_SendBlocking (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id, const uint8_t *mb_data, uint32_t timeout_ms)
 Sends a CAN frame using the specified message buffer, in a blocking manner. More...
 
status_t FLEXCAN_DRV_Send (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id, const uint8_t *mb_data)
 Sends a CAN frame using the specified message buffer. More...
 
status_t FLEXCAN_DRV_ConfigRxMb (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *rx_info, uint32_t msg_id)
 FlexCAN receive message buffer field configuration. More...
 
void FLEXCAN_DRV_ConfigRxFifo (uint8_t instance, flexcan_rx_fifo_id_element_format_t id_format, const flexcan_id_table_t *id_filter_table)
 FlexCAN RX FIFO field configuration. More...
 
status_t FLEXCAN_DRV_ReceiveBlocking (uint8_t instance, uint8_t mb_idx, flexcan_msgbuff_t *data, uint32_t timeout_ms)
 Receives a CAN frame using the specified message buffer, in a blocking manner. More...
 
status_t FLEXCAN_DRV_Receive (uint8_t instance, uint8_t mb_idx, flexcan_msgbuff_t *data)
 Receives a CAN frame using the specified message buffer. More...
 
status_t FLEXCAN_DRV_RxFifoBlocking (uint8_t instance, flexcan_msgbuff_t *data, uint32_t timeout_ms)
 Receives a CAN frame using the message FIFO, in a blocking manner. More...
 
status_t FLEXCAN_DRV_RxFifo (uint8_t instance, flexcan_msgbuff_t *data)
 Receives a CAN frame using the message FIFO. More...
 
status_t FLEXCAN_DRV_Deinit (uint8_t instance)
 Shuts down a FlexCAN instance. More...
 
void FLEXCAN_DRV_IRQHandler (uint8_t instance)
 Interrupt handler for a FlexCAN instance. More...
 
status_t FLEXCAN_DRV_GetTransferStatus (uint32_t instance, uint8_t mb_idx)
 Returns whether the previous FLEXCAN transfer has finished. More...
 
status_t FLEXCAN_DRV_AbortTransfer (uint32_t instance, uint8_t mb_idx)
 Ends a non-blocking FlexCAN transfer early. More...
 
void FLEXCAN_DRV_InstallEventCallback (uint8_t instance, flexcan_callback_t callback, void *callbackParam)
 Installs a callback function for the IRQ handler. More...
 

Variables

static flexcan_state_tg_flexcanStatePtr [CAN_INSTANCE_COUNT] = { NULL }
 

Macro Definition Documentation

#define FLEXCAN_MB_HANDLE_RXFIFO   0U

Definition at line 74 of file flexcan_driver.c.

Function Documentation

static void FLEXCAN_DRV_CompleteRxMessageFifoData ( uint32_t  instance)
static

Definition at line 1253 of file flexcan_driver.c.

static void FLEXCAN_DRV_CompleteTransfer ( uint32_t  instance,
uint8_t  mb_idx 
)
static

Definition at line 1207 of file flexcan_driver.c.

static status_t FLEXCAN_DRV_StartRxMessageBufferData ( uint8_t  instance,
uint8_t  mb_idx,
flexcan_msgbuff_t data,
bool  isBlocking 
)
static

Definition at line 1073 of file flexcan_driver.c.

static status_t FLEXCAN_DRV_StartRxMessageFifoData ( uint8_t  instance,
flexcan_msgbuff_t data,
bool  isBlocking 
)
static

Definition at line 1117 of file flexcan_driver.c.

static status_t FLEXCAN_DRV_StartSendData ( uint8_t  instance,
uint8_t  mb_idx,
const flexcan_data_info_t tx_info,
uint32_t  msg_id,
const uint8_t *  mb_data,
bool  isBlocking 
)
static

Definition at line 1016 of file flexcan_driver.c.

Variable Documentation

flexcan_state_t* g_flexcanStatePtr[CAN_INSTANCE_COUNT] = { NULL }
static

Definition at line 81 of file flexcan_driver.c.