- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四设备驱动
实验三 基于ARM9 2440linux系统设备驱动
一、实验内容
在ARM9系列s3c2440开发版平台上基于linux实现LED流水灯驱动的编写与实现。首先确定所使用的Linux的内核版本以及gcc版本,然后配置交叉编译环境,最后编写实现驱动。
实验目的
1、了解Linux设备驱动的编写环境;
2、熟悉编写Linux设备驱动的完整流程;
3、完成Led灯驱动的编写,是基于Linux编写其他驱动程序的基础。
实验原理
linux系统将设备分为3类:字符设备、块设备、网络设备。字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。
每种类型的驱动程序,不管是字符设备还是块设备都为内核提供相同的调用接口,因此内核能以相同的方式处理不同的设备。Linux 为每种不同类型的设备驱动程序维护相应的数据结构,以便定义统一的接口并实现驱动程序的可装载性和动态性。Linux 设备驱动程序与外界的接口可以分为如下三个部分。
1.驱动程序与操作系统内核的接口:通过数据结构file_operations来完成的。
2.驱动程序与系统引导的接口:这部分利用驱动程序对设备进行初始化。
3.驱动程序与设备的接口:这部分描述了驱动程序如何与设备进行交互,这与具体设备密切相关。它们之间的相互关系如下图所示。
当一个模块设备驱动加载到内核,将执行一些初始的工作,如重新设置设备,reservingRAM, reserving interrupts, reserving input/output ports, etc.这些工作得以在内核空间执行,必须要有两个函数存在:module_init 和module_exit;它们对应于用户空间的insmod和rmmod命令。总之,用户命令insmod和rmmod使用了内核空间的函数module_init和module_exit.
要实现GPIO控制LED的驱动,先看看电路图,实验箱使用引脚GPJ4控制LED1(D501),GPJ1控制LED2(D502),GPJ2控制LED3(D503),GPJ11控制LED4(D504)如图所示,LED分别通过两个SN74LVC245A和S3C2440引脚连接,点灯具体设置如下:①设置245芯片方向,设置为0即可控制LED灯;②设置LED控制引脚为输出状态;③由LED电路图设置,点亮LED时令引脚输出1,熄灭LED时令引脚输出0。
图三 LED模块电路图
四、实验步骤
1.准备工作:使用串口连接把ARM9 S3C2440实验箱和PC端连接起来。然后开启虚拟机并使用命令cat /proc/version进入串口查看实验箱Linux的内核版本和内核镜像编译采用的gcc版本。如下图所示:
从上图可以看出试验箱采用的Linux内核版本为2.6.30.4,gcc版本为4.3.3,则交叉编译环境应改为4.3.3版本。
2.使用命令解压EABI-4.3.3_EmbedSkytar.bz2,在home目录下使用tar xvfj EABI-4.3.3_EmbedSkytar.bz2,如图所示:
解压之后虚拟机home下面解压之后多了opt,usr两个文件夹。进入home目录后,可以看出opt目录权限不足,使用命令chmod对其权限进行修改。
3.将解压后产生的opt/EmbedSky/4.3.3拷贝到opt/EmbedSky下,拷贝之后/opt/EmbedSky目录内容如下所示:
建立交叉编译环境:在虚拟机中输入命令 gedit /etc/bash.bashrc,在该文件下添加如下信息export PATH=/opt/EmbedSky/4.3.3/bin:$PATH,并用”#”注释掉之前配置的3.4.1的环境变量。
在虚拟机中输入source /etc/bash.bashrc 命令,然后再输入命令arm-linux-gcc –v,如果出现信息gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176),表示环境变量配置为4.3.3成功。
6.将Linux-2.6.30.4的源代码,复制到工作目录下并解压。在根目录下用mkdir work/EmbedSky新建路径,并进入home/opt/EmbeySky使用cp 命令将内核源代码压缩包linux-2.6.30.4.tar.gz复制到新建的work/EmbedSky文件夹中,
您可能关注的文档
最近下载
- 电商平台推广员岗位职责.pptx VIP
- 历年计算机二级MS-Office真题试题库500题(含答案).docx VIP
- 山东黄金集团有限公司省内井下一线产业工人招聘笔试试题及答案2021.docx VIP
- 连续式密炼机.ppt VIP
- 2022年山东黄金集团有限公司省内井下一线产业工人招聘考试真题.docx VIP
- 山东黄金集团有限公司省内井下一线产业工人招聘考试题库2023.docx VIP
- 密炼机讲义第一节 青岛科技大学课程网站.ppt VIP
- 密炼机课程4剖析精选.ppt VIP
- 2024年春季山东黄金集团有限公司省内井下一线产业工人招聘270人笔试备考试题及答案解析.docx VIP
- 密炼机课程-精选课件(公开).ppt VIP
文档评论(0)