# 1 "../../../mcal/Can_ZX_K14xM/Src/Can.c" # 1 "" 1 # 1 "" 3 # 387 "" 3 # 1 "" 1 # 1 "" 2 # 1 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 26 "../../../mcal/Can_ZX_K14xM/Src/Can.c" # 1 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" 1 # 29 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" # 1 "../../../mcal/Can_ZX_K14xM/Inc/Can_Types.h" 1 # 29 "../../../mcal/Can_ZX_K14xM/Inc/Can_Types.h" # 1 "../../../mcal/Can_ZX_K14xM/Inc/Can_Drv_Types.h" 1 # 29 "../../../mcal/Can_ZX_K14xM/Inc/Can_Drv_Types.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" 1 # 30 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/Platform_Types.h" 1 # 86 "../../../mcal/Base_ZX_K14xM/Inc/Platform_Types.h" typedef unsigned char boolean; typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; typedef unsigned long long uint64; typedef signed char sint8; typedef signed short sint16; typedef signed int sint32; typedef signed long long sint64; typedef unsigned long uint8_least; typedef unsigned long uint16_least; typedef unsigned long uint32_least; typedef signed long sint8_least; typedef signed long sint16_least; typedef signed long sint32_least; typedef float float32; typedef double float64; typedef void *VoidPtr; typedef const void *ConstVoidPtr; # 31 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/Compiler.h" 1 # 31 "../../../mcal/Base_ZX_K14xM/Inc/Compiler.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/Compiler_Cfg.h" 1 # 32 "../../../mcal/Base_ZX_K14xM/Inc/Compiler.h" 2 # 32 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" 2 # 63 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" typedef unsigned char StatusType; # 104 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" typedef uint8 Std_ReturnType; typedef uint8 Std_TransformerClass; typedef uint8 Std_TransformerForwardCode; typedef uint8 Std_MessageTypeType; typedef uint8 Std_MessageResultType; typedef struct { uint16 vendorID; uint16 moduleID; uint8 sw_major_version; uint8 sw_minor_version; uint8 sw_patch_version; } Std_VersionInfoType; typedef struct { uint8 errorCode; Std_TransformerClass transformerClass; } Std_TransformerError; typedef struct { Std_TransformerForwardCode errorCode; Std_TransformerClass transformerClass; } Std_TransformerForward; typedef Std_ReturnType (*Std_ExtractProtocolHeaderFieldsType)(const uint8 *buffer, uint32 bufferLength, Std_MessageTypeType *messageType, Std_MessageResultType *messageResult); # 30 "../../../mcal/Can_ZX_K14xM/Inc/Can_Drv_Types.h" 2 # 1 "../Generated/inc\\Can_Drv_Cfg.h" 1 # 30 "../Generated/inc\\Can_Drv_Cfg.h" # 1 "../Generated/inc/Can_Drv_PBcfg.h" 1 # 31 "../Generated/inc\\Can_Drv_Cfg.h" 2 # 31 "../../../mcal/Can_ZX_K14xM/Inc/Can_Drv_Types.h" 2 # 1 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 1 # 29 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" # 1 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" 1 # 30 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" # 1 "../Generated/inc\\McalLib_Cfg.h" 1 # 31 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" 2 # 273 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" static inline uint32 McalLib_ReadControlReg(void) { uint32 res; __asm("MRS %0,CONTROL" : "=r" (res)); return res; } # 290 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" static inline uint32 McalLib_ReadIpsrReg(void) { uint32 res; __asm("MRS %0,IPSR" : "=r" (res)); return res; } # 305 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" static inline uint32 McalLib_ReadPriMaskReg(void) { uint32 res; __asm("MRS %0,PRIMASK" : "=r" (res)); return res; } # 30 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 # 184 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" typedef enum { MCALLIB_COUNTER_SOFTWARE, MCALLIB_COUNTER_OS, } McalLib_CounterType; typedef struct { uint32 CounterId; uint32 CounterFreq; } McalLib_ConfigType; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 876 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section rodata = ".mcal_config_data" # 211 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 extern const McalLib_ConfigType *const McalLib_PreDefinedConfigPtr[(1U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 892 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section rodata = "" # 216 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 # 230 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" extern void Sys_SystemReset(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section text = ".mcal_code" # 234 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 void McalLib_Init(void); # 254 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" Std_ReturnType McalLib_GetCounterValue(McalLib_CounterType Counter, uint32 *Value); # 270 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" Std_ReturnType McalLib_GetElapsedValue(McalLib_CounterType Counter, uint32 *const CounterValue, uint32 *ElapsedValue); # 282 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" uint32 McalLib_MicroSecToTicks(McalLib_CounterType Counter, uint32 MicroSecond); # 296 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" void McalLib_SetCounterFreq(McalLib_CounterType Counter, uint32 Freq); # 309 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" static inline void McalLib_Assert(const uint8 *File, uint32 Line) { (void)File; (void)Line; for (;;) { } } # 327 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" void McalLib_SuspendAllInterrupts(void); void McalLib_ResumeAllInterrupts(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section text = "" # 339 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 # 32 "../../../mcal/Can_ZX_K14xM/Inc/Can_Drv_Types.h" 2 # 165 "../../../mcal/Can_ZX_K14xM/Inc/Can_Drv_Types.h" typedef enum { CAN_DRV_SUCCESS = 0U, CAN_DRV_ERROR, CAN_DRV_ENTER_BUSY, CAN_DRV_NO_TRANSMIT } Can_Drv_ControllerStatus; typedef enum { CAN_DRV_ID_0 = 0U, CAN_DRV_ID_1 = 1U, CAN_DRV_ID_2 = 2U, CAN_DRV_ID_3 = 3U, CAN_DRV_ID_4 = 4U, CAN_DRV_ID_5 = 5U, CAN_DRV_ID_6 = 6U, CAN_DRV_ID_7 = 7U } Can_Drv_IdType; typedef enum { CAN_DRV_CAN_FD_MB_REGION_0 = 0U, CAN_DRV_CAN_FD_MB_REGION_1, CAN_DRV_CAN_FD_MB_REGION_2, CAN_DRV_CAN_FD_MB_REGION_3 } Can_Drv_FdMbRegionType; typedef enum { CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_A = 0U, CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_B, CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_C, CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_D } Can_Drv_RxAcceptanceType; typedef enum { CAN_DRV_RX_FIFO_FILTERS_8 = 0x0U, CAN_DRV_RX_FIFO_FILTERS_16 = 0x1U, CAN_DRV_RX_FIFO_FILTERS_24 = 0x2U, CAN_DRV_RX_FIFO_FILTERS_32 = 0x3U, CAN_DRV_RX_FIFO_FILTERS_40 = 0x4U, CAN_DRV_RX_FIFO_FILTERS_48 = 0x5U, CAN_DRV_RX_FIFO_FILTERS_56 = 0x6U, CAN_DRV_RX_FIFO_FILTERS_64 = 0x7U, CAN_DRV_RX_FIFO_FILTERS_72 = 0x8U, CAN_DRV_RX_FIFO_FILTERS_80 = 0x9U, CAN_DRV_RX_FIFO_FILTERS_88 = 0xAU, CAN_DRV_RX_FIFO_FILTERS_96 = 0xBU, CAN_DRV_RX_FIFO_FILTERS_104 = 0xCU, CAN_DRV_RX_FIFO_FILTERS_112 = 0xDU, CAN_DRV_RX_FIFO_FILTERS_120 = 0xEU, CAN_DRV_RX_FIFO_FILTERS_128 = 0xFU } Can_Drv_RxFifoFilterNumType; typedef enum { CAN_DRV_RXFIFO_INTERRUPTS = 0U, CAN_DRV_RXFIFO_DMA, CAN_DRV_RXFIFO_POLLING } Can_Drv_RxFifoTransferType; typedef enum { CAN_DRV_OBJECT_PL_8 = 0U, CAN_DRV_OBJECT_PL_16, CAN_DRV_OBJECT_PL_32, CAN_DRV_OBJECT_PL_64 } Can_Drv_FdPayloadLengthType; typedef struct { Can_Drv_FdPayloadLengthType Block0; Can_Drv_FdPayloadLengthType Block1; Can_Drv_FdPayloadLengthType Block2; Can_Drv_FdPayloadLengthType Block3; } Can_Drv_FdPayloadBlockType; typedef enum { CAN_DRV_MODE_NORMAL = 0U, CAN_DRV_MODE_LISTEN_ONLY, CAN_DRV_MODE_LOOPBACK, CAN_DRV_MODE_FREEZE, CAN_DRV_MODE_DISABLE } Can_Drv_ModeType; typedef enum { CAN_DRV_MSG_ID_STD = 0U, CAN_DRV_MSG_ID_EXT } Can_Drv_MsgIdType; typedef enum { CAN_DRV_RX_MASK_GLOBAL = 0U, CAN_DRV_RX_MASK_INDIVIDUAL } Can_Drv_RxMaskType; typedef enum { CAN_DRV_MB_RX_INACTIVE = 0x0, CAN_DRV_MB_RX_FULL = 0x2, CAN_DRV_MB_RX_EMPTY = 0x4, CAN_DRV_MB_RX_OVERRUN = 0x6, CAN_DRV_MB_RX_RANSWER = 0xA, CAN_DRV_MB_TX_INACTIVE = 0x08, CAN_DRV_MB_TX_ABORT = 0x09, CAN_DRV_MB_TX_DATA_REMOTE = 0x0C, CAN_DRV_MB_TX_TANSWER = 0x0E, CAN_DRV_NOT_USED = 0x0F } Can_Drv_MbCodeType; typedef enum { CAN_DRV_INT_BUS_OFF = 0U, CAN_DRV_INT_ERR = 1U, CAN_DRV_INT_TXW = 2U, CAN_DRV_INT_RXW = 3U, CAN_DRV_INT_BUS_OFF_DONE = 4U, CAN_DRV_INT_ERR_FAST = 5U, CAN_DRV_INT_SELF_WAKEUP = 6U, CAN_DRV_INT_RXFIFO_FRAME = 7U, CAN_DRV_INT_RXFIFO_WARNING = 8U, CAN_DRV_INT_RXFIFO_OVERFLOW = 9U, CAN_DRV_INT_HOST_MEM_ERR = 10U, CAN_DRV_INT_MEM_ERR = 11U, CAN_DRV_INT_COR_MEM_ERR = 12U, CAN_DRV_INT_PN_WAKEUP_MATCH = 13U, CAN_DRV_INT_PN_WAKEUP_TIMEOUT = 14U, CAN_DRV_INT_MB_RECEIVE = 15U, CAN_DRV_MB_TRANSMIT = 16U, CAN_DRV_DMA_COMPLETE = 17U, CAN_DRV_DMA_ERROR = 18U, CAN_DRV_INT_ALL = 19U } Can_Drv_IntType; typedef enum { CAN_DRV_STATE_NOT_SYNC = 0U, CAN_DRV_STATE_IDLE = 1U, CAN_DRV_STATE_TX = 2U, CAN_DRV_STATE_RX = 3U, CAN_DRV_STATE_DMA_ERROR = 4U, CAN_DRV_STATE_INVALID = 5U } Can_Drv_ControllerStateType; typedef struct { uint32 PropSeg; uint32 PhaseSeg1; uint32 PhaseSeg2; uint32 PreDivider; uint32 RJumpWidth; } Can_Drv_BitTimingType; typedef struct { boolean IsRemoteFrame; boolean IsExtendedFrame; uint32 Id; } Can_Drv_IdFilterType; typedef struct { Can_Drv_MsgIdType IdType; uint8 DataLen; boolean RemoteFlag; boolean FdEn; uint8 FdPadding; boolean BrsEn; } Can_Drv_MessageInfoType; typedef struct { uint32 Cs; uint32 MsgId; uint8 Data[64]; uint8 DataLen; uint32 TimeStamp; } Can_Drv_MsgBufType; typedef struct { Can_Drv_MsgBufType *MbMessagePtr; boolean IsPolling; boolean RemoteFlag; uint32 TimeStamp; Can_Drv_ControllerStateType State; volatile boolean IsDmaBusy; } Can_Drv_MbHandleType; typedef struct Can_Drv_State { Can_Drv_MbHandleType Mb[(64)]; Can_Drv_RxFifoTransferType TransferType; boolean RxFifoEn; boolean InterEn; uint32 MaxMbNumber; void (*IrqCallback)(uint8 Id, Can_Drv_IntType InterType, uint32 MbIdx, const struct Can_Drv_State *State); void (*ErrCallback)(uint8 Id, Can_Drv_IntType InterType, uint32 Data); uint8 RxFifoDMAChannel; } Can_Drv_StateType; typedef struct { uint32 MbMaxNum; boolean RxFifoEn; Can_Drv_RxFifoFilterNumType RxFifoIdFilterNum; Can_Drv_RxFifoTransferType TransferType; Can_Drv_ModeType Mode; boolean BitRateSwitch; Can_Drv_BitTimingType BitTiming; boolean FdEn; Can_Drv_FdPayloadBlockType Payload; Can_Drv_BitTimingType BitTimingFdData; uint32 CtrlConfig; uint8 RxFifoDMAChannel; void (*IrqCallback)(uint8 Id, Can_Drv_IntType InterType, uint32 MbIdx, const struct Can_Drv_State *State); void (*ErrCallback)(uint8 Id, Can_Drv_IntType InterType, uint32 Data); } Can_Drv_ConfigType; # 30 "../../../mcal/Can_ZX_K14xM/Inc/Can_Types.h" 2 # 1 "../Generated/inc\\Can_Cfg.h" 1 # 29 "../Generated/inc\\Can_Cfg.h" # 1 "../Generated/inc/Can_PBcfg.h" 1 # 30 "../Generated/inc\\Can_Cfg.h" 2 # 306 "../Generated/inc\\Can_Cfg.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = ".mcal_code" # 307 "../Generated/inc\\Can_Cfg.h" 2 extern void Can1_MemNotify(void); extern void Can1_CorrMemNotify(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = "" # 316 "../Generated/inc\\Can_Cfg.h" 2 # 31 "../../../mcal/Can_ZX_K14xM/Inc/Can_Types.h" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc\\Can_GeneralTypes.h" 1 # 28 "../../../mcal/Base_ZX_K14xM/Inc\\Can_GeneralTypes.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/ComStack_Types.h" 1 # 53 "../../../mcal/Base_ZX_K14xM/Inc/ComStack_Types.h" typedef uint32 PduLengthType; typedef uint16 PduIdType; typedef struct { uint8 *SduDataPtr; uint8 *MetaDataPtr; PduLengthType SduLength; } PduInfoType; typedef uint8 IcomConfigIdType; typedef enum { ICOM_SWITCH_E_OK = 0U, ICOM_SWITCH_E_FAILED, } IcomSwitch_ErrorType; # 29 "../../../mcal/Base_ZX_K14xM/Inc\\Can_GeneralTypes.h" 2 # 61 "../../../mcal/Base_ZX_K14xM/Inc\\Can_GeneralTypes.h" typedef uint32 Can_IdType; # 75 "../../../mcal/Base_ZX_K14xM/Inc\\Can_GeneralTypes.h" typedef uint8 Can_HwHandleType; typedef enum { CAN_ERRORSTATE_ACTIVE = 0U, CAN_ERRORSTATE_PASSIVE, CAN_ERRORSTATE_BUSOFF } Can_ErrorStateType; typedef enum { CAN_CS_UNINIT = 0x00U, CAN_CS_STARTED = 0x01U, CAN_CS_STOPPED = 0x02U, CAN_CS_SLEEP = 0x03U } Can_ControllerStateType; typedef enum { CAN_ERROR_BIT_MONITORING1 = 0x01U, CAN_ERROR_BIT_MONITORING0 = 0x02U, CAN_ERROR_BIT = 0x03U, CAN_ERROR_CHECK_ACK_FAILED = 0x04U, CAN_ERROR_ACK_DELIMITER = 0x05U, CAN_ERROR_ARBITRATION_LOST = 0x06U, CAN_ERROR_OVERLOAD = 0x07U, CAN_ERROR_CHECK_FORM_FAILED = 0x08U, CAN_ERROR_CHECK_STUFFING_FAILED = 0x09U, CAN_ERROR_CHECK_CRC_FAILED = 0x0AU, CAN_ERROR_BUS_LOCK = 0x0BU, } Can_ErrorType; typedef struct { PduIdType swPduHandle; uint8 length; Can_IdType id; uint8 *sdu; } Can_PduType; typedef struct { Can_IdType CanId; Can_HwHandleType Hoh; uint8 ControllerId; } Can_HwType; # 32 "../../../mcal/Can_ZX_K14xM/Inc/Can_Types.h" 2 # 152 "../../../mcal/Can_ZX_K14xM/Inc/Can_Types.h" typedef enum { CAN_UNINIT = 0U, CAN_READY } Can_DriverStateType; typedef enum { CAN_BASIC = 0U, CAN_FULL } Can_HandleType; typedef enum { CAN_MSG_ID_STANDARD = 0U, CAN_MSG_ID_EXTENDED, CAN_MSG_ID_MIXED } Can_MessageIdType; typedef enum { CAN_OBJ_RECEIVE = 0U, CAN_OBJ_TRANSMIT, CAN_OBJ_FIFO } Can_HwObjectType; typedef enum { CAN_RX_FIFO_FORMAT_A = 0U, CAN_RX_FIFO_FORMAT_B, CAN_RX_FIFO_FORMAT_C, } Can_RxAcceptanceType; typedef struct { uint32 CanHwFilterCode; uint32 CanHwFilterMask; } Can_HardwareFilterType; typedef struct { const uint8 CanFdPaddingValue; const Can_HandleType CanHandleType; const Can_MessageIdType CanIdMessageType; const Can_HwHandleType CanHwObjectId; const boolean CanHwUsesPolling; const boolean CanTriggerTransmitStatus; const uint8 CanMainFunctionRwPeriodIndex; const uint8 CanHwObjectCount; const uint8 CanPayloadLength; const uint8 CanHwFilterCount; const Can_HardwareFilterType *CanHwFilterPtr; const Can_HwObjectType CanObjectType; const uint8 CanHwBufferIndex; } Can_HwObjConfigType; typedef void (*Can_NotifyFuncType)(void); typedef struct { const Can_RxAcceptanceType CanRxFifoType; const uint32 CanRxFifoGlobalFilterMask; const Can_NotifyFuncType CanOverFlowNotify; const Can_NotifyFuncType CanWarnNotify; const Can_NotifyFuncType CanAvailNotify; } Can_RxFifoConfigType; typedef struct { const uint8 CanPropSeg; const uint8 CanPhaseSeg1; const uint8 CanPhaseSeg2; const uint16 CanPreDivider; const uint8 CanRJumpWidth; } Can_BitTimingType; typedef struct { const uint8 CanControlTxArbitrationStartDelay; const Can_BitTimingType CanBitRate; const boolean CanFdEnable; const Can_BitTimingType CanFdDataBitRate; const boolean CanBitRateSwitch; const boolean CanTransmitCompEnable; const uint8 CanControllerSspOffset; } Can_ControllerBaudrateConfigType; typedef struct { const Can_Drv_ConfigType *CanHwConfigPtr; } Can_HwChannelConfigType; typedef struct { const uint8 CanControllerId; const uint8 CanInterfaceId; const uint8 CanControllerOffset; const boolean CanActiveStatus; const Can_RxFifoConfigType *CanRxFifoConfigPtr; const uint32 CanProcessConfig; const boolean CanErrEnable; const Can_NotifyFuncType CanErrNotify; const Can_NotifyFuncType CanFdErrNotify; const uint16 CanDefaultBaudrateIndex; const uint16 CanBaudrateCount; const Can_ControllerBaudrateConfigType *CanBaudratePtr; const uint8 CanHwObjectRefCount; const Can_HwObjConfigType *const *CanHwObjectPPtr; const Can_HwChannelConfigType *CanHwChannelConfigPtr; const Can_NotifyFuncType CanDmaErrorNotify; Can_Drv_MsgBufType *DmaDstAddr; const uint32 CanEccEnable; const Can_NotifyFuncType CanHostAccessNotify; const Can_NotifyFuncType CanAccessMemoryNotify; const Can_NotifyFuncType CanCorrectableMemoryNotify; const boolean CanErrInjectEnable; } Can_ControllerConfigType; typedef struct { const uint32 CanCoreId; const Can_HwHandleType CanFirstHTHIndex; const uint32 CanControllerCounter; const uint8 *CanControllerIndexPtr; const uint32 CanHardwareCounter; const uint8 *CanHwObjIndexPtr; const Can_HwObjConfigType *CanHwObjConfigPtr; const Can_ControllerConfigType *const *CanControllerConfigPtr; } Can_ConfigType; # 30 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" 2 # 74 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 848 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section rodata = ".mcal_config_data" # 75 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" 2 extern const Can_ConfigType *const Can_PreDefinedConfigPtr[1U]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 864 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section rodata = "" # 78 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" 2 # 98 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = ".mcal_code" # 99 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" 2 extern void Can1_ErrNotifyFunc(void); extern void Can1_HostMemNotify(void); # 110 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_Init(const Can_ConfigType *Config); # 120 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_DeInit(void); # 147 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_GetVersionInfo(Std_VersionInfoType *versioninfo); # 162 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_SetControllerMode(uint8 Controller, Can_ControllerStateType Transition); # 172 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_DisableControllerInterrupts(uint8 Controller); # 182 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_EnableControllerInterrupts(uint8 Controller); # 210 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_GetControllerErrorState(uint8 Controller, Can_ErrorStateType *ErrorStatePtr); # 224 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_GetControllerRxErrorCounter(uint8 Controller, uint8 *RxErrorCounterPtr); # 238 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_GetControllerTxErrorCounter(uint8 Controller, uint8 *TxErrorCounterPtr); # 252 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_GetControllerMode(uint8 Controller, Can_ControllerStateType *ControllerModePtr); # 267 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_Write(Can_HwHandleType Hth, const Can_PduType *PduInfo); # 278 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_AbortHwObjectSend(Can_HwHandleType Hth); # 292 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_ProcessMbCommonInterrupt(uint8 Id, uint8 MbIdx, Can_HwObjectType Type); # 305 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_ProcessRxFiFoDmaInterrupt(uint8 Id, Can_Drv_IntType IntType); # 328 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_ProcessBusOffInterrupt(uint8 Id); # 341 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_ProcessErrorInterrupt(uint8 CtrlOffset, boolean IsErrFast, uint32 Data); # 355 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" void Can_ProcessEccInterrupt(uint8 CtrlOffset, uint32 IntType, uint32 Data); # 368 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_InjectError(uint8 ControllerId); # 380 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" Std_ReturnType Can_ClearInjectError(uint8 ControllerId); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = "" # 388 "../../../mcal/Can_ZX_K14xM/Inc\\Can.h" 2 # 27 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" 1 # 73 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 876 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section rodata = ".mcal_config_data" # 74 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" 2 extern const Can_Drv_ConfigType Can_Drv_CtrlConfig[1U]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 892 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section rodata = "" # 79 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = ".mcal_code" # 87 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" 2 # 101 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_AbortTransfer(uint8 Id, uint8 MbIdx); # 118 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_ConfigRxMb(uint8 Id, uint8 MbIdx, Can_Drv_MsgIdType IdType, uint32 MsgId); # 133 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_Init(uint8 Id, Can_Drv_StateType *CanStatePtr, const Can_Drv_ConfigType *CanConfigPtr); # 147 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_Deinit(uint8 Id); # 159 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_DisableMbInterrupts(uint8 Id); # 174 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_Receive(uint8 Id, uint8 MbIdx, Can_Drv_MsgBufType *DataPtr, boolean IsPolling); # 189 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_RxFIFO(uint8 Id, Can_Drv_MsgBufType *DataPtr); # 200 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_ClearErrorStatus(uint8 Id, uint32 Mask); # 212 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_EnableInterrupts(uint8 Id); # 224 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_DisableInterrupts(uint8 Id); # 237 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" uint32 Can_Drv_GetControllerErrorState(uint8 Id); # 247 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" uint32 Can_Drv_GetControllerRxErrorCounter(uint8 Id); # 257 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" uint32 Can_Drv_GetControllerTxErrorCounter(uint8 Id); # 270 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_GetTransferStatus(uint8 Id, uint8 MbIdx); # 282 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_ManualBusOffRecovery(uint8 Id); # 293 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_WriteMainFunction(uint8 Id, uint8 MbIdx); # 304 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_ReadMainFunction(const uint8 Id, uint8 MbIdx); # 316 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_BusOffMainFunction(uint8 Id); # 328 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_WakeupMainFunction(uint8 Id); # 342 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_ConfigErrorInterrupt(uint8 Id, Can_Drv_IntType IntType, boolean Enable); # 355 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetStdBitTiming(uint8 Id, const Can_Drv_BitTimingType *RatePtr); # 368 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetFdArbBitTiming(uint8 Id, const Can_Drv_BitTimingType *RatePtr); # 381 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetFdDataBitTiming(uint8 Id, const Can_Drv_BitTimingType *RatePtr); # 394 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetRxMaskType(uint8 Id, Can_Drv_RxMaskType MaskType); # 408 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" boolean Can_Drv_GetMbInterruptFlag(uint8 Id, uint8 MbIdx); # 419 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_ClearMbIntStatus(uint8 Id, uint8 MbIdx); # 431 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" boolean Can_Drv_CheckStartedMode(uint8 Id); # 442 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" boolean Can_Drv_CheckStoppedMode(uint8 Id); # 454 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetStartMode(uint8 Id); # 466 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetStopMode(uint8 Id); # 480 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_ConfigRxFifo(uint8 Id, Can_Drv_RxAcceptanceType Element, const Can_Drv_IdFilterType *FilterTablePtr); # 499 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SendData(uint8 Id, uint8 MbIdx, const Can_Drv_MessageInfoType *TxInfoPtr, boolean IsPolling, uint32 MsgId, const uint8 *MsgDataPtr); # 516 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetRxIndividualMask(uint8 Id, Can_Drv_MsgIdType IdType, uint32 MbIdx, uint32 Mask); # 546 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetRxFifoGlobalMask(uint8 Id, uint32 Mask); # 558 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_EnableArbitrationFiledCompare(uint8 Id); # 593 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetRxFifoIndividualMask(uint8 Id, uint32 ElementIdx, uint32 Mask); # 611 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetFdTdc(uint8 Id, boolean Enable, uint8 Offset); # 624 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_SetTxArbitrationDelay(uint8 Id, uint8 Value); # 636 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_EnableSelfWakeup(uint8 Id); # 648 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_DisableSelfWakeup(uint8 Id); # 660 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_InjectCorrectableAddress(uint8 Id); # 672 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_InjectAddress(uint8 Id); # 684 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" Can_Drv_ControllerStatus Can_Drv_ClearInjection(uint8 Id); # 695 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_IntHandler(uint8 Id, uint32 StartMbIdx, uint32 EndMbIdx); # 705 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_BusOffIntHandler(uint8 Id); # 715 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_TxWarnIntHandler(uint8 Id); # 725 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_RxWarnIntHandler(uint8 Id); # 735 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_ErrorIntHandler(uint8 Id); # 745 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_FdErrorIntHandler(uint8 Id); # 755 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_WakeUpIntHandler(uint8 Id); # 765 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" void Can_Drv_EccIntHandler(uint8 Id); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = "" # 769 "../../../mcal/Can_ZX_K14xM/Inc\\Can_Drv.h" 2 # 28 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Det_ZX_K14xM/Inc\\Det.h" 1 # 61 "../../../mcal/Det_ZX_K14xM/Inc\\Det.h" void Det_Init(void); Std_ReturnType Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId); Std_ReturnType Det_ReportRuntimeError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId); Std_ReturnType Det_ReportTransientFault(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId); void Det_Start(void); # 35 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Rte_ZX_K14xM/Inc\\SchM_Can.h" 1 # 59 "../../../mcal/Rte_ZX_K14xM/Inc\\SchM_Can.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Rte_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Rte_MemMap.h" #pragma clang section text = ".mcal_code" # 60 "../../../mcal/Rte_ZX_K14xM/Inc\\SchM_Can.h" 2 extern void SchM_Enter_Can_DisableIntGlobal(void); extern void SchM_Exit_Can_DisableIntGlobal(void); extern void SchM_Enter_Can_DisableModule(void); extern void SchM_Exit_Can_DisableModule(void); extern void SchM_Enter_Can_DisableClock(void); extern void SchM_Exit_Can_DisableClock(void); extern void SchM_Enter_Can_SetStandardBitTiming(void); extern void SchM_Exit_Can_SetStandardBitTiming(void); extern void SchM_Enter_Can_ConfigFdDataBitTiming(void); extern void SchM_Exit_Can_ConfigFdDataBitTiming(void); extern void SchM_Enter_Can_ConfigFdCompensation(void); extern void SchM_Exit_Can_ConfigFdCompensation(void); extern void SchM_Enter_Can_SetTxArbitrationDelay(void); extern void SchM_Exit_Can_SetTxArbitrationDelay(void); extern void SchM_Enter_Can_InterMaskBuff(void); extern void SchM_Exit_Can_InterMaskBuff(void); extern void SchM_Enter_Can_ConfigTimeStamp(void); extern void SchM_Exit_Can_ConfigTimeStamp(void); extern void SchM_Enter_Can_RecoveryBusOff(void); extern void SchM_Exit_Can_RecoveryBusOff(void); extern void SchM_Enter_Can_CanCtl1Reg(void); extern void SchM_Exit_Can_CanCtl1Reg(void); extern void SchM_Enter_Can_CanCtl2Reg(void); extern void SchM_Exit_Can_CanCtl2Reg(void); extern void SchM_Enter_Can_CanMcrReg(void); extern void SchM_Exit_Can_CanMcrReg(void); extern void SchM_Enter_Can_CanMecrReg(void); extern void SchM_Exit_Can_CanMecrReg(void); extern void SchM_Enter_Can_CanRxmgMskReg(void); extern void SchM_Exit_Can_CanRxmgMskReg(void); extern void SchM_Enter_Can_SetFdArbitrationBitTiming(void); extern void SchM_Exit_Can_SetFdArbitrationBitTiming(void); extern void SchM_Enter_Can_SetSelfWakeup(void); extern void SchM_Exit_Can_SetSelfWakeup(void); # 211 "../../../mcal/Rte_ZX_K14xM/Inc\\SchM_Can.h" extern void Can_MainFunction_BusOff(void); extern void Can_MainFunction_Write(void); extern void Can_MainFunction_Read(void); # 231 "../../../mcal/Rte_ZX_K14xM/Inc\\SchM_Can.h" extern void Can_MainFunction_Mode(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Rte_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Rte_MemMap.h" #pragma clang section text = "" # 235 "../../../mcal/Rte_ZX_K14xM/Inc\\SchM_Can.h" 2 # 38 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/CanIf_ZX_K14xM/Inc\\CanIf_Can.h" 1 # 29 "../../../mcal/CanIf_ZX_K14xM/Inc\\CanIf_Can.h" # 1 "../../../mcal/CanIf_ZX_K14xM/Inc/CanIf_Types.h" 1 # 30 "../../../mcal/CanIf_ZX_K14xM/Inc\\CanIf_Can.h" 2 # 1 "../../../mcal/CanIf_ZX_K14xM/Inc/CanIf.h" 1 # 30 "../../../mcal/CanIf_ZX_K14xM/Inc/CanIf.h" # 1 "../../../mcal/EcuM_ZX_K14xM/Inc\\EcuM.h" 1 # 55 "../../../mcal/EcuM_ZX_K14xM/Inc\\EcuM.h" typedef uint32 EcuM_WakeupSourceType; # 66 "../../../mcal/EcuM_ZX_K14xM/Inc\\EcuM.h" extern EcuM_WakeupSourceType EcuMLastWakeupEvent; # 80 "../../../mcal/EcuM_ZX_K14xM/Inc\\EcuM.h" void EcuM_SetWakeupEvent(EcuM_WakeupSourceType sources); void EcuM_ValidateWakeupEvent(EcuM_WakeupSourceType sources); # 96 "../../../mcal/EcuM_ZX_K14xM/Inc\\EcuM.h" void EcuM_CheckWakeup(EcuM_WakeupSourceType WakeupSource); # 31 "../../../mcal/CanIf_ZX_K14xM/Inc/CanIf.h" 2 # 88 "../../../mcal/CanIf_ZX_K14xM/Inc/CanIf.h" Std_ReturnType CanIf_TriggerTransmit(PduIdType TxPduId, PduInfoType * PduInfoPtr); Std_ReturnType CanIf_CheckWakeup(EcuM_WakeupSourceType WakeupSource); # 31 "../../../mcal/CanIf_ZX_K14xM/Inc\\CanIf_Can.h" 2 # 79 "../../../mcal/CanIf_ZX_K14xM/Inc\\CanIf_Can.h" extern void CanIf_ErrorNotification (uint8 ControllerId,Can_ErrorType CanErrorType); extern void CanIf_ControllerErrorStatePassive (uint8 ControllerId,uint16 RxErrorCounter,uint16 TxErrorCounter); extern void CanIf_TxConfirmation(PduIdType CanTxPduId); extern void CanIf_RxIndication( const Can_HwType * Mailbox, const PduInfoType * PduInfoPtr ); extern void CanIf_ControllerBusOff(uint8 ControllerId); extern void CanIf_ControllerModeIndication( uint8 ControllerId, Can_ControllerStateType ControllerMode ); extern void CanIf_CurrentIcomConfiguration( uint8 ControllerId, IcomConfigIdType ConfigurationId, IcomSwitch_ErrorType Error); # 39 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../Generated/inc\\Can_Externals.h" 1 # 53 "../Generated/inc\\Can_Externals.h" extern boolean CAN_LPduRxFunc(uint8 Hrh, Can_IdType CanId, uint8 CanDataLegth, const uint8* CanSduPtr); # 40 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 176 "../../../mcal/Can_ZX_K14xM/Src/Can.c" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1380 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 177 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static uint32 Can_DisableInterruptLevel[(1U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1396 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 184 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1352 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 187 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static uint16 Can_BaudrateIdConfig[(1U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1368 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 195 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1436 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 198 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static Can_ControllerStateType Can_ControllerState[(1U)]; static Can_DriverStateType Can_DriverStatus[1U]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1452 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 210 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1408 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 213 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static const Can_ConfigType *Can_ConfigPtr[1U]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1424 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 220 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1408 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 223 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static const Can_ControllerConfigType *Can_ControllerConfigPtr[(1U)]; static const Can_HwObjConfigType *Can_HwObjectConfigPtr[((Can_HwHandleType)4U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1424 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 236 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1436 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 239 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static Can_Drv_StateType Can_Status0; # 300 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static PduIdType Can_TxPduId[(1U)][((uint8)128U)]; static Can_HwHandleType Can_HwToMapMbIndex[(1U)][((uint8)128U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1452 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 309 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1016 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section rodata = ".mcal_const" # 312 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static Can_Drv_StateType *const Can_State[(1U)] = {&Can_Status0}; # 354 "../../../mcal/Can_ZX_K14xM/Src/Can.c" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1032 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section rodata = "" # 355 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1296 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = ".mcal_bss" # 358 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static boolean Can_InterruptEnableStatus[(1U)]; # 371 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_EccInjectionStatus[(1U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1312 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section bss = "" # 375 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 390 "../../../mcal/Can_ZX_K14xM/Src/Can.c" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = ".mcal_code" # 391 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 static boolean Can_CheckInitialized(uint8 ServiceId); static boolean Can_CheckInit(const Can_ConfigType *Config); static boolean Can_CheckDeinit(void); static boolean Can_CheckController(uint8 ServiceId, uint8 Controller); static boolean Can_CheckGetControllerErrorState(const Can_ErrorStateType *ErrorStatePtr); static boolean Can_CheckGetControllerErrorCounter(uint8 ServiceId, const uint8 *ErrorCounterPtr); static boolean Can_CheckGetControllerMode(const Can_ControllerStateType *ControllerModePtr); static boolean Can_CheckWrite(Can_HwHandleType Hth, const Can_PduType *PduInfo); static boolean Can_CheckAbortHwObjectSend(Can_HwHandleType Hth); static boolean Can_CheckGetVersionInfo(const Std_VersionInfoType *VersionInfo); static boolean Can_CheckControllerBusy(uint32 CoreId); static uint8 Can_SetControllerRxMask(const uint8 ControllerId, const uint8 HwChannel, Can_Drv_RxAcceptanceType *FormatPtr, uint8 Index, const Can_HwObjConfigType *HwConfigPtr); static void Can_SetControllerFifoFilter(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId); static Std_ReturnType Can_SetControllerRxConfig(const uint8 ControllerId, const uint8 HwChannel); static Std_ReturnType Can_InitController(const uint8 ControllerId, const uint8 HwChannel, const Can_ControllerConfigType *ConfigPtr); static void Can_InitAllControllers(uint32 CoreId); static boolean Can_CheckPduInfo(const Can_ControllerConfigType *ConfigPtr, const Can_HwObjConfigType *HwConfigPtr, const Can_PduType *PduInfoPtr); static Std_ReturnType Can_SetControllerToStopMode(const uint8 ControllerId, const uint8 HwChannel); static Std_ReturnType Can_EnterStopMode(uint8 ControllerId); static Std_ReturnType Can_EnterSleepMode(uint8 ControllerId); static Std_ReturnType Can_SetControllerToStartMode(const uint8 ControllerId, const uint8 HwChannel); static Std_ReturnType Can_EnterStartMode(const uint8 ControllerId, const uint8 HwChannel); static Std_ReturnType Can_ControllerModeTransition(uint8 Controller, Can_ControllerStateType Transition); # 487 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ExecutePollingWrite(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId, const Can_HwObjConfigType *HwConfigPtr); static void Can_ParseRxData(const uint8 ControllerId, uint8 HwObjId, Can_HwType *CanHwObjPtr, PduInfoType *CanIfPduInfoPtr, Can_Drv_MsgBufType *MsgBufPtr); static void Can_ProcessRxNormalReceive(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId); static void Can_ProcessRxFifoReceive(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId); static void Can_ExecutePollingRead(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId, const Can_HwObjConfigType *HwConfigPtr); static void Can_ExecutePollingMode(const uint8 ControllerId, const uint8 HwChannel, Can_ControllerStateType *ControllerStatePtr); static void Can_ProcessTxMsgBuffer(const uint8 ControllerId, const Can_HwObjConfigType *HwConfigPtr, uint8 MbIdx); static void Can_ProcessRxMsgBuffer(const uint8 ControllerId, const uint8 HwChannel, const Can_HwObjConfigType *HwConfigPtr, uint8 MbIdx); static void Can_ProcessRxDma(const uint8 ControllerId, const uint8 HwChannel, const Can_HwObjConfigType *HwConfigPtr, Can_Drv_IntType IntType); static void Can_ReportSecurityEvents(uint8 CanInterfaceId, uint32 Data); static Can_Drv_ControllerStatus Can_SendMessage(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId, Can_Drv_MessageInfoType *MessageInfoPtr, uint8 Index, const Can_PduType *PduInfoPtr); static Std_ReturnType Can_SendPdu(const uint8 ControllerId, const uint8 HwChannel, Can_HwHandleType HwObjId, const Can_HwObjConfigType *HwConfigPtr, const Can_PduType *PduPtr); static void Can_ProcessEnableControllerInterrupts(const uint8 ControllerId, const uint8 HwChannel); static void Can_ProcessDisableControllerInterrupts(const uint8 ControllerId, const uint8 HwChannel); static Can_ErrorStateType Can_GetControllerState(const uint8 ControllerId, const uint8 HwChannel); static void Can_CancelTransfer(const uint8 HwChannel, const Can_HwObjConfigType *HwConfigPtr); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = "" # 548 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = ".mcal_code" # 557 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 569 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckInitialized(uint8 ServiceId) { boolean CheckStatus = 0U; uint32 CanCoreId = ((uint32)0U); if (CAN_UNINIT == Can_DriverStatus[CanCoreId]) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), ServiceId, (uint8)0x05U); } else { CheckStatus = 1U; } return CheckStatus; } # 599 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckInit(const Can_ConfigType *Config) { uint32 CanCoreId = ((uint32)0U); boolean CheckStatus = 0U; if (CAN_UNINIT != Can_DriverStatus[CanCoreId]) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x00U, (uint8)0x06U); } else { if (((void *)0) != Config) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x00U, (uint8)0x09U); } else { CheckStatus = 1U; } } return CheckStatus; } # 641 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckDeinit(void) { boolean CheckStatus = 1U; uint32 CanCoreId = ((uint32)0U); uint8 CtrlId = 0U; if (CAN_READY != Can_DriverStatus[CanCoreId]) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x00U, (uint8)0x06U); CheckStatus = 0U; } else { for (CtrlId = 0U; CtrlId < Can_ConfigPtr[CanCoreId]->CanControllerCounter; CtrlId++) { if (((void *)0) != (Can_ConfigPtr[CanCoreId])->CanControllerConfigPtr[CtrlId]) { if (CAN_CS_STARTED == Can_ControllerState[CtrlId]) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x10U, (uint8)0x06U); CheckStatus = 0U; break; } } } } return CheckStatus; } # 686 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckController(uint8 ServiceId, uint8 Controller) { boolean CheckStatus = 1U; uint32 CanCoreId = ((uint32)0U); if (Controller >= Can_ConfigPtr[CanCoreId]->CanControllerCounter) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), ServiceId, (uint8)0x04U); CheckStatus = 0U; } return CheckStatus; } # 714 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckGetControllerErrorState(const Can_ErrorStateType *ErrorStatePtr) { boolean CheckStatus = 1U; if (((void *)0) == ErrorStatePtr) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x11U, (uint8)0x01U); CheckStatus = 0U; } return CheckStatus; } # 742 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckGetControllerErrorCounter(uint8 ServiceId, const uint8 *ErrorCounterPtr) { boolean CheckStatus = 1U; if (((void *)0) == ErrorCounterPtr) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), ServiceId, (uint8)0x01U); CheckStatus = 0U; } return CheckStatus; } # 769 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckGetControllerMode(const Can_ControllerStateType *ControllerModePtr) { boolean CheckStatus = 1U; if (((void *)0) == ControllerModePtr) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x12U, (uint8)0x01U); CheckStatus = 0U; } return CheckStatus; } # 796 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckWrite(Can_HwHandleType Hth, const Can_PduType *PduInfo) { boolean CheckStatus = 1U; uint32 CanCoreId = ((uint32)0U); if ((Hth >= Can_ConfigPtr[CanCoreId]->CanHardwareCounter) || (Hth < Can_ConfigPtr[CanCoreId]->CanFirstHTHIndex)) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x06U, (uint8)0x02U); CheckStatus = 0U; } else if (((void *)0) == PduInfo) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x06U, (uint8)0x01U); CheckStatus = 0U; } else { } return CheckStatus; } # 834 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckAbortHwObjectSend(Can_HwHandleType Hth) { boolean CheckStatus = 1U; uint32 CanCoreId = ((uint32)0U); if ((Hth >= Can_ConfigPtr[CanCoreId]->CanHardwareCounter) || (Hth < Can_ConfigPtr[CanCoreId]->CanFirstHTHIndex)) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x14U, (uint8)0x02U); CheckStatus = 0U; } return CheckStatus; } # 862 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckGetVersionInfo(const Std_VersionInfoType *VersionInfo) { boolean CheckStatus = 1U; if (((void *)0) == VersionInfo) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x07U, (uint8)0x01U); CheckStatus = 0U; } return CheckStatus; } # 928 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckControllerBusy(uint32 CoreId) { boolean CtrlBusy = (boolean)0U; uint8 Index = 0U; for (Index = 0U; Index < Can_ConfigPtr[CoreId]->CanControllerCounter; ++Index) { if (((void *)0) != (Can_ConfigPtr[CoreId])->CanControllerConfigPtr[Index]) { if (CAN_CS_UNINIT != Can_ControllerState[Index]) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x00U, (uint8)0x06U); CtrlBusy = (boolean)1U; break; } } } return CtrlBusy; } # 964 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static uint8 Can_SetControllerRxMask(const uint8 ControllerId, const uint8 HwChannel, Can_Drv_RxAcceptanceType *FormatPtr, uint8 Index, const Can_HwObjConfigType *HwConfigPtr) { uint8 HwFilterCount = 0U; uint32 HwFilterMask = (uint32)0x00000000U; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; Can_RxAcceptanceType TempRxFifoType = ConfigPtr->CanRxFifoConfigPtr->CanRxFifoType; switch (TempRxFifoType) { case CAN_RX_FIFO_FORMAT_A: HwFilterCount = HwConfigPtr->CanHwFilterCount; HwFilterMask = (uint32)0xC0000000U; *FormatPtr = CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_A; if (CAN_MSG_ID_STANDARD != HwConfigPtr->CanIdMessageType) { HwFilterMask |= HwConfigPtr->CanHwFilterPtr[Index].CanHwFilterMask << (1U); } else { HwFilterMask |= HwConfigPtr->CanHwFilterPtr[Index].CanHwFilterMask << (19U); } break; case CAN_RX_FIFO_FORMAT_B: HwFilterCount = HwConfigPtr->CanHwFilterCount * 2U; HwFilterMask = (uint32)0xC0000000U; *FormatPtr = CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_B; if (CAN_MSG_ID_STANDARD != HwConfigPtr->CanIdMessageType) { HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[Index * 2U].CanHwFilterMask >> (15U)) << (16U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 2U) + 1U].CanHwFilterMask >> (15U)); } else { HwFilterMask |= HwConfigPtr->CanHwFilterPtr[Index * 2U].CanHwFilterMask << (19U); HwFilterMask |= HwConfigPtr->CanHwFilterPtr[(Index * 2U) + 1U].CanHwFilterMask << (3U); } break; case CAN_RX_FIFO_FORMAT_C: HwFilterCount = HwConfigPtr->CanHwFilterCount * 4U; *FormatPtr = CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_C; if (CAN_MSG_ID_STANDARD != HwConfigPtr->CanIdMessageType) { HwFilterMask = (HwConfigPtr->CanHwFilterPtr[Index * 4U].CanHwFilterMask >> (21U)) << (24U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 4U) + 1U].CanHwFilterMask >> (21U)) << (16U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 4U) + 2U].CanHwFilterMask >> (21U)) << (8U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 4U) + 3U].CanHwFilterMask >> (21U)); } else { HwFilterMask = (HwConfigPtr->CanHwFilterPtr[Index * 4U].CanHwFilterMask >> (3U)) << (24U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 4U) + 1U].CanHwFilterMask >> (3U)) << (16U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 4U) + 2U].CanHwFilterMask >> (3U)) << (8U); HwFilterMask |= (HwConfigPtr->CanHwFilterPtr[(Index * 4U) + 3U].CanHwFilterMask >> (3U)); } break; default: *FormatPtr = CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_D; break; } (void)Can_Drv_SetRxFifoIndividualMask(HwChannel, Index, HwFilterMask); return HwFilterCount; } # 1066 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_SetControllerFifoFilter(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; uint8 FilterIdx = 0U; uint8 HwFilterCount = 0U; const Can_HwObjConfigType *HwConfigPtr = ConfigPtr->CanHwObjectPPtr[HwObjId]; uint8 FifoFilterRffn = 0U; Can_Drv_RxAcceptanceType ElementFormat = CAN_DRV_RX_FIFO_ACCEPTANCE_FORMAT_A; Can_Drv_IdFilterType RxFifoFilters[128] = {0}; if (((HwConfigPtr->CanHwFilterCount / 4U) + 6U) <= 32U) { FifoFilterRffn = (HwConfigPtr->CanHwFilterCount / 4U) + 6U; } else { FifoFilterRffn = 32U; } for (FilterIdx = 0U; ((FilterIdx < FifoFilterRffn) && (FilterIdx < HwConfigPtr->CanHwFilterCount)); FilterIdx++) { HwFilterCount = Can_SetControllerRxMask(ControllerId, HwChannel, &ElementFormat, FilterIdx, HwConfigPtr); } (void)Can_Drv_SetRxFifoGlobalMask(HwChannel, ConfigPtr->CanRxFifoConfigPtr->CanRxFifoGlobalFilterMask); for (FilterIdx = 0U; FilterIdx < HwFilterCount; FilterIdx++) { RxFifoFilters[FilterIdx].Id = HwConfigPtr->CanHwFilterPtr[FilterIdx].CanHwFilterCode; if (HwConfigPtr->CanIdMessageType != CAN_MSG_ID_STANDARD) { RxFifoFilters[FilterIdx].IsExtendedFrame = (boolean)1U; } else { RxFifoFilters[FilterIdx].IsExtendedFrame = (boolean)0U; } RxFifoFilters[FilterIdx].IsRemoteFrame = (boolean)0U; } (void)Can_Drv_ConfigRxFifo(HwChannel, ElementFormat, &RxFifoFilters[0]); } # 1125 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_SetControllerRxConfig(const uint8 ControllerId, const uint8 HwChannel) { Std_ReturnType Ret; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; uint8 HwObjIndex = 0U; const Can_HwObjConfigType *CanHwObjPtr; Can_Drv_MsgIdType CanMsgIdType; (void)Can_Drv_SetRxMaskType(HwChannel, CAN_DRV_RX_MASK_INDIVIDUAL); for (HwObjIndex = 0U; HwObjIndex < ConfigPtr->CanHwObjectRefCount; HwObjIndex++) { CanHwObjPtr = (const Can_HwObjConfigType *)ConfigPtr->CanHwObjectPPtr[HwObjIndex]; if (CAN_OBJ_RECEIVE == CanHwObjPtr->CanObjectType) { if (CAN_MSG_ID_STANDARD == CanHwObjPtr->CanIdMessageType) { CanMsgIdType = CAN_DRV_MSG_ID_STD; } else { CanMsgIdType = CAN_DRV_MSG_ID_EXT; } (void)Can_Drv_ConfigRxMb(HwChannel, CanHwObjPtr->CanHwBufferIndex, CanMsgIdType, CanHwObjPtr->CanHwFilterPtr->CanHwFilterCode); (void)Can_Drv_SetRxIndividualMask(HwChannel, CanMsgIdType, CanHwObjPtr->CanHwBufferIndex, CanHwObjPtr->CanHwFilterPtr->CanHwFilterMask); } else if (CAN_OBJ_FIFO == CanHwObjPtr->CanObjectType) { Can_SetControllerFifoFilter(ControllerId, HwChannel, HwObjIndex); } else { } } Ret = (CAN_DRV_SUCCESS == Can_Drv_SetStopMode(HwChannel)) ? ((Std_ReturnType)0x00U) : ((Std_ReturnType)0x01U); return Ret; } # 1183 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_InitController(const uint8 ControllerId, const uint8 HwChannel, const Can_ControllerConfigType *ConfigPtr) { Std_ReturnType ReturnVal = (Std_ReturnType)0x01U; Can_ControllerConfigPtr[ControllerId] = ConfigPtr; uint8 HwObjectRefIndex = 0U; uint8 ObjIndex = 0U; uint8 HwBufferCount = 0U; const Can_HwObjConfigType *CanHwObjectPtr = ((void *)0); Can_HwObjectType TempCanObjectType; ReturnVal = (Std_ReturnType)Can_Drv_Init(HwChannel, Can_State[ControllerId], ConfigPtr->CanHwChannelConfigPtr->CanHwConfigPtr); if ((Std_ReturnType)CAN_DRV_SUCCESS == ReturnVal) { (void)Can_Drv_DisableMbInterrupts(HwChannel); Can_InterruptEnableStatus[ControllerId] = (boolean)1U; # 1222 "../../../mcal/Can_ZX_K14xM/Src/Can.c" (void)Can_Drv_SetTxArbitrationDelay( HwChannel, ConfigPtr->CanBaudratePtr[ConfigPtr->CanDefaultBaudrateIndex] .CanControlTxArbitrationStartDelay); for (HwBufferCount = 0U; HwBufferCount < ((uint8)128U); HwBufferCount++) { Can_HwToMapMbIndex[ControllerId][HwBufferCount] = (Can_HwHandleType)0xFF; } for (HwObjectRefIndex = 0U; HwObjectRefIndex < ConfigPtr->CanHwObjectRefCount; HwObjectRefIndex++) { CanHwObjectPtr = ConfigPtr->CanHwObjectPPtr[HwObjectRefIndex]; Can_HwObjectConfigPtr[CanHwObjectPtr->CanHwObjectId] = CanHwObjectPtr; TempCanObjectType = CanHwObjectPtr->CanObjectType; switch (TempCanObjectType) { case CAN_OBJ_RECEIVE: { Can_HwToMapMbIndex[ControllerId][CanHwObjectPtr->CanHwBufferIndex] = CanHwObjectPtr->CanHwObjectId; break; } case CAN_OBJ_TRANSMIT: { for (ObjIndex = 0U; ObjIndex < CanHwObjectPtr->CanHwObjectCount; ObjIndex++) { Can_HwToMapMbIndex[ControllerId][CanHwObjectPtr->CanHwBufferIndex + ObjIndex] = CanHwObjectPtr->CanHwObjectId; } break; } case CAN_OBJ_FIFO: { Can_HwToMapMbIndex[ControllerId][CanHwObjectPtr->CanHwBufferIndex] = CanHwObjectPtr->CanHwObjectId; Can_HwToMapMbIndex[ControllerId][6U] = CanHwObjectPtr->CanHwObjectId; Can_HwToMapMbIndex[ControllerId][7U] = CanHwObjectPtr->CanHwObjectId; break; } default: { break; } } } (void)Can_SetControllerRxConfig(ControllerId, HwChannel); } return (Std_ReturnType)ReturnVal; } # 1288 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_InitAllControllers(uint32 CoreId) { uint8 Index = 0U; Std_ReturnType ReturnVal = (Std_ReturnType)0x01U; const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); for (Index = 0U; Index < Can_ConfigPtr[CoreId]->CanControllerCounter; ++Index) { if (((void *)0) != (Can_ConfigPtr[CoreId])->CanControllerConfigPtr[Index]) { CanCtrlPtr = (Can_ConfigPtr[CoreId])->CanControllerConfigPtr[Index]; if (1U == CanCtrlPtr->CanActiveStatus) { Can_BaudrateIdConfig[Index] = CanCtrlPtr->CanDefaultBaudrateIndex; Can_DisableInterruptLevel[Index] = 0U; Can_EccInjectionStatus[Index] = 0U; ReturnVal = Can_InitController(Index, CanCtrlPtr->CanControllerOffset, CanCtrlPtr); if ((Std_ReturnType)0x00U == ReturnVal) { Can_ControllerState[Index] = CAN_CS_STOPPED; } else { break; } } } } if ((Std_ReturnType)0x01U == ReturnVal) { for (Index = 0U; Index < Can_ConfigPtr[CoreId]->CanControllerCounter; ++Index) { if (((void *)0) != (Can_ConfigPtr[CoreId])->CanControllerConfigPtr[Index]) { Can_ControllerState[Index] = CAN_CS_UNINIT; } } } else { Can_DriverStatus[CoreId] = CAN_READY; (void)Can_DriverStatus[CoreId]; } } # 1353 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static boolean Can_CheckPduInfo(const Can_ControllerConfigType *ConfigPtr, const Can_HwObjConfigType *HwConfigPtr, const Can_PduType *PduInfoPtr) { boolean IsInvalidDlc = (boolean)0U; boolean ReturnVal = (boolean)0U; uint16 BaudrateId = 0U; BaudrateId = Can_BaudrateIdConfig[ConfigPtr->CanControllerId]; if (1U == ConfigPtr->CanBaudratePtr[BaudrateId].CanFdEnable) { if ((PduInfoPtr->length > HwConfigPtr->CanPayloadLength) || ((PduInfoPtr->length > 8U) && (((uint32)0x40000000U) != (PduInfoPtr->id & ((uint32)0x40000000U))))) { IsInvalidDlc = (boolean)1U; } } else { if (PduInfoPtr->length > 8U) { IsInvalidDlc = (boolean)1U; } } if (1U == IsInvalidDlc) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x06U, (uint8)0x03U); } else { if ((((void *)0) == PduInfoPtr->sdu) && (0U == HwConfigPtr->CanTriggerTransmitStatus)) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x06U, (uint8)0x01U); } else { ReturnVal = (boolean)1U; } } return ReturnVal; } # 1417 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_SetControllerToStopMode(const uint8 ControllerId, const uint8 HwChannel) { Std_ReturnType ReturnVal; uint8 HwObjIdx = 0U; const Can_HwObjConfigType *CanHwObjPtr; uint8 IdIndex = 0U; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; if (1U == Can_InterruptEnableStatus[ControllerId]) { (void)Can_Drv_DisableInterrupts(HwChannel); if (1U == ConfigPtr->CanErrEnable) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_ERR, (boolean)0U); } if (0U != (ConfigPtr->CanEccEnable & (uint32)(0x00080000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_HOST_MEM_ERR, (boolean)0U); } if (0U != (ConfigPtr->CanEccEnable & (0x00040000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_MEM_ERR, (boolean)0U); } if (0U != (ConfigPtr->CanEccEnable & (0x00010000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_COR_MEM_ERR, (boolean)0U); } if (0U == ((ConfigPtr->CanProcessConfig) & (0x00000002U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_BUS_OFF, (boolean)0U); } } for (HwObjIdx = 0U; HwObjIdx < ConfigPtr->CanHwObjectRefCount; HwObjIdx++) { CanHwObjPtr = (const Can_HwObjConfigType *)ConfigPtr->CanHwObjectPPtr[HwObjIdx]; if (CAN_OBJ_TRANSMIT == CanHwObjPtr->CanObjectType) { for (IdIndex = 0U; IdIndex < CanHwObjPtr->CanHwObjectCount; IdIndex++) { (void)Can_Drv_AbortTransfer(HwChannel, CanHwObjPtr->CanHwBufferIndex + IdIndex); } } else { (void)Can_Drv_AbortTransfer(HwChannel, CanHwObjPtr->CanHwBufferIndex); } } ReturnVal = (Std_ReturnType)Can_Drv_SetStopMode(HwChannel); return ReturnVal; } # 1490 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_EnterStopMode(uint8 ControllerId) { uint32 CanCoreId = 0U; const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; CanCoreId = ((uint32)0U); CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[ControllerId]); switch (Can_ControllerState[ControllerId]) { case CAN_CS_STARTED: { if ((Std_ReturnType)0x00U == Can_SetControllerToStopMode(CanCtrlPtr->CanControllerId, CanCtrlPtr->CanControllerOffset)) { Can_ControllerState[ControllerId] = CAN_CS_STOPPED; CanIf_ControllerModeIndication(CanCtrlPtr->CanInterfaceId, CAN_CS_STOPPED); ReturnStatus = 0x00U; } break; } case CAN_CS_STOPPED: case CAN_CS_SLEEP: { # 1524 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Can_ControllerState[ControllerId] = CAN_CS_STOPPED; CanIf_ControllerModeIndication(CanCtrlPtr->CanInterfaceId, CAN_CS_STOPPED); ReturnStatus = 0x00U; break; } default: { break; } } return ReturnStatus; } # 1575 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_EnterSleepMode(uint8 ControllerId) { uint32 CanCoreId = 0U; const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; CanCoreId = ((uint32)0U); CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[ControllerId]); if (CAN_CS_STOPPED == Can_ControllerState[ControllerId]) { # 1594 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Can_ControllerState[ControllerId] = CAN_CS_SLEEP; CanIf_ControllerModeIndication(CanCtrlPtr->CanInterfaceId, CAN_CS_SLEEP); ReturnStatus = 0x00U; } else if (CAN_CS_SLEEP == Can_ControllerState[ControllerId]) { ReturnStatus = 0x00U; } else { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x03U, (uint8)0x06U); } return ReturnStatus; } # 1625 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_SetControllerToStartMode(const uint8 ControllerId, const uint8 HwChannel) { Can_Drv_ControllerStatus ReturnVal = (Can_Drv_ControllerStatus)0x01U; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; ReturnVal = Can_Drv_SetStartMode(HwChannel); Can_Drv_ClearErrorStatus(HwChannel, ((uint32)0x003B0006U)); if (1U == Can_InterruptEnableStatus[ControllerId]) { if (1U == ConfigPtr->CanErrEnable) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_ERR, (boolean)1U); } if (0U != (ConfigPtr->CanEccEnable & (0x00080000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_HOST_MEM_ERR, (boolean)1U); } if (0U != (ConfigPtr->CanEccEnable & (0x00040000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_MEM_ERR, (boolean)1U); } if (0U != (ConfigPtr->CanEccEnable & (0x00010000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_COR_MEM_ERR, (boolean)1U); } if (0U == ((ConfigPtr->CanProcessConfig) & (0x00000002U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_BUS_OFF, 1U); } (void)Can_Drv_EnableInterrupts(HwChannel); } if (CAN_DRV_SUCCESS == ReturnVal) { ReturnVal = Can_Drv_ManualBusOffRecovery(HwChannel); } return (Std_ReturnType)ReturnVal; } # 1690 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_EnterStartMode(const uint8 ControllerId, const uint8 HwChannel) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; uint8 HwObjIdx = 0U; const Can_HwObjConfigType *CanHwObjPtr = ((void *)0); Can_Drv_ControllerStatus ReturnVal = CAN_DRV_ERROR; Can_Drv_MsgIdType CanMsgIdType; for (HwObjIdx = 0U; HwObjIdx < ConfigPtr->CanHwObjectRefCount; HwObjIdx++) { CanHwObjPtr = (const Can_HwObjConfigType *)ConfigPtr->CanHwObjectPPtr[HwObjIdx]; if (CAN_MSG_ID_STANDARD == CanHwObjPtr->CanIdMessageType) { CanMsgIdType = CAN_DRV_MSG_ID_STD; } else { CanMsgIdType = CAN_DRV_MSG_ID_EXT; } if (CAN_OBJ_RECEIVE == CanHwObjPtr->CanObjectType) { (void)Can_Drv_ConfigRxMb(HwChannel, CanHwObjPtr->CanHwBufferIndex, CanMsgIdType, CanHwObjPtr->CanHwFilterPtr->CanHwFilterCode); } if (0U == CanHwObjPtr->CanHwUsesPolling) { switch (CanHwObjPtr->CanObjectType) { case CAN_OBJ_RECEIVE: { (void)Can_Drv_Receive(HwChannel, CanHwObjPtr->CanHwBufferIndex, ((void *)0), CanHwObjPtr->CanHwUsesPolling); break; } case CAN_OBJ_FIFO: { if (CAN_DRV_RXFIFO_DMA == ConfigPtr->CanHwChannelConfigPtr->CanHwConfigPtr->TransferType) { (void)Can_Drv_RxFIFO(HwChannel, ConfigPtr->DmaDstAddr); } else { (void)Can_Drv_RxFIFO(HwChannel, ((void *)0)); } break; } default: { break; } } } } if ((Std_ReturnType)0x00U == Can_SetControllerToStartMode(ControllerId, HwChannel)) { ReturnVal = CAN_DRV_SUCCESS; } return (Std_ReturnType)ReturnVal; } # 1773 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_ControllerModeTransition(uint8 Controller, Can_ControllerStateType Transition) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[Controller]); switch (Transition) { case CAN_CS_STARTED: { if (CAN_CS_STOPPED != Can_ControllerState[Controller]) { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x03U, (uint8)0x06U); } else { if ((Std_ReturnType)0x00U == Can_EnterStartMode(CanCtrlPtr->CanControllerId, CanCtrlPtr->CanControllerOffset)) { Can_ControllerState[Controller] = CAN_CS_STARTED; CanIf_ControllerModeIndication(CanCtrlPtr->CanInterfaceId, CAN_CS_STARTED); ReturnStatus = 0x00U; } } break; } case CAN_CS_STOPPED: { ReturnStatus = Can_EnterStopMode(Controller); break; } case CAN_CS_SLEEP: { ReturnStatus = Can_EnterSleepMode(Controller); break; } default: { (void)Det_ReportError((uint16)92U, (uint8)((uint8)0U), (uint8)0x03U, (uint8)0x04U); break; } } return ReturnStatus; } # 1990 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ExecutePollingWrite(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId, const Can_HwObjConfigType *HwConfigPtr) { Can_HwObjectConfigPtr[HwObjId] = HwConfigPtr; uint8 ObjIndx = 0U; Can_Drv_ControllerStatus TempRet; for (ObjIndx = 0U; ObjIndx < HwConfigPtr->CanHwObjectCount; ObjIndx++) { if (CAN_DRV_STATE_TX == ((Can_State[ControllerId])->Mb[HwConfigPtr->CanHwBufferIndex + ObjIndx].State)) { Can_Drv_WriteMainFunction(HwChannel, HwConfigPtr->CanHwBufferIndex + ObjIndx); TempRet = Can_Drv_GetTransferStatus(HwChannel, HwConfigPtr->CanHwBufferIndex + ObjIndx); if (CAN_DRV_SUCCESS == TempRet) { CanIf_TxConfirmation( Can_TxPduId[ControllerId][HwConfigPtr->CanHwBufferIndex + ObjIndx]); } } } } # 2027 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ParseRxData(const uint8 ControllerId, uint8 HwObjId, Can_HwType *CanHwObjPtr, PduInfoType *CanIfPduInfoPtr, Can_Drv_MsgBufType *MsgBufPtr) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; const Can_HwObjConfigType *HwConfigPtr = Can_HwObjectConfigPtr[HwObjId]; CanHwObjPtr->CanId = MsgBufPtr->MsgId; if (((MsgBufPtr->Cs) & ((uint32)0x00200000U)) != 0U) { CanHwObjPtr->CanId |= ((uint32)0x80000000U); } if (CAN_OBJ_RECEIVE == HwConfigPtr->CanObjectType) { if (((uint32)0x06000000U) == (MsgBufPtr->Cs & ((uint32)0x0F000000U))) { (void)Det_ReportRuntimeError((uint16)92U, (uint8)((uint8)0U), (uint8)0x08U, (uint8)0x01U); } } if (CAN_OBJ_FIFO != HwConfigPtr->CanObjectType) { if ((MsgBufPtr->Cs & ((uint32)0x80000000U)) != 0U) { CanHwObjPtr->CanId |= ((uint32)0x40000000U); } } if (1U == CAN_LPduRxFunc((uint8)HwConfigPtr->CanHwObjectId, CanHwObjPtr->CanId, MsgBufPtr->DataLen, &MsgBufPtr->Data[0])) { CanHwObjPtr->Hoh = HwConfigPtr->CanHwObjectId; CanHwObjPtr->ControllerId = ConfigPtr->CanControllerId; CanIfPduInfoPtr->SduLength = MsgBufPtr->DataLen; CanIfPduInfoPtr->SduDataPtr = &MsgBufPtr->Data[0]; CanIf_RxIndication(CanHwObjPtr, CanIfPduInfoPtr); } } # 2084 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessRxNormalReceive(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId) { Can_Drv_MsgBufType CanMsgBuf; Can_HwType HwInfo; PduInfoType PduInfo; const Can_HwObjConfigType *HwConfigPtr = Can_HwObjectConfigPtr[HwObjId]; (void)Can_Drv_Receive(HwChannel, HwConfigPtr->CanHwBufferIndex, &CanMsgBuf, HwConfigPtr->CanHwUsesPolling); Can_Drv_ReadMainFunction(HwChannel, HwConfigPtr->CanHwBufferIndex); if (CAN_DRV_SUCCESS == Can_Drv_GetTransferStatus(HwChannel, HwConfigPtr->CanHwBufferIndex)) { Can_ParseRxData(ControllerId, HwObjId, &HwInfo, &PduInfo, &CanMsgBuf); } } # 2112 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessRxFifoReceive(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; const Can_HwObjConfigType *HwConfigPtr = Can_HwObjectConfigPtr[HwObjId]; Can_Drv_MsgBufType CanMsgBuf; Can_HwType HwInfo; PduInfoType PduInfo; uint8 ObjIdx = 0U; boolean ReturnVal = (boolean)0U; boolean TempRet = (boolean)0U; Can_Drv_ControllerStatus TempStatus; ReturnVal = Can_Drv_GetMbInterruptFlag(HwChannel, (5U)); for (ObjIdx = 0U; ((ObjIdx < ConfigPtr->CanHwObjectRefCount) && (1U == ReturnVal)); ObjIdx++) { TempRet = Can_Drv_GetMbInterruptFlag(HwChannel, (6U)); if (1U == TempRet) { if (((void *)0) != (ConfigPtr->CanRxFifoConfigPtr)->CanWarnNotify) { (void)((ConfigPtr->CanRxFifoConfigPtr)->CanWarnNotify()); } Can_Drv_ClearMbIntStatus(HwChannel, (6U)); } TempRet = Can_Drv_GetMbInterruptFlag(HwChannel, (7U)); if (1U == TempRet) { (void)Det_ReportRuntimeError((uint16)92U, (uint8)((uint8)0U), (uint8)0x08U, (uint8)0x01U); if (((void *)0) != (ConfigPtr->CanRxFifoConfigPtr)->CanOverFlowNotify) { (void)((ConfigPtr->CanRxFifoConfigPtr)->CanOverFlowNotify()); } Can_Drv_ClearMbIntStatus(HwChannel, (7U)); } (void)Can_Drv_RxFIFO(HwChannel, &CanMsgBuf); Can_Drv_ReadMainFunction(HwChannel, HwConfigPtr->CanHwBufferIndex); TempStatus = Can_Drv_GetTransferStatus(HwChannel, HwConfigPtr->CanHwBufferIndex); if (CAN_DRV_SUCCESS == TempStatus) { Can_ParseRxData(ControllerId, HwObjId, &HwInfo, &PduInfo, &CanMsgBuf); if (((void *)0) != (ConfigPtr->CanRxFifoConfigPtr)->CanAvailNotify) { (void)((ConfigPtr->CanRxFifoConfigPtr)->CanAvailNotify()); } } ReturnVal = Can_Drv_GetMbInterruptFlag(HwChannel, (5U)); } (void)ReturnVal; } # 2183 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ExecutePollingRead(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId, const Can_HwObjConfigType *HwConfigPtr) { Can_HwObjectConfigPtr[HwObjId] = HwConfigPtr; if (0U == Can_Drv_CheckStoppedMode(HwChannel)) { if (CAN_OBJ_RECEIVE == HwConfigPtr->CanObjectType) { Can_ProcessRxNormalReceive(ControllerId, HwChannel, HwObjId); } else if (CAN_OBJ_FIFO == HwConfigPtr->CanObjectType) { Can_ProcessRxFifoReceive(ControllerId, HwChannel, HwObjId); } else { } } } # 2216 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ExecutePollingMode(const uint8 ControllerId, const uint8 HwChannel, Can_ControllerStateType *ControllerStatePtr) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; if (CAN_CS_STARTED == *ControllerStatePtr) { if (0U == Can_Drv_CheckStartedMode(HwChannel)) { *ControllerStatePtr = CAN_CS_STOPPED; CanIf_ControllerModeIndication(ConfigPtr->CanInterfaceId, CAN_CS_STOPPED); } } else if (CAN_CS_STOPPED == *ControllerStatePtr) { if (1U == Can_Drv_CheckStartedMode(HwChannel)) { *ControllerStatePtr = CAN_CS_STARTED; CanIf_ControllerModeIndication(ConfigPtr->CanInterfaceId, CAN_CS_STARTED); } } else { } } # 2254 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessTxMsgBuffer(const uint8 ControllerId, const Can_HwObjConfigType *HwConfigPtr, uint8 MbIdx) { Can_HwHandleType HwObjIndex = 0U; HwObjIndex = Can_HwToMapMbIndex[ControllerId][MbIdx]; if ((((Can_HwHandleType)0xFFU) != HwObjIndex) && (0U == HwConfigPtr[HwObjIndex].CanHwUsesPolling)) { if (CAN_OBJ_TRANSMIT == HwConfigPtr[HwObjIndex].CanObjectType) { CanIf_TxConfirmation(Can_TxPduId[ControllerId][MbIdx]); } } } # 2280 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessRxMsgBuffer(const uint8 ControllerId, const uint8 HwChannel, const Can_HwObjConfigType *HwConfigPtr, uint8 MbIdx) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; Can_Drv_MsgBufType *CanMsgBuf = ((void *)0); Can_HwType HwInfo; PduInfoType PduInfo; Can_HwHandleType HwObjIndex = 0U; const Can_HwObjConfigType *HwObjPtr = ((void *)0); Can_HwObjectType TempHwObj; HwObjIndex = Can_HwToMapMbIndex[ControllerId][MbIdx]; if ((((Can_HwHandleType)0xFFU) != HwObjIndex) && (0U == HwConfigPtr[HwObjIndex].CanHwUsesPolling)) { HwObjPtr = &HwConfigPtr[HwObjIndex]; TempHwObj = HwObjPtr->CanObjectType; if (CAN_OBJ_RECEIVE == TempHwObj) { CanMsgBuf = (Can_State[ControllerId])->Mb[HwObjPtr->CanHwBufferIndex].MbMessagePtr; Can_ParseRxData(ControllerId, HwObjPtr->CanHwObjectId, &HwInfo, &PduInfo, CanMsgBuf); (void)Can_Drv_Receive(HwChannel, HwObjPtr->CanHwBufferIndex, ((void *)0), HwObjPtr->CanHwUsesPolling); } else if (CAN_OBJ_FIFO == TempHwObj) { if ((uint8)(7U) == MbIdx) { if (((void *)0) != (ConfigPtr->CanRxFifoConfigPtr)->CanOverFlowNotify) { (void)((ConfigPtr->CanRxFifoConfigPtr)->CanOverFlowNotify()); } } else if ((uint8)(6U) == MbIdx) { if (((void *)0) != (ConfigPtr->CanRxFifoConfigPtr)->CanWarnNotify) { (void)((ConfigPtr->CanRxFifoConfigPtr)->CanWarnNotify()); } } else { CanMsgBuf = (Can_State[ControllerId])->Mb[HwObjPtr->CanHwBufferIndex].MbMessagePtr; Can_ParseRxData(ControllerId, HwObjPtr->CanHwObjectId, &HwInfo, &PduInfo, CanMsgBuf); if (((void *)0) != (ConfigPtr->CanRxFifoConfigPtr)->CanAvailNotify) { (void)((ConfigPtr->CanRxFifoConfigPtr)->CanAvailNotify()); } (void)Can_Drv_RxFIFO(HwChannel, ((void *)0)); } } else { } } } # 2353 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessRxDma(const uint8 ControllerId, const uint8 HwChannel, const Can_HwObjConfigType *HwConfigPtr, Can_Drv_IntType IntType) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; Can_HwType HwInfo; PduInfoType PduInfo; Can_HwHandleType HwObjIndex = 0U; const Can_HwObjConfigType *HwObjPtr; HwObjIndex = Can_HwToMapMbIndex[ControllerId][(0U)]; if ((((Can_HwHandleType)0xFFU) != HwObjIndex) && (0U == HwConfigPtr[HwObjIndex].CanHwUsesPolling)) { HwObjPtr = &HwConfigPtr[HwObjIndex]; if (CAN_DRV_DMA_COMPLETE == IntType) { Can_ParseRxData(ControllerId, HwObjPtr->CanHwObjectId, &HwInfo, &PduInfo, &ConfigPtr->DmaDstAddr[0]); (void)Can_Drv_RxFIFO(HwChannel, ConfigPtr->DmaDstAddr); } else if (CAN_DRV_DMA_ERROR == IntType) { if (((void *)0) != ConfigPtr->CanDmaErrorNotify) { ConfigPtr->CanDmaErrorNotify(); } (void)Can_Drv_RxFIFO(HwChannel, ConfigPtr->DmaDstAddr); } else { } } } # 2403 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ReportSecurityEvents(uint8 CanInterfaceId, uint32 Data) { if ((((uint32)1U << 10U) & Data) != 0U) { CanIf_ErrorNotification(CanInterfaceId, CAN_ERROR_CHECK_STUFFING_FAILED); } if ((((uint32)1U << 11U) & Data) != 0U) { CanIf_ErrorNotification(CanInterfaceId, CAN_ERROR_CHECK_FORM_FAILED); } if ((((uint32)1U << 12U) & Data) != 0U) { CanIf_ErrorNotification(CanInterfaceId, CAN_ERROR_CHECK_CRC_FAILED); } if ((((uint32)1U << 13U) & Data) != 0U) { CanIf_ErrorNotification(CanInterfaceId, CAN_ERROR_CHECK_ACK_FAILED); } if ((((uint32)1U << 14U) & Data) != 0U) { CanIf_ErrorNotification(CanInterfaceId, CAN_ERROR_BIT_MONITORING0); } if ((((uint32)1U << 15U) & Data) != 0U) { CanIf_ErrorNotification(CanInterfaceId, CAN_ERROR_BIT_MONITORING1); } } # 2455 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Can_Drv_ControllerStatus Can_SendMessage(const uint8 ControllerId, const uint8 HwChannel, uint8 HwObjId, Can_Drv_MessageInfoType *MessageInfoPtr, uint8 Index, const Can_PduType *PduInfoPtr) { Can_Drv_ControllerStatus ReturnVal = CAN_DRV_ERROR; const Can_HwObjConfigType *HwConfigPtr = Can_HwObjectConfigPtr[HwObjId]; Can_TxPduId[ControllerId][Index] = PduInfoPtr->swPduHandle; # 2491 "../../../mcal/Can_ZX_K14xM/Src/Can.c" ReturnVal = Can_Drv_SendData(HwChannel, Index, MessageInfoPtr, HwConfigPtr->CanHwUsesPolling, PduInfoPtr->id, PduInfoPtr->sdu); return ReturnVal; } # 2514 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Std_ReturnType Can_SendPdu(const uint8 ControllerId, const uint8 HwChannel, Can_HwHandleType HwObjId, const Can_HwObjConfigType *HwConfigPtr, const Can_PduType *PduPtr) { Can_Drv_MessageInfoType MessageInfo; Can_Drv_ControllerStatus ReturnVal = CAN_DRV_ERROR; uint8 ObjIndx = 0U; Can_HwObjectConfigPtr[HwObjId] = HwConfigPtr; if (CAN_OBJ_TRANSMIT == HwConfigPtr->CanObjectType) { MessageInfo.IdType = ((PduPtr->id & ((uint32)0x80000000U)) != 0U) ? CAN_DRV_MSG_ID_EXT : CAN_DRV_MSG_ID_STD; MessageInfo.DataLen = PduPtr->length; # 2542 "../../../mcal/Can_ZX_K14xM/Src/Can.c" MessageInfo.RemoteFlag = (boolean)0U; do { ReturnVal = Can_Drv_GetTransferStatus(HwChannel, HwConfigPtr->CanHwBufferIndex + ObjIndx); if (CAN_DRV_SUCCESS == ReturnVal) { ReturnVal = Can_SendMessage(ControllerId, HwChannel, (uint8)HwObjId, &MessageInfo, HwConfigPtr->CanHwBufferIndex + ObjIndx, PduPtr); } ObjIndx++; } while ((ObjIndx < HwConfigPtr->CanHwObjectCount) && ((0x02U) == (uint8)ReturnVal)); } if ((CAN_DRV_SUCCESS != ReturnVal) && ((0x02U) != (uint8)ReturnVal)) { ReturnVal = CAN_DRV_ERROR; } return (Std_ReturnType)ReturnVal; } # 2575 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessEnableControllerInterrupts(const uint8 ControllerId, const uint8 HwChannel) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; if (0U == Can_InterruptEnableStatus[ControllerId]) { (void)Can_Drv_EnableInterrupts(HwChannel); if (1U == ConfigPtr->CanErrEnable) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_ERR, (boolean)1U); } if (0U != (ConfigPtr->CanEccEnable & (0x00080000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_HOST_MEM_ERR, (boolean)1U); } if (0U != (ConfigPtr->CanEccEnable & (0x00040000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_MEM_ERR, (boolean)1U); } if (0U != (ConfigPtr->CanEccEnable & (0x00010000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_COR_MEM_ERR, (boolean)1U); } if (0U == ((ConfigPtr->CanProcessConfig) & (0x00000002U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_BUS_OFF, (boolean)1U); } Can_InterruptEnableStatus[ControllerId] = (boolean)1U; } } # 2626 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_ProcessDisableControllerInterrupts(const uint8 ControllerId, const uint8 HwChannel) { const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; if (1U == Can_InterruptEnableStatus[ControllerId]) { (void)Can_Drv_DisableInterrupts(HwChannel); if (1U == ConfigPtr->CanErrEnable) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_ERR, (boolean)0U); } if (0U != (ConfigPtr->CanEccEnable & (0x00080000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_HOST_MEM_ERR, (boolean)0U); } if (0U != (ConfigPtr->CanEccEnable & (0x00040000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_MEM_ERR, (boolean)0U); } if (0U != (ConfigPtr->CanEccEnable & (0x00010000U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_COR_MEM_ERR, (boolean)0U); } if (0U == ((ConfigPtr->CanProcessConfig) & (0x00000002U))) { (void)Can_Drv_ConfigErrorInterrupt(HwChannel, CAN_DRV_INT_BUS_OFF, 0U); } Can_InterruptEnableStatus[ControllerId] = (boolean)0U; } } # 2680 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static Can_ErrorStateType Can_GetControllerState(const uint8 ControllerId, const uint8 HwChannel) { Can_ErrorStateType ReturnVal = CAN_ERRORSTATE_ACTIVE; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; uint32 Temp; uint32 RxCount = 0u; uint32 TxCount = 0u; RxCount = Can_Drv_GetControllerRxErrorCounter(HwChannel); TxCount = Can_Drv_GetControllerTxErrorCounter(HwChannel); Temp = Can_Drv_GetControllerErrorState(HwChannel); if (0x00U == Temp) { ReturnVal = CAN_ERRORSTATE_ACTIVE; } else if (0x01U == Temp) { ReturnVal = CAN_ERRORSTATE_PASSIVE; CanIf_ControllerErrorStatePassive(ConfigPtr->CanInterfaceId, (uint16)RxCount, (uint16)TxCount); } else { ReturnVal = CAN_ERRORSTATE_BUSOFF; } return ReturnVal; } # 2726 "../../../mcal/Can_ZX_K14xM/Src/Can.c" static void Can_CancelTransfer(const uint8 HwChannel, const Can_HwObjConfigType *HwConfigPtr) { uint8 IdIndex = 0; for (IdIndex = 0U; IdIndex < HwConfigPtr->CanHwObjectCount; IdIndex++) { (void)Can_Drv_AbortTransfer(HwChannel, HwConfigPtr->CanHwBufferIndex + IdIndex); } } # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = "" # 2738 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = ".mcal_code" # 2747 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2 # 2757 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_Init(const Can_ConfigType *Config) { uint32 CanCoreId = ((uint32)0U); if (1U == Can_CheckInit(Config)) { Can_ConfigPtr[CanCoreId] = Can_PreDefinedConfigPtr[CanCoreId]; if (0U == Can_CheckControllerBusy(CanCoreId)) { Can_InitAllControllers(CanCoreId); } } } # 2789 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_DeInit(void) { uint8 CtrlId = 0U; uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); if (1U == Can_CheckDeinit()) { Can_DriverStatus[CanCoreId] = CAN_UNINIT; (void)Can_DriverStatus[CanCoreId]; for (CtrlId = 0U; CtrlId < Can_ConfigPtr[CanCoreId]->CanControllerCounter; CtrlId++) { if (((void *)0) != (Can_ConfigPtr[CanCoreId])->CanControllerConfigPtr[CtrlId]) { CanCtrlPtr = (Can_ConfigPtr[CanCoreId])->CanControllerConfigPtr[CtrlId]; if (1U == CanCtrlPtr->CanActiveStatus) { Can_ControllerState[CtrlId] = CAN_CS_UNINIT; (void)Can_Drv_Deinit(CanCtrlPtr->CanControllerOffset); } } } Can_ConfigPtr[CanCoreId] = ((void *)0); } } # 2874 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_GetVersionInfo(Std_VersionInfoType *versioninfo) { if (1U == Can_CheckGetVersionInfo(versioninfo)) { versioninfo->vendorID = (uint16)0x00B3U; versioninfo->moduleID = (uint16)92U; versioninfo->sw_major_version = (uint8)1U; versioninfo->sw_minor_version = (uint8)2U; versioninfo->sw_patch_version = (uint8)0U; } } # 2904 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_SetControllerMode(uint8 Controller, Can_ControllerStateType Transition) { Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; if (1U == Can_CheckInitialized((uint8)0x03U)) { if (1U == Can_CheckController((uint8)0x03U, Controller)) { ReturnStatus = Can_ControllerModeTransition(Controller, Transition); } } return ReturnStatus; } # 2931 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_DisableControllerInterrupts(uint8 Controller) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); if (1U == Can_CheckInitialized((uint8)0x04U)) { if (1U == Can_CheckController((uint8)0x04U, Controller)) { CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[Controller]); SchM_Enter_Can_DisableIntGlobal(); Can_DisableInterruptLevel[Controller] += 1U; SchM_Exit_Can_DisableIntGlobal(); Can_ProcessDisableControllerInterrupts(CanCtrlPtr->CanControllerId, CanCtrlPtr->CanControllerOffset); } } } # 2967 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_EnableControllerInterrupts(uint8 Controller) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); if (1U == Can_CheckInitialized((uint8)0x05U)) { if (1U == Can_CheckController((uint8)0x05U, Controller)) { CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[Controller]); SchM_Enter_Can_DisableIntGlobal(); if (Can_DisableInterruptLevel[Controller] > 0U) { Can_DisableInterruptLevel[Controller] -= 1U; } SchM_Exit_Can_DisableIntGlobal(); if (0U == Can_DisableInterruptLevel[Controller]) { Can_ProcessEnableControllerInterrupts(CanCtrlPtr->CanControllerId, CanCtrlPtr->CanControllerOffset); } } } } # 3066 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_GetControllerErrorState(uint8 Controller, Can_ErrorStateType *ErrorStatePtr) { Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); if (1U == Can_CheckInitialized((uint8)0x11U)) { if (1U == Can_CheckController((uint8)0x11U, Controller)) { if (1U == Can_CheckGetControllerErrorState(ErrorStatePtr)) { CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[Controller]); *ErrorStatePtr = Can_GetControllerState(CanCtrlPtr->CanControllerId, CanCtrlPtr->CanControllerOffset); ReturnStatus = 0x00U; } } } return ReturnStatus; } # 3108 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_GetControllerRxErrorCounter(uint8 Controller, uint8 *RxErrorCounterPtr) { Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); if (1U == Can_CheckInitialized((uint8)0x30U)) { if (1U == Can_CheckController((uint8)0x30U, Controller)) { if (1U == Can_CheckGetControllerErrorCounter( (uint8)0x30U, RxErrorCounterPtr)) { CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[Controller]); *RxErrorCounterPtr = (uint8)Can_Drv_GetControllerRxErrorCounter(CanCtrlPtr->CanControllerOffset); ReturnStatus = (Std_ReturnType)0x00U; } } } return ReturnStatus; } # 3151 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_GetControllerTxErrorCounter(uint8 Controller, uint8 *TxErrorCounterPtr) { Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanCtrlPtr = ((void *)0); if (1U == Can_CheckInitialized((uint8)0x31U)) { if (1U == Can_CheckController((uint8)0x31U, Controller)) { if (1U == Can_CheckGetControllerErrorCounter( (uint8)0x31U, TxErrorCounterPtr)) { CanCtrlPtr = (const Can_ControllerConfigType *)(Can_ConfigPtr[CanCoreId] ->CanControllerConfigPtr[Controller]); *TxErrorCounterPtr = (uint8)Can_Drv_GetControllerTxErrorCounter(CanCtrlPtr->CanControllerOffset); ReturnStatus = (Std_ReturnType)0x00U; } } } return ReturnStatus; } # 3196 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_GetControllerMode(uint8 Controller, Can_ControllerStateType *ControllerModePtr) { Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; if (1U == Can_CheckInitialized((uint8)0x12U)) { if (1U == Can_CheckController((uint8)0x12U, Controller)) { if (1U == Can_CheckGetControllerMode(ControllerModePtr)) { *ControllerModePtr = Can_ControllerState[Controller]; ReturnStatus = (Std_ReturnType)0x00U; } } } return ReturnStatus; } # 3233 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_Write(Can_HwHandleType Hth, const Can_PduType *PduInfo) { Std_ReturnType ReturnStatus = (Std_ReturnType)0x01U; uint32 CanCoreId = ((uint32)0U); const Can_HwObjConfigType *CanHwObjPtr = ((void *)0); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (1U == Can_CheckInitialized((uint8)0x06U)) { if (1U == Can_CheckWrite(Hth, PduInfo)) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanHwObjIndexPtr[Hth]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { CanHwObjPtr = &((Can_ConfigPtr[CanCoreId])->CanHwObjConfigPtr[Hth]); if ((1U == Can_CheckPduInfo(CanObjConfigPtr, CanHwObjPtr, PduInfo)) && (CAN_CS_STARTED == Can_ControllerState[CanControllerId])) { ReturnStatus = Can_SendPdu(CanObjConfigPtr->CanControllerId, CanObjConfigPtr->CanControllerOffset, Hth, CanHwObjPtr, PduInfo); } } } } return ReturnStatus; } # 3278 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_AbortHwObjectSend(Can_HwHandleType Hth) { uint32 CanCoreId = ((uint32)0U); const Can_HwObjConfigType *CanHwObjPtr = ((void *)0); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (1U == Can_CheckInitialized((uint8)0x14U)) { if (1U == Can_CheckAbortHwObjectSend(Hth)) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanHwObjIndexPtr[Hth]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { CanHwObjPtr = &((Can_ConfigPtr[CanCoreId])->CanHwObjConfigPtr[Hth]); Can_CancelTransfer(CanObjConfigPtr->CanControllerOffset, CanHwObjPtr); } } } } # 3318 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_MainFunction_Write(void) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; Can_HwHandleType HwObjIndex = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { HwObjIndex = (Can_ConfigPtr[CanCoreId])->CanFirstHTHIndex; while (HwObjIndex < Can_ConfigPtr[CanCoreId]->CanHardwareCounter) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanHwObjIndexPtr[HwObjIndex]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { if ((1U == CanObjConfigPtr->CanActiveStatus) && (1U == (Can_ConfigPtr[CanCoreId]->CanHwObjConfigPtr[HwObjIndex].CanHwUsesPolling))) { Can_ExecutePollingWrite( CanControllerId, CanObjConfigPtr->CanControllerOffset, HwObjIndex, &(Can_ConfigPtr[CanCoreId]->CanHwObjConfigPtr[HwObjIndex])); } } HwObjIndex++; } } } # 3437 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_MainFunction_Read(void) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; Can_HwHandleType HwObjIndex = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { while (HwObjIndex < Can_ConfigPtr[CanCoreId]->CanFirstHTHIndex) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanHwObjIndexPtr[HwObjIndex]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { if ((1U == CanObjConfigPtr->CanActiveStatus) && (1U == (Can_ConfigPtr[CanCoreId]->CanHwObjConfigPtr[HwObjIndex].CanHwUsesPolling))) { Can_ExecutePollingRead( CanControllerId, CanObjConfigPtr->CanControllerOffset, HwObjIndex, &(Can_ConfigPtr[CanCoreId]->CanHwObjConfigPtr[HwObjIndex])); } } HwObjIndex++; } } } # 3548 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_MainFunction_BusOff(void) { # 3575 "../../../mcal/Can_ZX_K14xM/Src/Can.c" } # 3625 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_MainFunction_Mode(void) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { for (CanControllerId = 0U; CanControllerId < Can_ConfigPtr[CanCoreId]->CanControllerCounter; CanControllerId++) { CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { if ((1U == CanObjConfigPtr->CanActiveStatus)) { Can_ExecutePollingMode(CanObjConfigPtr->CanControllerId, CanObjConfigPtr->CanControllerOffset, &Can_ControllerState[CanControllerId]); } } } } } # 3661 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_ProcessMbCommonInterrupt(uint8 Id, uint8 MbIdx, Can_HwObjectType Type) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanControllerIndexPtr[Id]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { switch (Type) { case CAN_OBJ_TRANSMIT: { Can_ProcessTxMsgBuffer(CanObjConfigPtr->CanControllerId, (Can_ConfigPtr[CanCoreId])->CanHwObjConfigPtr, MbIdx); break; } case CAN_OBJ_RECEIVE: { Can_ProcessRxMsgBuffer(CanObjConfigPtr->CanControllerId, CanObjConfigPtr->CanControllerOffset, (Can_ConfigPtr[CanCoreId])->CanHwObjConfigPtr, MbIdx); break; } case CAN_OBJ_FIFO: { if ((uint8)((uint32)7U) == MbIdx) { (void)Det_ReportRuntimeError((uint16)92U, (uint8)((uint8)0U), (uint8)0x08U, (uint8)0x01U); } Can_ProcessRxMsgBuffer(CanObjConfigPtr->CanControllerId, CanObjConfigPtr->CanControllerOffset, (Can_ConfigPtr[CanCoreId])->CanHwObjConfigPtr, MbIdx); break; } default: { break; } } } } } # 3727 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_ProcessRxFiFoDmaInterrupt(uint8 Id, Can_Drv_IntType IntType) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanControllerIndexPtr[Id]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { if (CAN_DRV_DMA_ERROR == IntType) { (void)Det_ReportRuntimeError((uint16)92U, (uint8)((uint8)0U), (uint8)0x08U, (uint8)0x01U); } Can_ProcessRxDma(CanObjConfigPtr->CanControllerId, CanObjConfigPtr->CanControllerOffset, (Can_ConfigPtr[CanCoreId])->CanHwObjConfigPtr, IntType); } } } # 3803 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_ProcessBusOffInterrupt(uint8 Id) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanControllerIndexPtr[Id]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { if (0x00U == Can_SetControllerToStopMode(CanObjConfigPtr->CanControllerId, CanObjConfigPtr->CanControllerOffset)) { Can_ControllerState[CanControllerId] = CAN_CS_STOPPED; CanIf_ControllerBusOff(CanObjConfigPtr->CanInterfaceId); } } } } # 3838 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_ProcessErrorInterrupt(uint8 CtrlOffset, boolean IsErrFast, uint32 Data) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanControllerIndexPtr[CtrlOffset]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { Can_ReportSecurityEvents(CanObjConfigPtr->CanInterfaceId, Data); if (1U == IsErrFast) { if (((void *)0) != CanObjConfigPtr->CanFdErrNotify) { CanObjConfigPtr->CanFdErrNotify(); } } else { if (((void *)0) != CanObjConfigPtr->CanErrNotify) { CanObjConfigPtr->CanErrNotify(); } } } } } # 3884 "../../../mcal/Can_ZX_K14xM/Src/Can.c" void Can_ProcessEccInterrupt(uint8 CtrlOffset, uint32 IntType, uint32 Data) { uint32 CanCoreId = ((uint32)0U); const Can_ControllerConfigType *CanObjConfigPtr = ((void *)0); uint8 CanControllerId = 0U; (void)Data; if (((void *)0) != (Can_ConfigPtr[CanCoreId])) { CanControllerId = Can_ConfigPtr[CanCoreId]->CanControllerIndexPtr[CtrlOffset]; CanObjConfigPtr = Can_ConfigPtr[CanCoreId]->CanControllerConfigPtr[CanControllerId]; if (((void *)0) != CanObjConfigPtr) { if ((uint32)CAN_DRV_INT_HOST_MEM_ERR == IntType) { if (((void *)0) != CanObjConfigPtr->CanHostAccessNotify) { CanObjConfigPtr->CanHostAccessNotify(); } } else if ((uint32)CAN_DRV_INT_MEM_ERR == IntType) { if (((void *)0) != CanObjConfigPtr->CanAccessMemoryNotify) { CanObjConfigPtr->CanAccessMemoryNotify(); } } else if ((uint32)CAN_DRV_INT_COR_MEM_ERR == IntType) { if (((void *)0) != CanObjConfigPtr->CanCorrectableMemoryNotify) { CanObjConfigPtr->CanCorrectableMemoryNotify(); } } else { } } } } # 3938 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_InjectError(uint8 ControllerId) { Std_ReturnType ReturnVal = 0x01U; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; if (1U == Can_CheckInitialized((uint8)0x15U)) { if (1U == Can_CheckController((uint8)0x15U, ControllerId)) { if (1U == ConfigPtr->CanErrInjectEnable) { ReturnVal = (Std_ReturnType)Can_Drv_InjectCorrectableAddress( ConfigPtr->CanControllerOffset); if (0x00U == ReturnVal) { Can_EccInjectionStatus[ControllerId] = 1U; ReturnVal = (Std_ReturnType)Can_Drv_InjectAddress( ConfigPtr->CanControllerOffset); if(0U != Can_EccInjectionStatus[ControllerId]) { ReturnVal = 0x01U; } } } } } return ReturnVal; } # 3988 "../../../mcal/Can_ZX_K14xM/Src/Can.c" Std_ReturnType Can_ClearInjectError(uint8 ControllerId) { Std_ReturnType ReturnVal = 0x01U; const Can_ControllerConfigType *ConfigPtr = Can_ControllerConfigPtr[ControllerId]; if (1U == Can_CheckInitialized((uint8)0x16U)) { if (1U == Can_CheckController((uint8)0x16U, ControllerId)) { if (1U == ConfigPtr->CanErrInjectEnable) { if(1U == Can_EccInjectionStatus[ControllerId]) { ReturnVal = (Std_ReturnType)Can_Drv_ClearInjection( ConfigPtr->CanControllerOffset); } } if(0x00U == ReturnVal) { Can_EccInjectionStatus[ControllerId] = 0U; } } } return ReturnVal; } # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Can_MemMap.h" #pragma clang section text = "" # 4024 "../../../mcal/Can_ZX_K14xM/Src/Can.c" 2