一、AM5728 CAN总线测试
开发板文件系统下执行如下指令,配置 CAN0 总线(软件上的 CAN0 对应为硬件上的
CAN1)比特率为 1MHz,并启动 CAN 总线:
Target# canconfig can0 bitrate 1000000
Target# canconfig can0 start
执行如下指令,监控接收 PC 端发送的数据:
Target# candump can0
PC上自动安装驱动
再打开调试仪器软件
一.先设置 com端,比特率为 1MHz,
二.任选数据 点发送 或循环发送
can 在ti am5728 Linux 里面是作为一个网络设备存在的,记录一下 canconfig 移植过程。
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
// 解压
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 里面也可以
// 先将 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
参考文章:https://www.cnblogs.com/chenfulin5/p/6797756.html