- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iMX6Q--Linux系统下FlexCAN总线的使用记录
i.MX6Q -- Linux系统下FlexCAN总线的使用记录开发板平台:珠海鼎芯D338 -- 基于i.MX6Q系统平台:Linux3.0.35 + Busybox1.221、需要的工具FlexCAN工具包:libsocketcan-0.0.10.tar.bz2canutils-4.0.6.tar.bz2交叉编译器:fsl-linaro-toolchain.tar.bz22、编译过程:交叉编译器:?环境变量配置命令:$?export PATH=YourCompilerPath/fsl-linaro-toolchain/bin/:$PATHlibsocketcan-0.0.10:使用tar命令解压libsocketcan-0.0.10.tar.bz2后,使用如下命令交叉编译并安装。$./configure--prefix=YourInstallPath/flexcan/install --host=arm-none-linux-gnueabi$?make make install?????? ???????????? ???????????? canutils-4.0.6:同样,交叉编译并安装命令如下。$./configure--prefix=YourInstallPath/flexcan/install?--host=arm-none-linux-gnueabiCC=arm-none-linux-gnueabi-gcclibsocketcan_CFLAGS=-I/YourInstallPath/flexcan/install/includelibsocketcan_LIBS=-lsocketcan LDFLAGS=-L/YourInstallPath/flexcan/install/lib--enable-static$?make make install??????? 移植拷贝安装目录下(YourInstallPath/flexcan/install)的所有文件到D338开发板/usr/目录下即可;至此,FlexCAN工具的移植就完成了,直接将文件系统打包为rootfs.tar.bz2,然后拷贝到dchip_MFGTools_Linux3.0.35_MX6Q_UPDATER工具下进行烧写启动就可以使用了,接下来,主要是FlexCAN总线的使用方法及详细说明。3、错误与解决:?????? 错误1:?????? ?????? 编译canutils错误?????? ???????canconfig.c:34:26: fatal error: libsocketcan.h: No such fileor directory?????? 解决1:?????? ?????? 将libsocketcan已编译安装目录(YourInstallPath/flexcan/install)下的include/can_netlink.h和libsocketcan.h文件,拷贝到canutils4.0.6/include目录下?4、测试过程:?????? 准备:两个板子CAN总线进行相应管脚对接;???????????? 开发板命令:设置比特率: ? ? ? ? $?ip link set can0 up type can bitrate 125000使能can0总线: ? ? $?ifconfig can0 up查看can0信息: ? ? $?ifconfig can0?发送数据到0x123地址:$?cansend can0 -i 0x123? 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88接收0x123地址数据:$?canecho can0 -v或$?candump can0 --filter 0x123:/*未设置ID滤波?*/或$?candump can0 --filter 0x123: 0x7FF/*设置使用ID滤波?*/?说明:接收时,未使用ID滤波,可以接收总线上的所有数据,无论ID是否正确;接收时,使用ID滤波,就只有符合要求的ID的数据,才做接收,其他ID的数据均丢弃不管。?使用以上测试方法测试时,发现filter id最大可用值为0x7FF;ID = 0x7FF = 1111111 1111 = 11bit地址,说明当前使用的是标准格式;如果想使用更多地址,需要设置为扩展帧格式。?如何设置CAN总线数据帧为扩展帧格式呢??经过查看CAN驱动源码发现:在d-chip-linux3.0.35/drivers/net/can/flexcan.c中,有如下开始传输函数:static?int?flexcan_start_xmit(struct?sk_buff* skb,struct?net_devic
您可能关注的文档
- GerberRS274XCAM文件格式-141128.doc
- GG-MB-XZ-201508031幕墙监理实施细则.doc
- GG-MB-XZ-201508015钢箱梁制作及吊装专项施工监理实施细则.doc
- GG-MB-XZ-201508037强夯基础监理实施细则doc.doc
- GG-MB-XZ-201508051悬挑架监理实施细则.doc
- GG-MB-XZ-201508057桩基工程监理细则.doc
- GGJL-标无砟轨道监理实施细则.doc
- GG-MB-XZ-201508056转换层监理实施细则doc.doc
- GH-951A电动剥离试验机说明书.doc
- GlobalAutomotivePistonRing(汽车活塞环)MarketProfessionalSurveyReport2017目录.docx
文档评论(0)