嵌入式实验报告_12.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式实验报告 搭建linux系统下的交叉编译环境 Linux源码/linux工具包/crosstools_all.tar.bz2 #cd /opt/HK #tar xvfj crosstools_all.tar.bz2 -C / 执行解压命令之后,就把交叉编译器分别安装到”/usr/local/arm/”目录下的“2.95.3”和“3.3.2” “3.4.1 ”目录中 还会安装制作文件系统的软件到/usr/local/sbin/ 3.3.2版本的交叉编译器用来编译Qtopia/Embedded 2.95.3版本的交叉编译器用来编译VIVI以及移植boa等 3.4.1_softfolat版本的交叉编译器用来编译内核、busybox、u-boot和各种应用程序等 接下来配置系统环境变量,然后执行命令: #sudo gedit /etc/profile 把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在其他目录下使 用这些工具。然后在“profile”文件里面添加如下信息 : if [ `id -u` -eq 0 ]; then export PATH=$PATH:/opt/hk/usr/local/arm/2.95.3/bin export PATH=$PATH:/opt/hk/usr/local/arm/3.3.2/bin export PATH=$PATH:/opt/hk/usr/local/arm/3.4.1/bin export PATH=$PATH:/opt/hk/usr/local/sbin fi (PATH等号两端不要空格 ) 使用命令:source /etc/profile使环境变量生效 -/bin/sh: ./hello: not found arm-linux-readelf -a hello 找到需要的库ld-linux.so.2 到编译器下找到相关的库拷到开发板/lib下 二、CAN总线驱动程序实现 1.文件操作接口的实现 CAN设备驱动程序最终提供给应用程序的是一个流控制接口,主要包括open, close(或realse3、read, write, ioctl等操作.添加设备驱动程序,实际上就是给上述操作编写相应的程序代码。对于字符设备和块设备,Linux内核对这些操作作了统一的抽象,而每一个设备都会用一个特殊的设备文件来表示,通过虚拟文件系统,应用程序得到一组与具体设备无关的系统调用。而虚拟文件系纺的主体就是结构体file operations,每一种文件系统都有自己的file operations数据结构,结构体中的每一个成员都是一个函数指针,实际上实现了对于不同操作的函数跳转功能,例如open是指向具体文件系统用来实现打开设备文件操作的入口函数。可以说file_operations实现了标准文件操作到硬件设备操作的映射. 根据CAN控制器的特点,CAN设备驱动程序实现了结构体中一部分重要的操作,在Linux 2.4.18内核中,具体声明的实现如下: static struct fiel_operations s3c2410_fops{ owner: THIS MODULE, write: s3c2410 mcp2510 write, read: s3c2410_mcp2510 read, ioctl: s3c2410. mcp2510 ioctl, open: s3c2410 mcp2510 open, release: s3c2410 mcp2510 release, }; 在s3c2410ee fops中声明的每一个成员功能描述如下(未声明的成员值为0): (1} s3c2410 mcp2510 open负责对将要进行的1/0操作做好必要的准备工作,主要包括限制CAN打开次数、清空3个发送缓冲区和2个接收缓冲区等。 (2) s3c2410_mcp2510_release负责CAN设备关闭时的操作,包括还原打开次数,关闭中断等。 (3) s}c2410 mcp2510 ioctl负责CAN设备读写操作之外的工作特性设置,主要完成设置工作模式、数据帧ID、设备滤波器、总线波特率等工作。 (4} s3c2410 mcp2510 write负责处理CAN总线数据的发送方法. s3c2410 mcp2510 read负责处理CAN总线数据的接收方法。 2.驱动程序入口的实现 驱动程序在加载到内核中时,会首先运行驱动程序的初始化函数,然后等待系统调用在file_operations数据结构中定义的相关函数,实现对设备的操作.CAN设备的初始化函数主要负责创建CAN设备

文档评论(0)

134****4822 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档