at91sam9g45板上移植mcp2515网络型驱动笔记

本人在at91sam9g45板应用mcp2515字符型驱动,只能阻塞访问,感觉不太爽,于是花了两天时间移植了下网络型驱动,以便于socket 编程。在这一过程中碰到的问题记录如下:

一、移植mcp2515x代码,可以在linux2.6.34版本以上找得到,但往2.6.30里移植时,需要根据编译错误,进行调整和切入。并配置Kconfig和Makefile,由于当时错误情况当时未记录,暂且不表

移植成功后 ifconfig -a  即如图所示

at91sam9g45板上移植mcp2515网络型驱动笔记_第1张图片

二、然后就是 ip link set can0 type can bitrate 50000

但是报错:ip: either "dev" is duplicate, or "type" is garbage

下载了iproute2-3.6.0.tar.gz 进行编译 将结果 ip 替换到  板卡根文件系统/bin下(注意删除原来 软链接) 

三、用can-utils测试时,发现中断报错

request_threaded_irq  gpio_irq_type+0x0/0x1c

解决办法:将mcp2515代码

request_threaded_irq(spi->irq, NULL, mcp251x_can_ist,
                  IRQF_TRIGGER_FALLING, DEVICE_NAME, priv);

改成了rret = request_threaded_irq(spi->irq, irq_mcp251x_can_handler, mcp251x_can_ist,
              IRQF_TRIGGER_FALLING|IRQ_TYPE_EDGE_RISING, DEVICE_NAME, priv);

 

 

你可能感兴趣的:(at91sam9g45板上移植mcp2515网络型驱动笔记)