This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

基于AM3359处理器的beaglebone开发板中DCAN的开发

Other Parts Discussed in Thread: AM3359

在beaglebone中开发DCAN驱动,内核编译是参考文档“Sitara Linux Software Developer’s Guide”,

内核用的是linux-3.1.0-psp04.06.00.03.sdk,

D_CAN驱动的编译是参考processors.wiki.ti.com/.../DCAN_Driver_Guide

驱动程序用的就是内核自带的,没有进行任何改动。

编译命令如下:

(1)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- distclean

(2)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi-  tisdk_am335x-evm_defconfig

(3)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- menuconfig(配置dcan)

(4)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- uImage

(5)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- modules

最后将uImage,d_can.ko和d_can_platform.ko文件放进SD卡

将d_can.ko和d_can_platform.ko先放在opt/下,执行insmod,出现如下信息:

root@am335x-evm:/opt# insmod d_can.ko

root@am335x-evm:/opt# insmod d_can_platform.ko

应该是加载成功了,但执行命令出错

root@am335x-evm:/opt# canconfig can0 start

Cannot find device "can0"

can0: failed to start

root@am335x-evm:/opt# canconfig can1 start

Cannot find device "can1"

can1: failed to start

root@am335x-evm:/opt# ip link set can0 up

用lsmod查看有DCAN模块

root@am335x-evm:/# lsmod

Module                  Size  Used by

d_can_platform          1942  0

d_can                   7995  1 d_can_platform

bufferclass_ti          4304  0

omaplfb                10734  0

pvrsrvkm              145014  2 bufferclass_ti,omaplfb

用cat命令查没有找到can

root@am335x-evm:/# cat /proc/devices

Character devices:中没有can

说明:1)把模块放在lib/mudules/kernel下也试了,modprobe也可以加载成功,但执行命令还是找不到can

2)在DCAN Driver Guide中要装iproute2,是因为只有iproute2可以对can进行操作吗?我看了仙子阿用的ip link help也可以对can进行操作,所以没有安装iproute2

3)我现在用的beaglebone只是核心板,只有AM3359集成的can控制器,没有外接CAN收发器,这个有影响吗?

跪求解答,谢谢!