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

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

DTS编写

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

...

&flexcan1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan1_3>;
	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调试工具再来补充完整的测试方法。以上移植如有问题,请帮忙指出,有任何疑问欢迎留言讨论。

本文作者:girlkoo

本文链接:http://blog.csdn.net/girlkoo/article/details/45697577

时间: 2024-10-11 13:29:57

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

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

前篇文章已经在tqimx6q上成功跑起了新版BSP的uboot,本文来配置下新版BSP的kernel,使kernel能在tqimx6q上正常启动. 准备工作 每次移植kernel的时候都会做的工作就是找到与当前开发板接近的config,其实uboot移植的时候也是一样的.由于tqimx6q的芯片是imx6q的,所以,还是以mx6q_sabresd为例.另外,自己动手移植BSP时应该充分使用官方文档,本人以为,以下文档是非常有用的: (1) i.MX 6 BSP Porting Guide: 该文

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

前段时间就开始学习I.MX6Q了,但是最近工作实在是忙,间断了一些时间了.为了提高移植效率,还是考虑移植Freescale维护的3.10版本的内核. 源码获取 Freescale维护的3.10的内核是使用git管理的,但是直接使用git下载代码会比较慢,下面是我下载好的uboot和kernel: I.MX6Q BSP源码(Freescale官方维护) 代码下载好后,先将u-boot解压到工作目录,然后在终端下切换到uboot根目录.由于这个版本的bsp是使用git管理的,因此,需要切换到指定分支

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

经过前面的移植,eMMC已经可以在tqimx6q上正常运行了,本文将来移植LCD驱动. DTS编写 imx6的LCD控制器与之前的芯片略有不同,详细的信息可以阅读芯片手册.参考sabrelite开发板的DTS,我们可以添加如下内容: / { ... aliases { mxcfb0 = &mxcfb1; }; ... regulators { ... reg_mipi_dsi_pwr_on: mipi_dsi_pwr_on { compatible = "regulator-fixed&

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

我们在内核启动时候已经配置系统了UART,但是tqimx6q这块开发板上引出了imx6q的5路TTL接口,其中,uart1和uart2转成232接口,本文将配置这5路Uart接口. DTS配置 由于内核中已经有imx6q的uart控制器驱动,因此,我们只需要配置各端口的pinctrl即可.根据tqimx6q的原理图,我们对我们的DTS作如下修改: ... &uart1 { pinctrl-names = "default"; pinctrl-0 = <&pinct

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

前一篇文章已经移植好CAN,本文来移植eMMC.eMMC的移植一般来讲比较简单,因为MMC驱动是由官方维护的,一般来讲,不会有什么问题,对我们来说,只需要正确的配置各个pin脚的复用关系,这种情况也是DTS最擅长的.下面我们开始eMMC移植. DTS编写 参考sabresd的DTS,我们可以如下编写DTS: &usdhc4 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc4_1>; bus-wi

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之根文件系统挂载

经过前面的移植,新版BSP的uboot和kernel已经能够在tqimx6q开发板上运行了,接下来我们来挂载文件系统. DTB整理 前面的文章中提到,新版BSP的DTB管理感觉不是太好,在之前移植的BSP上我发现即便有根文件系统,内核也会挂掉,由于原来的DTS文件中配置内容太多,不好确定问题的源头,本文对DTS进行了整理,整理后只需要一个DTS文件,其内容如下: /* * Copyright 2012 Freescale Semiconductor, Inc. * Copyright 2011

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植

经过前面的移植,tqimx6q已经可以正常驱动触摸屏了,本文我们来移植声卡驱动. DTS编写 由于tqimx6q搭载的声卡是sgtl5000芯片,因此,参考dts目录下其它开发板的相应信息,我们可以在DTS中添加如下内容: / { ... regulators { ... reg_3p3v: 3p3v { compatible = "regulator-fixed"; regulator-name = "3P3V"; regulator-min-microvolt

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

USB HOST驱动一般都是由芯片厂商维护的,因此,我们仍然只需要配置下DTS即可完成USB HOST驱动的移植. DTS配置 参考sabresd相关的DTS,在我们的DTS中添加如下内容: / { ... regulators { compatible = "simple-bus"; reg_usb_otg_vbus: usb_otg_vbus { compatible = "regulator-fixed"; regulator-name = "usb

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之触摸屏驱动移植

之所以说是驱动移植是因为之前已经在TQ210.AM335x两个平台上移植过了,因此,仅需要少量修改就可以将驱动移植到imx6q.下面开始触摸驱动移植. DTS编写 参考其它DTS的i2c设备写法,我们可以添加如下内容: &i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_2>; status = "okay&q