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