Was confused by a linker problem to discover the API is strange. Consider the following function list:
FLEXCAN_Init
FLEXCAN_Deinit
FLEXCAN_GetDefaultConfig
FLEXCAN_SetTimingConfig
FlEXCAN_SetRxMbGlobalMask
FlEXCAN_SetRxFifoGlobalMask
FlEXCAN_SetRxIndividualMask
FLEXCAN_SetTxMbConfig
FLEXCAN_SetRxMbConfig
FlEXCAN_SetRxFifoConfig
FLEXCAN_GetStatusFlags
FLEXCAN_ClearStatusFlags
FlEXCAN_GetBusErrCount
FLEXCAN_GetMbStatusFlags
FLEXCAN_ClearMbStatusFlags
FLEXCAN_EnableInterrupts
FLEXCAN_DisableInterrupts
FLEXCAN_EnableMbInterrupts
FLEXCAN_DisableMbInterrupts
FLEXCAN_Enable
FLEXCAN_WriteTxMb
FLEXCAN_ReadRxMb
FlEXCAN_ReadRxFifo
FlEXCAN_TransferSendBlocking
FlEXCAN_TransferReceiveBlocking
FlEXCAN_TransferReceiveFifoBlocking
FLEXCAN_TransferCreateHandle
FLEXCAN_TransferSendNonBlocking
FLEXCAN_TransferReceiveNonBlocking
FLEXCAN_TransferReceiveFifoNonBlocking
FLEXCAN_TransferAbortSend
FLEXCAN_TransferAbortReceive
FLEXCAN_TransferAbortReceiveFifo
FLEXCAN_TransferHandleIRQ
Some have the "FLEXCAN_" prefix while many have the "FlEXCAN_" prefix. Why the lowercase "L"?
It appears this way in the documentation as well: Kinetis SDK 2.0 API Reference Manual: FlexCAN Driver