Other Parts Discussed in Thread: TDA2
Hi
We are developing a system with TDA2px processor and Vision SDK 3.08. TDA2 IPU1-1 is responsible for receiving CAN messages. We did some changes to CAN driver in system_dcan.c so we can use our custom callback to process received messages:
system_dcan.c
CanFunc canCall;
static Void System_dcanRxMsgHandler(dcanMsg_t *rxMsg)
{
if (rxMsg->appMsgPrms.dataLength)
{
canCall(rxMsg->msgId,(char*)rxMsg->appMsgPrms.msgData, rxMsg->appMsgPrms.dataLength);
}
}
Void System_dcanStart(CanFunc canf) {
canCall = canf;
System_dcanInit();
}
/*in configuration .c file we init custom callback*/
void initFunc()
{
/*DCAN init*/
System_dcanStart(CanRx);
}
/*Custom Callback*/
void CanRx(UInt32 id, char* data, int len)
{
Vps_printf("ID: %x; queue get data: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", id, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
ItelmaQueuePut(ItelmaFromIPU11CanQueue, id, len, (uint8_t*)data);
}
We have two IDs: 0x100 and 0x2B0. There is PCAN-View log:
1 11077.569 DT 02B0 Rx 5 10 0E 00 03 00
2 11085.616 DT 0100 Rx 8 00 00 01 00 64 19 00 94
3 11085.907 DT 02B0 Rx 5 10 0E 00 03 00
4 11101.055 DT 02B0 Rx 5 10 0E 00 03 00
5 11116.408 DT 0362 Rx 8 00 00 01 00 00 00 01 00
6 11116.584 DT 0100 Rx 8 00 00 01 00 64 19 10 59
7 11116.868 DT 02B0 Rx 5 10 0E 00 03 00
8 11131.655 DT 02B0 Rx 5 10 0E 00 03 00
9 11147.012 DT 0100 Rx 8 00 00 01 00 64 19 20 13
10 11147.270 DT 02B0 Rx 5 10 0E 00 03 00
11 11167.198 DT 02B0 Rx 5 10 0E 00 03 00
12 11180.228 DT 0362 Rx 8 00 00 01 00 00 00 01 00
13 11180.788 DT 0100 Rx 8 00 00 01 00 64 19 30 DE
14 11181.210 DT 02B0 Rx 5 10 0E 00 03 00
15 11195.581 DT 02B0 Rx 5 10 0E 00 03 00
16 11210.708 DT 0100 Rx 8 00 00 01 00 64 19 40 87
17 11211.076 DT 02B0 Rx 5 10 0E 00 03 00
18 11230.641 DT 02B0 Rx 5 10 0E 00 03 00
19 11241.861 DT 0362 Rx 8 00 00 01 00 00 00 01 00
20 11242.003 DT 0100 Rx 8 00 00 01 00 64 19 50 4A
21 11242.441 DT 02B0 Rx 5 10 0E 00 03 00
22 11260.299 DT 02B0 Rx 5 10 0E 00 03 00
23 11273.488 DT 0100 Rx 8 00 00 01 00 64 19 60 00
24 11274.079 DT 02B0 Rx 5 10 0E 00 03 00
25 11287.784 DT 02B0 Rx 5 10 0E 00 03 00
26 11305.056 DT 0362 Rx 8 00 00 01 00 00 00 01 00
27 11305.378 DT 0100 Rx 8 00 00 01 00 64 19 70 CD
28 11305.605 DT 02B0 Rx 5 10 0E 00 03 00
29 11324.968 DT 02B0 Rx 5 10 0E 00 03 00
30 11335.206 DT 0100 Rx 8 00 00 01 00 64 19 80 B2
31 11335.634 DT 02B0 Rx 5 10 0E 00 03 00
32 11354.655 DT 02B0 Rx 5 10 0E 00 03 00
33 11366.163 DT 0362 Rx 8 00 00 01 00 00 00 01 00
34 11366.581 DT 0100 Rx 8 00 00 01 00 64 19 90 7F
35 11366.883 DT 02B0 Rx 5 10 0E 00 03 00
36 11382.777 DT 02B0 Rx 5 10 0E 00 03 00
37 11397.995 DT 0100 Rx 8 00 00 01 00 64 19 A0 35
38 11398.384 DT 02B0 Rx 5 10 0E 00 03 00
39 11417.270 DT 02B0 Rx 5 10 0E 00 03 00
40 11429.151 DT 0362 Rx 8 00 00 01 00 00 00 01 00
41 11429.432 DT 0100 Rx 8 00 00 01 00 64 19 B0 F8
42 11430.122 DT 02B0 Rx 5 10 0E 00 03 00
43 11446.630 DT 02B0 Rx 5 10 0E 00 03 00
44 11460.726 DT 0100 Rx 8 00 00 01 00 64 19 C0 A1
45 11461.244 DT 02B0 Rx 5 10 0E 00 03 00
46 11475.266 DT 02B0 Rx 5 10 0E 00 03 00
47 11493.272 DT 0362 Rx 8 00 00 01 00 00 00 01 00
48 11493.777 DT 0100 Rx 8 00 00 01 00 64 19 D0 6C
49 11494.024 DT 02B0 Rx 5 10 0E 00 03 00
50 11514.524 DT 02B0 Rx 5 10 0E 00 03 00
51 11522.679 DT 0100 Rx 8 00 00 01 00 64 19 E0 26
52 11522.931 DT 02B0 Rx 5 10 0E 00 03 00
53 11542.478 DT 02B0 Rx 5 10 0E 00 03 00
54 11553.818 DT 0362 Rx 8 00 00 01 00 00 00 01 00
55 11554.417 DT 0100 Rx 8 00 00 01 00 64 19 F0 EB
56 11554.697 DT 02B0 Rx 5 10 0E 00 03 00
57 11569.055 DT 02B0 Rx 5 10 0E 00 03 00
58 11586.375 DT 0100 Rx 8 00 00 01 00 64 19 00 94
59 11586.561 DT 02B0 Rx 5 10 0E 00 03 00
60 11600.179 DT 02B0 Rx 5 10 0E 00 03 00
61 11617.278 DT 0362 Rx 8 00 00 01 00 00 00 01 00
62 11617.490 DT 0100 Rx 8 00 00 01 00 64 19 10 59
63 11617.698 DT 02B0 Rx 5 10 0E 00 03 00
64 11633.420 DT 02B0 Rx 5 10 0E 00 03 00
65 11648.123 DT 0100 Rx 8 00 00 01 00 64 19 20 13
66 11648.471 DT 02B0 Rx 5 10 0E 00 03 00
67 11663.786 DT 02B0 Rx 5 10 0E 00 03 00
68 11680.024 DT 0362 Rx 8 00 00 01 00 00 00 01 00
69 11680.339 DT 0100 Rx 8 00 00 01 00 64 19 30 DE
70 11680.798 DT 02B0 Rx 5 10 0E 00 03 00
71 11701.572 DT 02B0 Rx 5 10 0E 00 03 00
72 11710.960 DT 0100 Rx 8 00 00 01 00 64 19 40 87
73 11711.329 DT 02B0 Rx 5 10 0E 00 03 00
74 11730.904 DT 02B0 Rx 5 10 0E 00 03 00
75 11742.882 DT 0362 Rx 8 00 00 01 00 00 00 01 00
76 11743.295 DT 0100 Rx 8 00 00 01 00 64 19 50 4A
77 11743.631 DT 02B0 Rx 5 10 0E 00 03 00
78 11756.324 DT 02B0 Rx 5 10 0E 00 03 00
79 11774.863 DT 0100 Rx 8 00 00 01 00 64 19 60 00
80 11775.243 DT 02B0 Rx 5 10 0E 00 03 00
81 11794.523 DT 02B0 Rx 5 10 0E 00 03 00
82 11803.564 DT 0362 Rx 8 00 00 01 00 00 00 01 00
83 11804.128 DT 0100 Rx 8 00 00 01 00 64 19 70 CD
84 11804.491 DT 02B0 Rx 5 10 0E 00 03 00
85 11821.204 DT 02B0 Rx 5 10 0E 00 03 00
86 11838.586 DT 0100 Rx 8 00 00 01 00 64 19 80 B2
87 11838.723 DT 02B0 Rx 5 10 0E 00 03 00
88 11852.189 DT 02B0 Rx 5 10 0E 00 03 00
89 11866.303 DT 0362 Rx 8 00 00 01 00 00 00 01 00
90 11866.544 DT 0100 Rx 8 00 00 01 00 64 19 90 7F
91 11866.826 DT 02B0 Rx 5 10 0E 00 03 00
92 11882.040 DT 02B0 Rx 5 10 0E 00 03 00
93 11898.120 DT 0100 Rx 8 00 00 01 00 64 19 A0 35
94 11898.665 DT 02B0 Rx 5 10 0E 00 03 00
95 11912.991 DT 02B0 Rx 5 10 0E 00 03 00
96 11930.639 DT 0362 Rx 8 00 00 01 00 00 00 01 00
97 11930.845 DT 0100 Rx 8 00 00 01 00 64 19 B0 F8
98 11931.174 DT 02B0 Rx 5 10 0E 00 03 00
99 11944.452 DT 02B0 Rx 5 10 0E 00 03 00
100 11962.281 DT 0100 Rx 8 00 00 01 00 64 19 C0 A1
101 11962.797 DT 02B0 Rx 5 10 0E 00 03 00
102 11976.370 DT 02B0 Rx 5 10 0E 00 03 00
103 11991.554 DT 0362 Rx 8 00 00 01 00 00 00 01 00
104 11992.053 DT 0100 Rx 8 00 00 01 00 64 19 D0 6C
105 11992.378 DT 02B0 Rx 5 10 0E 00 03 00
106 12007.342 DT 02B0 Rx 5 10 0E 00 03 00
107 12026.202 DT 0100 Rx 8 00 00 01 00 64 19 E0 26
108 12026.499 DT 02B0 Rx 5 10 0E 00 03 00
109 12038.768 DT 02B0 Rx 5 10 0E 00 03 00
110 12054.335 DT 0362 Rx 8 00 00 01 00 00 00 01 00
111 12054.605 DT 0100 Rx 8 00 00 01 00 64 19 F0 EB
112 12054.823 DT 02B0 Rx 5 10 0E 00 03 00
113 12073.876 DT 02B0 Rx 5 10 0E 00 03 00
114 12086.863 DT 0100 Rx 8 00 00 01 00 64 19 00 94
115 12087.302 DT 02B0 Rx 5 10 0E 00 03 00
116 12101.409 DT 02B0 Rx 5 10 0E 00 03 00
117 12115.641 DT 0362 Rx 8 00 00 01 00 00 00 01 00
118 12116.064 DT 0100 Rx 8 00 00 01 00 64 19 10 59
119 12116.357 DT 02B0 Rx 5 10 0E 00 03 00
120 12132.017 DT 02B0 Rx 5 10 0E 00 03 00
121 12150.550 DT 0100 Rx 8 00 00 01 00 64 19 20 13
122 12150.853 DT 02B0 Rx 5 10 0E 00 03 00
123 12167.877 DT 02B0 Rx 5 10 0E 00 03 00
124 12178.429 DT 0362 Rx 8 00 00 01 00 00 00 01 00
125 12178.881 DT 0100 Rx 8 00 00 01 00 64 19 30 DE
126 12179.411 DT 02B0 Rx 5 10 0E 00 03 00
127 12194.654 DT 02B0 Rx 5 10 0E 00 03 00
128 12211.630 DT 0100 Rx 8 00 00 01 00 64 19 40 87
129 12212.011 DT 02B0 Rx 5 10 0E 00 03 00
130 12225.429 DT 02B0 Rx 5 10 0E 00 03 00
131 12240.311 DT 0362 Rx 8 00 00 01 00 00 00 01 00
132 12241.571 DT 0100 Rx 8 00 00 01 00 64 19 50 4A
133 12241.745 DT 02B0 Rx 5 10 0E 00 03 00
134 12257.517 DT 02B0 Rx 5 10 0E 00 03 00
135 12273.486 DT 0100 Rx 8 00 00 01 00 64 19 60 00
136 12273.921 DT 02B0 Rx 5 10 0E 00 03 00
137 12288.339 DT 02B0 Rx 5 10 0E 00 03 00
138 12303.300 DT 0362 Rx 8 00 00 01 00 00 00 01 00
139 12303.614 DT 0100 Rx 8 00 00 01 00 64 19 70 CD
140 12303.844 DT 02B0 Rx 5 10 0E 00 03 00
141 12319.030 DT 02B0 Rx 5 10 0E 00 03 00
142 12338.002 DT 0100 Rx 8 00 00 01 00 64 19 80 B2
143 12338.338 DT 02B0 Rx 5 10 0E 00 03 00
144 12354.495 DT 02B0 Rx 5 10 0E 00 03 00
145 12366.287 DT 0362 Rx 8 00 00 01 00 00 00 01 00
146 12366.585 DT 0100 Rx 8 00 00 01 00 64 19 90 7F
147 12366.893 DT 02B0 Rx 5 10 0E 00 03 00
148 12381.836 DT 02B0 Rx 5 10 0E 00 03 00
149 12399.902 DT 0100 Rx 8 00 00 01 00 64 19 A0 35
150 12400.206 DT 02B0 Rx 5 10 0E 00 03 00
151 12412.740 DT 02B0 Rx 5 10 0E 00 03 00
152 12431.749 DT 0362 Rx 8 00 00 01 00 00 00 01 00
153 12432.519 DT 0100 Rx 8 00 00 01 00 64 19 B0 F8
154 12433.141 DT 02B0 Rx 5 10 0E 00 03 00
155 12446.026 DT 02B0 Rx 5 10 0E 00 03 00
156 12460.990 DT 0100 Rx 8 00 00 01 00 64 19 C0 A1
157 12461.248 DT 02B0 Rx 5 10 0E 00 03 00
158 12481.603 DT 02B0 Rx 5 10 0E 00 03 00
159 12492.686 DT 0362 Rx 8 00 00 01 00 00 00 01 00
160 12492.929 DT 0100 Rx 8 00 00 01 00 64 19 D0 6C
161 12493.112 DT 02B0 Rx 5 10 0E 00 03 00
162 12506.302 DT 02B0 Rx 5 10 0E 00 03 00
163 12527.253 DT 0100 Rx 8 00 00 01 00 64 19 E0 26
164 12527.752 DT 02B0 Rx 5 10 0E 00 03 00
165 12537.499 DT 02B0 Rx 5 10 0E 00 03 00
166 12554.602 DT 0362 Rx 8 00 00 01 00 00 00 01 00
167 12554.937 DT 0100 Rx 8 00 00 01 00 64 19 F0 EB
168 12555.367 DT 02B0 Rx 5 10 0E 00 03 00
169 12574.157 DT 02B0 Rx 5 10 0E 00 03 00
170 12585.609 DT 0100 Rx 8 00 00 01 00 64 19 00 94
171 12585.830 DT 02B0 Rx 5 10 0E 00 03 00
172 12602.067 DT 02B0 Rx 5 10 0E 00 03 00
173 12617.224 DT 0362 Rx 8 00 00 01 00 00 00 01 00
174 12617.616 DT 0100 Rx 8 00 00 01 00 64 19 10 59
175 12617.900 DT 02B0 Rx 5 10 0E 00 03 00
176 12633.555 DT 02B0 Rx 5 10 0E 00 03 00
177 12647.723 DT 0100 Rx 8 00 00 01 00 64 19 20 13
178 12648.124 DT 02B0 Rx 5 10 0E 00 03 00
179 12667.754 DT 02B0 Rx 5 10 0E 00 03 00
180 12680.113 DT 0362 Rx 8 00 00 01 00 00 00 01 00
181 12680.421 DT 0100 Rx 8 00 00 01 00 64 19 30 DE
182 12680.615 DT 02B0 Rx 5 10 0E 00 03 00
183 12695.412 DT 02B0 Rx 5 10 0E 00 03 00
184 12710.744 DT 0100 Rx 8 00 00 01 00 64 19 40 87
185 12711.297 DT 02B0 Rx 5 10 0E 00 03 00
186 12728.218 DT 02B0 Rx 5 10 0E 00 03 00
187 12741.604 DT 0362 Rx 8 00 00 01 00 00 00 01 00
188 12742.147 DT 0100 Rx 8 00 00 01 00 64 19 50 4A
189 12742.542 DT 02B0 Rx 5 10 0E 00 03 00
190 12763.008 DT 02B0 Rx 5 10 0E 00 03 00
191 12773.222 DT 0100 Rx 8 00 00 01 00 64 19 60 00
192 12773.554 DT 02B0 Rx 5 10 0E 00 03 00
193 12788.808 DT 02B0 Rx 5 10 0E 00 03 00
194 12805.557 DT 0362 Rx 8 00 00 01 00 00 00 01 00
195 12805.678 DT 0100 Rx 8 00 00 01 00 64 19 70 CD
196 12805.730 DT 02B0 Rx 5 10 0E 00 03 00
197 12820.773 DT 02B0 Rx 5 10 0E 00 03 00
198 12835.421 DT 0100 Rx 8 00 00 01 00 64 19 80 B2
199 12835.711 DT 02B0 Rx 5 10 0E 00 03 00
200 12854.184 DT 02B0 Rx 5 10 0E 00 03 00
201 12869.254 DT 0362 Rx 8 00 00 01 00 00 00 01 00
202 12869.908 DT 0100 Rx 8 00 00 01 00 64 19 90 7F
203 12870.362 DT 02B0 Rx 5 10 0E 00 03 00
204 12882.630 DT 02B0 Rx 5 10 0E 00 03 00
205 12900.957 DT 0100 Rx 8 00 00 01 00 64 19 A0 35
206 12901.294 DT 02B0 Rx 5 10 0E 00 03 00
207 12915.359 DT 02B0 Rx 5 10 0E 00 03 00
208 12928.689 DT 0362 Rx 8 00 00 01 00 00 00 01 00
209 12928.923 DT 0100 Rx 8 00 00 01 00 64 19 B0 F8
210 12929.124 DT 02B0 Rx 5 10 0E 00 03 00
211 12949.308 DT 02B0 Rx 5 10 0E 00 03 00
And there is Vps_printf() output from Putty log:
[IPU1-1] 171.234063 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.248032 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.262642 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x10 0xe2 [IPU1-1] 171.262947 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.299884 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x20 0xa8 [IPU1-1] 171.311809 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.326633 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x30 0x65 [IPU1-1] 171.326938 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.341243 s: ID: 100; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.355761 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x40 0x3c [IPU1-1] 171.356432 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.373970 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.390105 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x50 0xf1 [IPU1-1] 171.407857 s: ID: 100; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.420179 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x60 0xbb [IPU1-1] 171.420667 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.435124 s: ID: 2b0; queue get data: 0x10 0xe 0x0 0x3 0x0 0x0 0x0 0x0 [IPU1-1] 171.450283 s: ID: 100; queue get data: 0x0 0x0 0x1 0x0 0x14 0x82 0x70 0x76
These are some most significant parts of the logs. I will add entire files. As you can see in Putty log, some of the messages got corrupted. In PCAN we have ID 0x02B0 with data 0x10 0x0E 0x00 0x03 0x00 and ID 0x0100 with data 0x00 0x00 0x01 0x00 0x64 0x19 0x60 0x0, but in the CanRx callback either message IDs or message data swap, and sometimes we have ID 0x0100 with data 0x10 0x0E 0x00 0x03 0x00. This only happens when messages rate is very hight. I belive data get corrupted somewhere in CAN driver before CanRx callback. What can be the possible reason for such behavior? Maybe you can explain me where is the entry point for CAN messages.
Best regards, D.K. Tovmachenko.