天天看點

信邁AM5728 CAN總線測試及SDK更新,linux can 調試指令

一、AM5728 CAN總線測試

開發闆檔案系統下執行如下指令,配置 CAN0 總線(軟體上的 CAN0 對應為硬體上的

CAN1)比特率為 1MHz,并啟動 CAN 總線:

Target# canconfig can0 bitrate 1000000

Target# canconfig can0 start

執行如下指令,監控接收 PC 端發送的資料:

Target# candump can0

信邁AM5728 CAN總線測試及SDK更新,linux can 調試指令

PC上自動安裝驅動

信邁AM5728 CAN總線測試及SDK更新,linux can 調試指令

再打開調試儀器軟體

信邁AM5728 CAN總線測試及SDK更新,linux can 調試指令

一.先設定 com端,比特率為 1MHz,

二.任選資料 點發送 或循環發送

信邁AM5728 CAN總線測試及SDK更新,linux can 調試指令

二、裝置樹更新移植

can 在ti am5728 Linux 裡面是作為一個網絡裝置存在的,記錄一下 canconfig 移植過程。

  • 一、 下載下傳 canutils 和 libsocketcan

libsocketcan 位址:  http://public.pengutronix.de/software/libsocketcan/

canutils 位址 : http://public.pengutronix.de/software/socket-can/canutils/v4.0/

// 下載下傳最新的 canutils-4.0.6.tar.bz2 以及 libsocketcan-0.0.10.tar.bz2

  • 二、 下載下傳完先編譯 libsocketcan 庫。

// 解壓

tar -xvf  canutils-4.0.6.tar.bz2

cd  libsocketcan-0.0.10/

mkdir  out

// 預設已經配置了交叉編譯器。

ye@ye-ThinkPad-E420:~/Downloads/libsocketcan-0.0.11$ source ~/ti-processor-sdk-linux-am57xx-evm-05.01.00.11/linux-devkit/environment-setup

[linux-devkit]:~/Downloads/libsocketcan-0.0.11> ./configure --prefix=/home/ye/Downloads/libsocketcan-0.0.11/out  --host=arm-none-linux-gnueabi

[linux-devkit]:~/Downloads/libsocketcan-0.0.11> make

[linux-devkit]:~/Downloads/libsocketcan-0.0.11> make install

[linux-devkit]:~/Downloads/libsocketcan-0.0.11/out/lib> ls

libsocketcan.a   libsocketcan.so    libsocketcan.so.2.3.0

libsocketcan.la  libsocketcan.so.2  pkgconfig

// 将這些生成的庫複制到你闆子的檔案系統内,放在 lib 目錄下也行,放在 usr/lib 裡面也可以

  • 三、 再進行編譯canconfig

// 先将 libsocketcan 裡面的頭檔案 libsocketcan.h   can_netlink.h 複制到 canutils 的 include 裡面

tar -xvf canutils-4.0.6.tar.bz2

cd  canutils-4.0.6/

mkdir out

     chmod 777 . -R

// 配置

[linux-devkit]:~/Downloads/canutils-4.0.6>  ./configure --host=arm-none-linux-gnueabi --prefix=/home/ye/Downloads/canutils-4.0.6/out libsocketcan_  LIBS=-lsocketcan LDFLAGS="-L/home/ye/Downloads/libsocketcan-0.0.11/out/lib"      libsocketcan_CFLAGS="-I/home/ye/Downloads/libsocketcan-0.0.11/out/include"      

make

make install

// 最後在 out/sbin  下能見到 canconfig 指令。

[linux-devkit]:~/Downloads/canutils-4.0.6> ls out/sbin/

canconfig

Copy Canconfig 到闆子的/sbin/目錄 下

chmod 777 /sbin/ canconfig

闆子出現 錯誤

root@am57xx-evm:/run/media/sda2/can/out/lib# canconfig can0 bitrate 1000000

canconfig: error while loading shared libraries: /lib/libsocketcan.so.2: file too short

解決方法:

root@am57xx-evm:/run/media/sda2/can/out/lib# rm  /lib/libsocketcan.so.2       

 root@am57xx-evm:/run/media/sda2/can/out/lib# ln -s /lib/libsocketcan.so.2.3.0

測試運作:

root@am57xx-evm:/run/media/sda2/can/out/lib# canconfig can0 bitrate 1000000

can0 bitrate: 1000000, sample-point: 0.750

root@am57xx-evm:/run/media/sda2/can/out/lib# canconfig can0 start

[  402.704469] c_can_platform 4ae3c000.can can0: setting BTR=4d00 BRPE=0000

can0 state: ERROR-ACTIVE

root@am57xx-evm:~# candump can0

[  666.993280] can: controller area network core (rev 20170425 abi 9)

[  666.999568] NET: Registered protocol family 29

[  667.012032] can: raw protocol (rev 20170425)

  can0  666   [8]  01 02 0A 0B 0C 0D 0E 0F

  can0  0AA   [8]  01 02 0A 0B 0C 0D 0E 0F

  can0  0BB   [8]  01 02 0A 0B 0C 0D 0E 0F

  can0  0CC   [8]  01 02 0A 0B 0C 0D 0E 0F

  can0  0DD   [8]  01 02 0A 0B 0C 0D 0E 0F

===================linux can 調試指令=========================

CAN總線在嵌入式Linux下驅動程式的實作

​​http://www.21ic.com/app/embed/200911/49216.htm​​

Socke Can設定波特率

找到其中一個方法使用IP指令,BUSYBOX制作的IP好像不支援對socketcan的設定,必須要自己去下載下傳iproute2的源代碼自己編譯。得到IP指令,拷貝到自己系統的bin目錄下。

ip link set can0 type can bitrate 250000

設定CNA0的波特率為250K,在設定前需要先把CAN0關閉了,ip set can0 down

可以結貼了,!!!!!!!!!!!!

​​linux can 總線socket接口測試使用,解釋了為什麼會從字元裝置更新到socket裝置​​

​​http://blog.chinaunix.net/uid-26119896-id-3452315.html​​

dmesg | grep can

root@imx_mfgtools_nogpu:~# dmesg | grep can

can-3v3: 3300 mV

flexcan 2090000.can: device registered (reg_base=a0968000, irq=142)

flexcan 2094000.can: device registered (reg_base=a0970000, irq=143)

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

can: raw protocol (rev 20120528)

can: broadcast manager protocol (rev 20120528 t)

can: netlink gateway (rev 20130117) max_hops=1

can-3v3: disabling

ifconfig -a

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

          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:142

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

          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

ip -details link show can0

root@imx_mfgtools_nogpu:~# ip -details link show can0

2: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10

    link/can  promiscuity 0

    can state STOPPED (berr-counter tx 0 rx 0) restart-ms 0

          bitrate 0 sample-point 0.000

          tq 0 prop-seg 0 phase-seg1 0 phase-seg2 0 sjw 0

          flexcan: tseg1 4..16 tseg2 2..8 sjw 1..4 brp 1..256 brp-inc 1

          clock 30000000

ip -details link show can0  // 檢視

ifconfig can0 down  // 關閉

繼續閱讀