课程设计报告驱动开发.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告驱动开发

西安文理学院机械电子工程系 课程设计任务书 学生姓名 赵 凯 专业班级 08级自动化(2)班 学 号 08103080227 指导教师 雷俊红 职 称 讲师 教研室 自动化 课 程 自动化专业课程设计 题目 基于ARM的通用I/O接口驱动程序设计 任务与要求 利用ARM实验箱上的资源设计一个 设计要求: 低行模式:在该模式下,光标位于屏幕的低行。用户可以进行文件保存或退出操作,也可以设置编辑环境。 2.2.2 软件基本操作 (1).进入Vi,即在命令行下输入Vi 文件名。此时进入的是命令模式,光标位于屏幕的上方。 (2).在命令行模式下输入i进入插入模式。可以看出,在屏幕底部显示有“插入”字样表示插入模式,在该模式下可以输入文字信息。 (3).最后按“【Esc】”,则当前模式转入命令行模式,并在低行中输入“:wq”进入低行模式。wq(存盘保存),q(退出Vi),q!(强制退出)等。 2.2.3 嵌入式驱动程序基础 (1)设备驱动程序概述 ① 设备文件 嵌入式Linux的一个重要特点就是将所有的设备都当做文件进行处理,所以设备驱动程序也就是设备文件。设备文件分为三类:字符型设备文件、块设备文件或网络接口设备文件。 字符设备文件通常指不需要缓冲就能够直接读写的设备,它们以字节为单位进行读写。 块设备文件通常指仅能以块为单位读写的设备,一般块的大小为512字节的整数倍。 网络接口设备文件通常指网络设备访问的接口。 ② 设备驱动程序和用户应用程序 设备驱动程序可以理解为操作系统的一部分,它的作用就是让操作系统能正确识别和使用设备。对于不同的硬件设备,其对应的设备驱动程序也是不同的。 设备驱动程序与用户应用程序是不同的,设备驱动程序是用户应用程序与硬件设备之间的一个中间软件层。 设备驱动程序运行在内核空间,而用户应用程序则运行在用户空间。嵌入式操作系统通过系统调用和硬件中断来完成从用户空间到内核空间的控制转移。 (2)设备驱动程序的加载过程 ① 设备号 嵌入式Linux系统通过设备号来区分不同设备,设备号分为主设备(0~255)和次设备。一般在/proc目录下的devices文件中记录了系统中处于活动状态的设备的主设备号。 ② 设备进入点 对每个设备都要定义一个设备进入点,该设备进入点的名称称为设备名。 使用mknod命令在文件系统中创建一个设备进入点。命令格式为:mknod /dev/设备名 type major minor type为设备类型,c为字符设备;b为块设备。 命令为:Mknod /dev/leds c 255 o ③ 加载设备驱动程序 加载设备驱动程序: insmod 设备驱动程序名.O 命令为:insmod leds.o 查看当前加载了哪些设备驱动程序: lsmod –l 卸载设备驱动程序: rmmod 设备驱动程序名.O ④ 设备驱动程序加载与卸载的工作过程 在用户空间通过命令insmod向内核空间加载设备驱动程序模块,此时程序的入口点是初始化函数init_module(),在该函数中完成设备的注册。完成设备注册加载之后,系统将设备驱动加载到内核中,在用户空间的用户应用程序就可以通过调用驱动程序的功能接口函数对该设备进行操作。设备用完之后,可以再用户空间通过移除已加载的驱动设备命令rmmod将设备卸载,此时的入口点是cleanup_module函数,在该函数中完成设备的卸载。 (3) 设备驱动程序的功能接口函数 ① 设备驱动程序的注册与释放 字符设备的注册函数为: devfs_register_chrdev(Demo_ID,”demo_drv”,Test_ctl_ops); Demo_ID指设备驱动程序的主设备号 demo_drv指设备驱动程序的设备名 Test_ctl_ops指为驱动程序中所定义的结构体struct file_operations 字符设备的注册函数为: devfs_unregister_chrdev(Demo_ID,”demo_drv”); ② 设备的打开与关闭

您可能关注的文档

文档评论(0)

kaiss + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档