阅 读 文 章

[转帖]SCO UNIX 下设备驱动程序开发

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(lsw) | 时间:2007-05-27 | 浏览:人次 ]


一.相关概念
---- 1设备号和设备驱动程序 
---- 设备号是一个数字,他是设备的标志。这些设备在系统上有对应的特殊文件存在。设备号由两部分组成,即主设备号和次设备号,高字节为主设备号和底字节为次设备号.主设备号标志设备的类型,它告诉核心有哪个驱动程序来处理该设备的请求,次设备号由相应的设备驱动程序解释,它标志着某个具体的物理设备。 

---- ex. 八串卡,它的主设备号是相同的,次设备号是不同的。 

---- 2设备节点 

---- unix 把设备作为特殊的文件处理,称设备文件,也即设备节点。设备节点提供了物理设备和它对应的驱动程序的接口。0添加设备节点的命令格式为 

---- mknod 设备名字 [b/c] 主设备号 次设备号 

---- 它将为设备文件产生一个目录项和对应的i节点。 

---- 3设备驱动程序 

---- 设备驱动程序是物理设备和操作系统之间的软件接口,它由一组子程序组成,他负责与物理设备通讯,并为操作系统的核心提供统一的接口。用户级的程序通过设备文件来访问设备,但实际设备的读写则由设备驱动程序完成. 

---- 设备驱动程序分两类:字符设备驱动程序和块设备驱动程序。 

二.UNIX 系统设备驱动程序的设计和开发 
---- 1驱动程序提供核心的例程: 
---- 常见的有:xxxinit(),xxxxopen(),xxxxclose(),xxxxread(),xxxxwrite(),xxxxioctl(),xxxxhalt()&#59; 等等,依此类推。这里的xxxx是设备驱动程序的前缀,与设备名相同,在本例中为mytt,这组例程为设备驱动程序入口例程,下面分别对各个例程作一说明: 

---- xxxxinit: 初始化设备, 由系统在启动时由核心自动调用 

---- xxxxhalt: 系统关闭时核心调用以关闭设备 

---- xxxxopen: 获得对一个设备的存取,当一用户进程调用文件系统调用open 时,核心调用以此例程 

---- xxxxclose:取消对一个设备的存取,当一用户进程调用文件系统例程close时,核心调用此例程 

---- xxxxread: 从设备中读取数据,当用户进程调用文件系统例程read时,核心调用此例程,实现数 据从系统地址空间到用户地址空间的传递。 

---- xxxxwrite: 向设备写数据,当用户进程调用文件系统例程write 时,核心调用此例程,实现数据从用户地址空间向系统地址空间的传递,并发送到物理设备。 

---- xxxxintr: 处理设备中断,当设备向系统发出中断请求时,核心调用此例程来处理中断 

---- xxxxstart: 启动一个驱动程序的存取,该例程也系统启动期间由核心自动调用。 与xxinit例程的区别是:xxinit例程在系统初启时即被核心用,而xxstart例程的调用则在系统中断系统已初始化完之后才调用。 

---- xxxxioct1: 控制字符设备,用户进程调用文件系统用ioct1时,核心调用此例程 

---- 这些例程都是可选的。 

---- 2驱动程序的参数传递: 

---- 系统核心为每个进程分配和维护一个核心数据结构USER,该结构包含进程运行时所需的全部信息。变量u是当前活动进程的USER数据结构,它包含的信息仅为核心私有,驱动程序会频繁使用其中的很多元素,较常用的有: 

---- u.u_base: 用户数据区的地址,含有要传送的读/写数据。当用户调用文件读/写系统功能时,地址参数就存在该单元中。 

---- u.u_offset:传递的数据文件的起始地址 
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 驱动 程序开发 设备 系统 驱动程序 核心 调用 文件 用户

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.