29#define CAN_SRAMCAN1 0u
30#define CAN_SRAMCAN2 1u
38#define CAN_CLOCK_DIV1 0x00u
39#define CAN_CLOCK_DIV2 0x01u
40#define CAN_CLOCK_DIV4 0x02u
41#define CAN_CLOCK_DIV6 0x03u
42#define CAN_CLOCK_DIV8 0x04u
43#define CAN_CLOCK_DIV10 0x05u
44#define CAN_CLOCK_DIV12 0x06u
45#define CAN_CLOCK_DIV14 0x07u
46#define CAN_CLOCK_DIV16 0x08u
47#define CAN_CLOCK_DIV18 0x09u
48#define CAN_CLOCK_DIV20 0x0Au
49#define CAN_CLOCK_DIV22 0x0Bu
50#define CAN_CLOCK_DIV24 0x0Cu
51#define CAN_CLOCK_DIV26 0x0Du
52#define CAN_CLOCK_DIV28 0x0Eu
53#define CAN_CLOCK_DIV30 0x0Fu
61#define CAN_FRAME_CLASSIC 0u
62#define CAN_FRAME_FD 1u
70#define CAN_TX_FIFO_OPERATION 0u
71#define CAN_TX_QUEUE_OPERATION 1u
79#define CAN_MODE_NORMAL 0u
80#define CAN_MODE_RESTRICTED_OPERATION 1u
81#define CAN_MODE_BUS_MONITORING 2u
82#define CAN_MODE_INTERNAL_LOOPBACK 3u
83#define CAN_MODE_EXTERNAL_LOOPBACK 4u
91#define CAN_TX_BUFFER0 1u
92#define CAN_TX_BUFFER1 2u
93#define CAN_TX_BUFFER2 4u
101#define CAN_INTERRUPT_LINE0 0u
102#define CAN_INTERRUPT_LINE1 1u
110#define CAN_IT_GROUP_RX_FIFO0 0u
112#define CAN_IT_GROUP_RX_FIFO1 1u
114#define CAN_IT_GROUP_SMSG 2u
116#define CAN_IT_GROUP_TX_FIFO_ERROR 3u
119#define CAN_IT_GROUP_MISC 4u
121#define CAN_IT_GROUP_BIT_LINE_ERROR 5u
123#define CAN_IT_GROUP_PROTOCOL_ERROR 6u
134#define CAN_IT_LIST_RX_FIFO0 0x00000007
135#define CAN_IT_LIST_RX_FIFO1 0x00000038
136#define CAN_IT_LIST_SMSG 0x000001C0
137#define CAN_IT_LIST_TX_FIFO_ERROR 0x00001E00
138#define CAN_IT_LIST_MISC 0x0000E000
139#define CAN_IT_LIST_BIT_LINE_ERROR 0x00030000
140#define CAN_IT_LIST_PROTOCOL_ERROR 0x00FC0000
148#define CAN_IT_RX_FIFO0_MESSAGE_LOST ( (uint32)1u << 0u )
149#define CAN_IT_RX_FIFO0_FULL ( (uint32)1u << 1u )
150#define CAN_IT_RX_FIFO0_NEW_MESSAGE ( (uint32)1u << 2u )
158#define CAN_IT_RX_FIFO1_MESSAGE_LOST ( (uint32)1u << 3u )
159#define CAN_IT_RX_FIFO1_FULL ( (uint32)1u << 4u )
160#define CAN_IT_RX_FIFO1_NEW_MESSAGE ( (uint32)1u << 5u )
168#define CAN_IT_RX_HIGH_PRIORITY_MSG ( (uint32)1u << 6u )
176#define CAN_IT_TX_COMPLETE ( (uint32)1u << 7u )
177#define CAN_IT_TX_ABORT_COMPLETE ( (uint32)1u << 8u )
178#define CAN_IT_TX_FIFO_EMPTY ( (uint32)1u << 9u )
186#define CAN_IT_TX_EVT_FIFO_NEW_DATA ( (uint32)1u << 10 )
187#define CAN_IT_TX_EVT_FIFO_FULL ( (uint32)1u << 11 )
188#define CAN_IT_TX_EVT_FIFO_ELT_LOST ( (uint32)1u << 12 )
196#define CAN_IT_TIMESTAMP_WRAPAROUND ( (uint32)1u << 13u )
197#define CAN_IT_TIMEOUT_OCCURRED ( (uint32)1u << 15u )
205#define CAN_IT_RAM_ACCESS_FAILURE ( (uint32)1u << 14u )
206#define CAN_IT_ERROR_LOGGING_OVERFLOW ( (uint32)1u << 16u )
207#define CAN_IT_RAM_WATCHDOG ( (uint32)1u << 20u )
208#define CAN_IT_ARB_PROTOCOL_ERROR ( (uint32)1u << 21u )
209#define CAN_IT_DATA_PROTOCOL_ERROR ( (uint32)1u << 22u )
210#define CAN_IT_RESERVED_ADDRESS_ACCESS ( (uint32)1u << 23u )
218#define CAN_IT_ERROR_PASSIVE ( (uint32)1u << 17u )
219#define CAN_IT_ERROR_WARNING ( (uint32)1u << 18u )
220#define CAN_IT_BUS_OFF ( (uint32)1u << 19u )
228#define CAN_FILTER_TYPE_RANGE 0x00u
229#define CAN_FILTER_TYPE_DUAL 0x01u
230#define CAN_FILTER_TYPE_CLASSIC 0x02u
238#define CAN_HOH_TYPE_RECEIVE 0u
239#define CAN_HOH_TYPE_TRANSMIT 1u
247#define CAN_OBJECT_PL_8 0x08u
248#define CAN_OBJECT_PL_12 0x09u
249#define CAN_OBJECT_PL_16 0x0Au
250#define CAN_OBJECT_PL_20 0x0Bu
251#define CAN_OBJECT_PL_24 0x0Cu
252#define CAN_OBJECT_PL_32 0x0Du
253#define CAN_OBJECT_PL_48 0x0Eu
254#define CAN_OBJECT_PL_64 0x0Fu
262#define CAN_ID_STANDARD 0u
263#define CAN_ID_EXTENDED 1u
264#define CAN_ID_MIXED 2u
272#define CAN_FULL 0x00u
273#define CAN_BASIC 0x01u
281#define CAN_RX_FIFO0 1u
282#define CAN_RX_FIFO1 2u
290#define CAN_OBJ_HTH_TX00 0u
291#define CAN_OBJ_HRH_RX00 1u
292#define CAN_OBJ_HRH_RX01 2u
293#define CAN_OBJ_HTH_TX10 3u
294#define CAN_OBJ_HRH_RX10 4u
295#define CAN_OBJ_HRH_RX11 5u
static Can_HwUnit HwUnit
Variable for the initial value of the port configuration array.
Definition Can.c:45
Std_ReturnType Can_Arch_GetEgressTimeStamp(Can_HwUnit *HwUnit, PduIdType TxPduId, Can_HwHandleType Hth, Can_TimeStampType *timeStampPtr)
Can low level Get Egress TimeStamp
Definition Can_Arch.c:1002
void Can_Arch_EnableEgressTimeStamp(Can_HwUnit *HwUnit, Can_HwHandleType Hth)
Can low level Enable Egress TimeStamp
Definition Can_Arch.c:982
Std_ReturnType Can_Arch_GetControllerMode(Can_HwUnit *HwUnit, uint8 Controller, Can_ControllerStateType *ControllerModePtr)
Can low level Get Controller Mode
Definition Can_Arch.c:887
Std_ReturnType Can_Arch_GetCurrentTime(Can_HwUnit *HwUnit, uint8 ControllerId, Can_TimeStampType *timeStampPtr)
Can low level Get Current Time
Definition Can_Arch.c:962
Std_ReturnType Can_Arch_GetControllerRxErrorCounter(Can_HwUnit *HwUnit, uint8 ControllerId, uint8 *RxErrorCounterPtr)
Can low level Get Controller Rx Error Counter
Definition Can_Arch.c:909
void Can_Arch_IsrMainHandler(Can_HwUnit *HwUnit, uint8 Controller)
Can Interrupt Handler
Definition Can_Arch.c:1162
Std_ReturnType Can_Arch_GetControllerTxErrorCounter(Can_HwUnit *HwUnit, uint8 ControllerId, uint8 *TxErrorCounterPtr)
Can low level Get Controller Tx Error Counter
Definition Can_Arch.c:937
Std_ReturnType Can_Arch_CheckWakeup(Can_HwUnit *HwUnit, uint8 Controller)
Can low level wakeup check
Definition Can_Arch.c:820
void Can_Arch_EnableControllerInterrupts(Can_HwUnit *HwUnit, uint8 Controller)
Can low level Enable Controller Interrupts
Definition Can_Arch.c:756
Std_ReturnType Can_Arch_Write(Can_HwUnit *HwUnit, Can_HwHandleType Hth, const Can_PduType *PduInfo)
Can low level Write
Definition Can_Arch.c:1056
void Can_Arch_DeInit(Can_HwUnit *HwUnit, uint8 Controller)
Can low level Deinitialization
Definition Can_Arch.c:560
Std_ReturnType Can_Arch_SetBaudrate(Can_HwUnit *HwUnit, uint8 Controller, uint16 BaudRateConfigID)
Can low level Set Baudrate
Definition Can_Arch.c:614
void Can_Arch_DisableControllerInterrupts(Can_HwUnit *HwUnit, uint8 Controller)
Can low level Disable Controller Interrupts
Definition Can_Arch.c:790
void Can_Arch_Init(Can_HwUnit *HwUnit, const Can_ConfigType *Config, uint8 Controller)
Can low level Initialization
Definition Can_Arch.c:426
Std_ReturnType Can_Arch_GetIngressTimeStamp(Can_HwUnit *HwUnit, Can_HwHandleType Hrh, Can_TimeStampType *timeStampPtr)
Can low level Get Ingress TimeStamp
Definition Can_Arch.c:1025
Std_ReturnType Can_Arch_SetControllerMode(Can_HwUnit *HwUnit, uint8 Controller, Can_ControllerStateType Transition)
Can low level Set Controller Mode
Definition Can_Arch.c:653
Std_ReturnType Can_Arch_GetControllerErrorState(Can_HwUnit *HwUnit, uint8 ControllerId, Can_ErrorStateType *ErrorStatePtr)
Can low level Get Controller Error State
Definition Can_Arch.c:844
struct _Can_TimeStampType Can_TimeStampType
CAN Controller Tiemstamp
struct _Can_PduType Can_PduType
This type unites PduId (swPduHandle), SduLength (length), SduData (sdu), and Can Id (id) for any CAN ...
enum _Can_ControllerStateType Can_ControllerStateType
States that are used by the several ControllerMode functions.
enum _Can_ErrorStateType Can_ErrorStateType
Error states of a CAN controller.
uint16 Can_HwHandleType
Represents the hardware object handles of a CAN hardware unit. For CAN hardware units with more than ...
Definition Can_GeneralTypes.h:26
struct _Can_HwUnit Can_HwUnit
Hardware control unit structure
struct _Can_ConfigType Can_ConfigType
Hardware unit configuration structure
uint8 PduIdType
This type is used within the entire AUTOSAR Com Stack except for bus drivers.
Definition ComStack_Types.h:28
uint8 Std_ReturnType
This type can be used as standard API return type which is shared between the RTE and the BSW modules...
Definition Std_Types.h:22