]> rtime.felk.cvut.cz Git - arc.git/blob - boards/ti_tms570ls/examples/tms570_hdk_can/config/CanIf_Cfg.c
Added DCAN2 for the CAN communication example (not working)
[arc.git] / boards / ti_tms570ls / examples / tms570_hdk_can / config / CanIf_Cfg.c
1 /*\r
2 * Configuration of module: CanIf (CanIf_Cfg.c)\r
3 *\r
4 * Created by:              ArcCore\r
5 * Copyright:               \r
6 *\r
7 * Configured for (MCU):    TMS570\r
8 *\r
9 * Module vendor:           ArcCore\r
10 * Generator version:       2.0.6\r
11 *\r
12 * Generated by Arctic Studio (http://arccore.com) \r
13 */\r
14 \r
15 \r
16  \r
17 #include "CanIf.h"\r
18 #if defined(USE_CANTP)\r
19 #include "CanTp.h"\r
20 #include "CanTp_Cbk.h"\r
21 #endif\r
22 #if defined(USE_J1939TP)\r
23 #include "J1939Tp.h"\r
24 #include "J1939Tp_Cbk.h"\r
25 #endif\r
26 #if defined(USE_PDUR)\r
27 #include "PduR.h"\r
28 #endif\r
29 #if defined(USE_CANNM)\r
30 #include "CanNm_Cbk.h"\r
31 #endif\r
32 #include <stdlib.h>\r
33 \r
34 \r
35 // Imported structs from Can_Lcfg.c\r
36 extern const Can_ControllerConfigType CanControllerConfigData[];\r
37 extern const Can_ConfigSetType CanConfigSetData;\r
38 \r
39 // Contains the mapping from CanIf-specific Channels to Can Controllers\r
40 const CanControllerIdType CanIf_Arc_ChannelToControllerMap[CANIF_CHANNEL_CNT] = {\r
41         DCAN1, // Channel_1\r
42         DCAN2  // Channel_2\r
43 };\r
44 \r
45 const uint8 CanIf_Arc_ChannelDefaultConfIndex[CANIF_CHANNEL_CNT] = {\r
46         CANIF_Channel_1_CONFIG_0,\r
47         CANIF_Channel_2_CONFIG_0\r
48 };\r
49 \r
50 // Container that gets slammed into CanIf_InitController()\r
51 // Initialization of all controllers\r
52 // Multiplicity 1..*\r
53 const CanIf_ControllerConfigType CanIfControllerConfig[] = {\r
54         // This is the ConfigurationIndex in CanIf_InitController()\r
55         { \r
56                 .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
57                 .CanIfControllerIdRef = CANIF_Channel_1,\r
58                 .CanIfDriverNameRef = "DCAN1",\r
59                 .CanIfInitControllerRef = &CanControllerConfigData[0],\r
60         },\r
61         {\r
62                 .WakeupSupport = CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
63                 .CanIfControllerIdRef = CANIF_Channel_2,\r
64                 .CanIfDriverNameRef = "DCAN2",\r
65                 .CanIfInitControllerRef = &CanControllerConfigData[1],\r
66         }\r
67 };\r
68 \r
69 // Function callbacks for higher layers\r
70 const CanIf_DispatchConfigType CanIfDispatchConfig =\r
71 {\r
72   .CanIfBusOffNotification = NULL,\r
73   .CanIfWakeUpNotification = NULL,        // Not used\r
74   .CanIfWakeupValidNotification = NULL,   // Not used\r
75   .CanIfErrorNotificaton = NULL,\r
76 };\r
77 \r
78 \r
79 // Data for init configuration CanIfInitConfiguration\r
80 \r
81 const CanIf_HthConfigType CanIfHthConfigData_Hoh[] =\r
82 {\r
83   { \r
84     .CanIfHthType = CAN_ARC_HANDLE_TYPE_BASIC,\r
85     .CanIfCanControllerIdRef = CANIF_Channel_2,         // Transmit to DCAN2\r
86     .CanIfHthIdSymRef = TxHwObject,\r
87     .CanIf_Arc_EOL = 1,\r
88   },\r
89 };\r
90 \r
91 const CanIf_HrhConfigType CanIfHrhConfigData_Hoh[] =\r
92 {\r
93   {\r
94     .CanIfHrhType = CAN_ARC_HANDLE_TYPE_BASIC,\r
95     .CanIfSoftwareFilterHrh = TRUE,\r
96     .CanIfCanControllerHrhIdRef = CANIF_Channel_1,      // Receive to DCAN1\r
97     .CanIfHrhIdSymRef = RxHwObject,\r
98     .CanIf_Arc_EOL = 1,\r
99   },\r
100 };\r
101 \r
102 \r
103 const CanIf_InitHohConfigType CanIfHohConfigData[] = { \r
104                 \r
105         {\r
106                 .CanConfigSet = &CanConfigSetData,\r
107                 .CanIfHrhConfig = CanIfHrhConfigData_Hoh,\r
108             .CanIfHthConfig = CanIfHthConfigData_Hoh,\r
109         .CanIf_Arc_EOL = 1,\r
110         },\r
111 };\r
112           \r
113 const CanIf_TxPduConfigType CanIfTxPduConfigData[] = {\r
114   {\r
115     .CanIfTxPduId = PDUR_REVERSE_PDU_ID_TX_PDU,                 // Transmit I-PDU; Reverse = PDUR -----> CANIF\r
116     .CanIfCanTxPduIdCanId = 2,  // 1\r
117     .CanIfCanTxPduIdDlc = 8,\r
118     .CanIfCanTxPduType = CANIF_PDU_TYPE_STATIC,\r
119 #if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
120     .CanIfReadTxPduNotifyStatus = false,\r
121 #endif\r
122     .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,              // 11 == BASIC CAN, 29 == EXTENDED CAN\r
123     .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation,\r
124     .CanIfCanTxPduHthRef = &CanIfHthConfigData_Hoh[0],\r
125     .PduIdRef = NULL,\r
126   },\r
127   {\r
128     .CanIfTxPduId = PDUR_REVERSE_PDU_ID_FreqInd,\r
129     .CanIfCanTxPduIdCanId = 258,        // 256\r
130     .CanIfCanTxPduIdDlc = 8,\r
131     .CanIfCanTxPduType = CANIF_PDU_TYPE_STATIC,\r
132 #if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
133     .CanIfReadTxPduNotifyStatus = false,\r
134 #endif\r
135     .CanIfTxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,\r
136     .CanIfUserTxConfirmation = PduR_CanIfTxConfirmation,\r
137     .CanIfCanTxPduHthRef = &CanIfHthConfigData_Hoh[0],\r
138     .PduIdRef = NULL,\r
139   },\r
140 };\r
141 \r
142 const CanIf_RxPduConfigType CanIfRxPduConfigData[] = {\r
143   {\r
144     .CanIfCanRxPduId = PDUR_PDU_ID_RX_PDU,                      // Receive I-PDU; CANIF -----> PDUR\r
145     .CanIfCanRxPduCanId = 1,    // 2\r
146     .CanIfCanRxPduDlc = 8,\r
147 #if ( CANIF_CANPDUID_READDATA_API == STD_ON )\r
148     .CanIfReadRxPduData = false,\r
149 #endif\r
150 #if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
151     .CanIfReadRxPduNotifyStatus = false,\r
152 #endif\r
153         .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR,    // upper layer\r
154     .CanIfCanRxPduHrhRef = &CanIfHrhConfigData_Hoh[1],  // [0] ??\r
155     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29,  // CANIF_CAN_ID_TYPE_11\r
156     .CanIfUserRxIndication = NULL,\r
157     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK,\r
158     .CanIfCanRxPduCanIdMask = 0xFFF,\r
159     .PduIdRef = NULL,\r
160   },\r
161   {\r
162     .CanIfCanRxPduId = PDUR_PDU_ID_FreqReq,\r
163     .CanIfCanRxPduCanId = 256,  // 258\r
164     .CanIfCanRxPduDlc = 8,\r
165 #if ( CANIF_CANPDUID_READDATA_API == STD_ON )\r
166     .CanIfReadRxPduData = false,\r
167 #endif\r
168 #if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
169     .CanIfReadRxPduNotifyStatus = false,\r
170 #endif\r
171         .CanIfRxUserType = CANIF_USER_TYPE_CAN_PDUR,\r
172     .CanIfCanRxPduHrhRef = &CanIfHrhConfigData_Hoh[1],  // [0] ??\r
173     .CanIfRxPduIdCanIdType = CANIF_CAN_ID_TYPE_29, // CANIF_CAN_ID_TYPE_11\r
174     .CanIfUserRxIndication = NULL,\r
175     .CanIfSoftwareFilterType = CANIF_SOFTFILTER_TYPE_MASK,\r
176     .CanIfCanRxPduCanIdMask = 0xFFF,\r
177     .PduIdRef = NULL,\r
178   },\r
179 };\r
180 \r
181 // This container contains the init parameters of the CAN\r
182 // Multiplicity 1..*\r
183 const CanIf_InitConfigType CanIfInitConfig =\r
184 {\r
185   .CanIfConfigSet = 0, // Not used  \r
186   .CanIfNumberOfCanRxPduIds = 1,        // 2\r
187   .CanIfNumberOfCanTXPduIds = 1,        // 2\r
188   .CanIfNumberOfDynamicCanTXPduIds = 0, // Not used\r
189 \r
190   // Containers\r
191   .CanIfHohConfigPtr = CanIfHohConfigData,\r
192   .CanIfRxPduConfigPtr = CanIfRxPduConfigData,\r
193   .CanIfTxPduConfigPtr = CanIfTxPduConfigData,\r
194 };\r
195 \r
196         // This container includes all necessary configuration sub-containers\r
197 // according the CAN Interface configuration structure.\r
198 CanIf_ConfigType CanIf_Config =\r
199 {\r
200   .ControllerConfig = CanIfControllerConfig,\r
201   .DispatchConfig = &CanIfDispatchConfig,\r
202   .InitConfig = &CanIfInitConfig,\r
203   .TransceiverConfig = NULL, // Not used\r
204   .Arc_ChannelToControllerMap = CanIf_Arc_ChannelToControllerMap,  \r
205   .Arc_ChannelDefaultConfIndex = CanIf_Arc_ChannelDefaultConfIndex,\r
206 };\r
207 \r