X-Git-Url: https://rtime.felk.cvut.cz/gitweb/arc.git/blobdiff_plain/07bbcb79799c461e4dc58be060a0c3e01f466c97..670aeff4a2ae2f7b626e1febbc86528c0fae0959:/boards/ti_tms570ls/examples/tms570_hdk_can/config/CanIf_Cfg.c diff --git a/boards/ti_tms570ls/examples/tms570_hdk_can/config/CanIf_Cfg.c b/boards/ti_tms570ls/examples/tms570_hdk_can/config/CanIf_Cfg.c new file mode 100644 index 00000000..cfcebb83 --- /dev/null +++ b/boards/ti_tms570ls/examples/tms570_hdk_can/config/CanIf_Cfg.c @@ -0,0 +1,210 @@ +/* +* Configuration of module: CanIf (CanIf_Cfg.c) +* +* Created by: ArcCore +* Copyright: +* +* Configured for (MCU): TMS570 +* +* Module vendor: ArcCore +* Generator version: 2.0.6 +* +* Generated by Arctic Studio (http://arccore.com) +*/ + + + +#include "CanIf.h" +#if defined(USE_CANTP) +#include "CanTp.h" +#include "CanTp_Cbk.h" +#endif +#if defined(USE_J1939TP) +#include "J1939Tp.h" +#include "J1939Tp_Cbk.h" +#endif +#if defined(USE_PDUR) +#include "PduR.h" +#endif +#if defined(USE_CANNM) +#include "CanNm_Cbk.h" +#endif +#include + + +// Imported structs from Can_Lcfg.c +extern const Can_ControllerConfigType CanControllerConfigData[]; +extern const Can_ConfigSetType CanConfigSetData; + + + + +// Contains the mapping from CanIf-specific Channels to Can Controllers +const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = { + DCAN1, // Channel_1 + DCAN2 // Channel_2 +}; + +const uint8 CanIf_Arc_ChannelDefaultConfIndex[CANIF_CHANNEL_CNT] = { + CANIF_Channel_1_CONFIG_0, + CANIF_Channel_2_CONFIG_0 +}; + +// Container that gets slammed into CanIf_InitController() +// Initialization of all controllers +// Multiplicity 1..* +const CanIf_ControllerConfigType CanIfControllerConfig[] = { + // This is the ConfigurationIndex in CanIf_InitController() + { + .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP, + .CanIfControllerIdRef = CANIF_Channel_1, + .CanIfDriverNameRef = "DCAN1", + .CanIfInitControllerRef = &CanControllerConfigData[0], + }, + { + .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP, + .CanIfControllerIdRef = CANIF_Channel_2, + .CanIfDriverNameRef = "DCAN2", + .CanIfInitControllerRef = &CanControllerConfigData[1], + } +}; + +// Function callbacks for higher layers +const CanIf_DispatchConfigType CanIfDispatchConfig = +{ + .CanIfBusOffNotification = NULL, + .CanIfWakeUpNotification = NULL, // Not used + .CanIfWakeupValidNotification = NULL, // Not used + .CanIfErrorNotificaton = NULL, +}; + + +// Data for init configuration CanIfInitConfiguration + +const CanIf_HthConfigType CanIfHthConfigData_Hoh[] = +{ + { + .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC, + .CanIfCanControllerIdRef = CANIF_Channel_1, // Transmit: DCAN1 + .CanIfHthIdSymRef = TxHwObject, + .CanIf_Arc_EOL = 1, + }, +}; + +const CanIf_HrhConfigType CanIfHrhConfigData_Hoh[] = +{ + { + .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC, + .CanIfSoftwareFilterHrh = TRUE, + .CanIfCanControllerHrhIdRef = CANIF_Channel_2, // Receive: DCAN2 + .CanIfHrhIdSymRef = RxHwObject, + .CanIf_Arc_EOL = 1, + }, +}; + + +const CanIf_InitHohConfigType CanIfHohConfigData[] = { + + { + .CanConfigSet = &CanConfigSetData, + .CanIfHrhConfig = CanIfHrhConfigData_Hoh, + .CanIfHthConfig = CanIfHthConfigData_Hoh, + .CanIf_Arc_EOL = 1, + }, +}; + +const CanIf_TxPduConfigType CanIfTxPduConfigData[] = { + { + .CanIfTxPduId = PDUR_REVERSE_PDU_ID_TX_PDU, // Transmit I-PDU; Reverse = PDUR -----> CANIF + .CanIfCanTxPduIdCanId = 1, // 2 + .CanIfCanTxPduIdDlc = 8, + .CanIfCanTxPduType = CANIF_PDU_TYPE_STATIC, +#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON ) + .CanIfReadTxPduNotifyStatus = false, +#endif + .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_11, // 11 == BASIC CAN + .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation, + .CanIfCanTxPduHthRef = &CanIfHthConfigData_Hoh[0], + .PduIdRef = NULL, + }, + { + .CanIfTxPduId = PDUR_REVERSE_PDU_ID_FreqInd, + .CanIfCanTxPduIdCanId = 256, // 258 + .CanIfCanTxPduIdDlc = 8, + .CanIfCanTxPduType = CANIF_PDU_TYPE_STATIC, +#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON ) + .CanIfReadTxPduNotifyStatus = false, +#endif + .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_11, + .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation, + .CanIfCanTxPduHthRef = &CanIfHthConfigData_Hoh[0], + .PduIdRef = NULL, + }, +}; + +const CanIf_RxPduConfigType CanIfRxPduConfigData[] = { + { + .CanIfCanRxPduId = PDUR_PDU_ID_RX_PDU, // Receive I-PDU; CANIF -----> PDUR + .CanIfCanRxPduCanId = 2, // 1 + .CanIfCanRxPduDlc = 8, +#if ( CANIF_CANPDUID_READDATA_API == STD_ON ) + .CanIfReadRxPduData = false, +#endif +#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON ) + .CanIfReadRxPduNotifyStatus = false, +#endif + .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR, // upper layer + .CanIfCanRxPduHrhRef = &CanIfHrhConfigData_Hoh[1], // [0] ?? + .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_11, + .CanIfUserRxIndication = NULL, + .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, + .CanIfCanRxPduCanIdMask = 0xFFF, + .PduIdRef = NULL, + }, + { + .CanIfCanRxPduId = PDUR_PDU_ID_FreqReq, + .CanIfCanRxPduCanId = 258, // 256 + .CanIfCanRxPduDlc = 8, +#if ( CANIF_CANPDUID_READDATA_API == STD_ON ) + .CanIfReadRxPduData = false, +#endif +#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON ) + .CanIfReadRxPduNotifyStatus = false, +#endif + .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR, + .CanIfCanRxPduHrhRef = &CanIfHrhConfigData_Hoh[1], // [0] ?? + .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_11, + .CanIfUserRxIndication = NULL, + .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK, + .CanIfCanRxPduCanIdMask = 0xFFF, + .PduIdRef = NULL, + }, +}; + +// This container contains the init parameters of the CAN +// Multiplicity 1..* +const CanIf_InitConfigType CanIfInitConfig = +{ + .CanIfConfigSet = 0, // Not used + .CanIfNumberOfCanRxPduIds = 2, // 1 + .CanIfNumberOfCanTXPduIds = 2, // 1 + .CanIfNumberOfDynamicCanTXPduIds = 0, // Not used + + // Containers + .CanIfHohConfigPtr = CanIfHohConfigData, + .CanIfRxPduConfigPtr = CanIfRxPduConfigData, + .CanIfTxPduConfigPtr = CanIfTxPduConfigData, +}; + + // This container includes all necessary configuration sub-containers +// according the CAN Interface configuration structure. +CanIf_ConfigType CanIf_Config = +{ + .ControllerConfig = CanIfControllerConfig, + .DispatchConfig = &CanIfDispatchConfig, + .InitConfig = &CanIfInitConfig, + .TransceiverConfig = NULL, // Not used + .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap, + .Arc_ChannelDefaultConfIndex = CanIf_Arc_ChannelDefaultConfIndex, +}; +