AnsweredAssumed Answered

FlexCan Support - Cannot Run candump Command

Question asked by Paul DeMetrotion on Apr 14, 2016
Latest reply on Apr 14, 2016 by Paul DeMetrotion

We have two CAN interfaces on our board and I am looping between them. I have added them to the device tree and enabled the drivers. Everything appears to be working correctly – the drivers are loaded at boot and I can enable both CAN ports. I can send a packet of data and the transmit and receive information looks perfect. Now to the problem – when I run candump to confirm the data is correct, the command just stops and never returns to the prompt. I can use Ctrl-C to terminate it but no data is ever displayed. I am providing my findings below. Appreciate any help!

 

Here is the dmesg output. Is the ‘supply xceiver not found’ message a problem?

 

root@imx6qc398:~# dmesg | grep -i can

[    1.277826] CAN device driver interface

[    1.280764] 2090000.can supply xceiver not found, using dummy regulator

[    1.286810] flexcan 2090000.can: device registered (reg_base=f0288000, irq=142)

[    1.292971] 2094000.can supply xceiver not found, using dummy regulator

[    1.298969] flexcan 2094000.can: device registered (reg_base=f0290000, irq=143)

[    2.720615] can: controller area network core (rev 20120528 abi 9)

[    2.728738] can: raw protocol (rev 20120528)

[    2.731713] can: broadcast manager protocol (rev 20120528 t)

[    2.736102] can: netlink gateway (rev 20130117) max_hops=1

 

Sequence of commands that shows proper operation. Note the TX and RX buffers after the send. Looks correct so I believe data is being moved.

 

root@imx6qc398:~# ip link set can0 up type can bitrate 125000

flexcan 2090000.can can0: writing ctrl=0x0e312005

root@imx6qc398:~# ip link set can1 up type can bitrate 125000

flexcan 2094000.can can1: writing ctrl=0x0e312005

root@imx6qc398:~# ifconfig

can0 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

UP RUNNING NOARP  MTU:16  Metric:1

RX packets:2 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:10

RX bytes:8 (8.0 B)  TX bytes:0 (0.0 B)

Interrupt:142

 

can1 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

UP RUNNING NOARP  MTU:16  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:10

RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Interrupt:143

 

eth0 Link encap:Ethernet  HWaddr 00:01:45:05:C0:63

UP BROADCAST MULTICAST  MTU:1500  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

lo Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:65536  Metric:1

RX packets:10 errors:0 dropped:0 overruns:0 frame:0

TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:700 (700.0 B)  TX bytes:700 (700.0 B)

 

root@imx6qc398:~# cansend can0 150#11.22.33.44

root@imx6qc398:~# ifconfig

can0 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

UP RUNNING NOARP  MTU:16  Metric:1

RX packets:2 errors:0 dropped:0 overruns:0 frame:0

TX packets:1 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:10

RX bytes:8 (8.0 B)  TX bytes:4 (4.0 B)

Interrupt:142

 

can1 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

UP RUNNING NOARP  MTU:16  Metric:1

RX packets:1 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:10

RX bytes:4 (4.0 B)  TX bytes:0 (0.0 B)

Interrupt:143

 

eth0 Link encap:Ethernet  HWaddr 00:01:45:05:C0:63

UP BROADCAST MULTICAST  MTU:1500  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

lo Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:65536  Metric:1

RX packets:10 errors:0 dropped:0 overruns:0 frame:0

TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:700 (700.0 B)  TX bytes:700 (700.0 B)

 

root@imx6qc398:~# candump can1

  • ^C ß Control-C used to terminate the command

root@imx6qc398:~#

 

When I run the candump command with different settings, it does reveal that some of the utility is being executed but never returning.

 

root@imx6qc398:~# candump -l -s 0 can1

 

Enabling Logfile 'candump-2016-04-14_161516.log'

 

^C

Warning: console output active while logging!

root@imx6qc398:~# candump -l -s 2 can1

 

Enabling Logfile 'candump-2016-04-14_161536.log'

 

^C

root@imx6qc398:~#

root@imx6qc398:~# candump -l -s 2 can111111111111111111111111111

name of CAN device 'can111111111111111111111111111' is too long!

root@imx6qc398:~# candump -t e can1

candump: unknown timestamp mode 'e' - ignored

^C

root@imx6qc398:~#

 

How can I edit the source code for candump.c to add additional debug code to help pinpoint the issue? I have tried to change the source file I have in my work directory, but it does not work.

Outcomes