×
单片机 > 单片机程序设计 > 详情

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之CAN移植

发布时间:2021-11-15 发布时间:
|

经过前面的移植,tqimx6q已经完美支持网卡,现在,我们来移植CAN。其实这里所谓的移植,仅仅是配置DTS,使内核能够检测到CAN设备,CAN驱动本身是freescale维护的。下面开始CAN的移植。


DTS编写


参考imx6q其它的DTS编写方式,我们可以如下编写DTS文件:


...

&flexcan1 {

pinctrl-names = "default";

pinctrl-0 = ;

status = "okay";

};

&iomuxc {

...

flexcan1 {

pinctrl_flexcan1_3: flexcan1grp-3 {

fsl,pins = <

MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000

MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x80000000

>;

};

};

};

因为imx6qdl.dtsi中没有适合tqimx6q的pinctrl配置,因此,需要在我们的DTS文件中添加,然后将相关配置添加到flexcan1定义中即可。将以上内容追加到DTS后重新编写并烧写,用新的DTB启动开发板后通过ifconfig可以查看到CAN设备。

测试方法


由于我手头没有USB转CAN设备,暂时没有办法测试CAN是否已经正常工作,仅能通过指令查看到内核已经识别到了CAN设备,从经验上看,应该没有什么问题。指令查看CAN设备的方法与查看网卡设备的方法类似,执行指令:


ifconfig -a

执行效果如下:

@tqimx6q #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

eth0 Link encap:Ethernet HWaddr 42:75:18:94:C8:11

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

LOOPBACK MTU:65536 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:0

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

sit0 Link encap:IPv6-in-IPv4

NOARP MTU:1480 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:0

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

其中,can0就是tqimx6q的CAN设备。至此,CAN设备的移植工作就完成了,之后搞个CAN调试工具再来补充完整的测试方法。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向