免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 918 | 回复: 0
打印 上一主题 下一主题

第一章:设备驱动概述 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-25 23:57 |只看该作者 |倒序浏览
1:程序代码在计算机中最实质性的运行方式就是 组合逻辑+时序逻辑 的结合.
2:设备驱动程序所做的工作=读写设备寄存器,设备的轮询,中断处理,DMA通信,进行物理内存向虚拟内存的映射,是通信设备能够首发数据包,显示设备能够显示文字和
画面,使存储设备能够记录文件和数据。
3:设备驱动程序的架构由相应的操作系统定义。最大的原因是为了综合的高效的管理这些设备驱动程序。OS将程序分为了用户级程序跟系统级程序。驱动程序属于系统级程序。
因为他可以直接访问到硬件。驱动工程师必须按照相应的架构(OS提供的给驱动程序的接口)设计设备驱动。这样就可以良好地整合到OS的内核中。
4:OS的出现是为了应对日益增加应用要求和当时资源缺乏的情况下高效的更高效的是用计算机资源。
他的主要功能有:多任务调度,文件系统的管理,内存管理等等。
5:程序设计的最基本的原则就是高内聚低耦合,就是为了增加程序代码的重复使用,增加生产效率以及便于管理。层次分明的模块化管理。
6:为了使OS便于管理驱动程序,必须在所有的设备驱动中设计面向OS内核的接口。这样的接口由操作系统定义,对一类设备而言结构完全一致,独立于具体的设备。
这样做可以使基本的文件操作函数如 open() close() write() read()等函数以统一的接口操作硬件设备。
7:设备驱动程序分为三大类:   
    (1):  字符类设备
    字符类设备是指必须以串行顺序依次进行访问的设备。 如触摸屏 鼠标等。这类设备不需经过系统的快速缓冲区。
    (2):  块设备
块类设备是指可以用任意顺序进行访问,以块为单位进行操作。如硬盘 软驱等。这类设备经过系统的快速缓冲区。

字符类设备和块设备在文件系统中都存在节点,故可以是用基本文件操作函数open,close,write,read来进行统一接口的读写操作。
   
(3):  网络设备
网络设备面向数据包的接受和发送而设计。他不对应文件系统中的节点。是存在内存之中的。
所以网络设备不能使用文件系统的基本四个函数来进行读写操作,他们有专门的函数。
8:整个系统 从上而下描述
用户应用程序编程中使用了Linux系统调用接口,而有的也使用了C库函数库,他便于操作,而且提供了良好地可移植性,这种库函数底层调用的函数也就是系统调用接口。
库函数可分为静态调用跟动态调用,我觉得,只有动态调用可提高可移植性,若是静态调用还是包括了那些固有的函数就不存在提高可移植性之说。
动态调用可根据平台的不同 提供了底层方面的不同的调用方法和函数性质,而上层都是提供了统一的接口。
系统调用接口是由OS提供的,OS具有进程管理,内存管理,文件系统,网络通信等功能。
先说说文件系统:
文件系统提供了文件和目录在介质当中的组织方式。典型的就是有节点(inode)这种技术细节特种。 常见的文件系统有FAT,Ext3,YAFFS2等。
文件系统提供了定位文件,给文件赋予访问权限,最后修改时间等等性质信息。他们在底层驱动 存储设备读写文件数据的时候使用的也是 驱动程序接口函数。
那在linux中任何设备都视为文件,故字符类设备文件有字符类设备驱动进行读写,磁盘/Flash文件系统则由块设备驱动进行读写。


以上笔记文章都是自己琢磨以及猜测,以后可能会有更改,若有不对之处望请指教。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/95562/showart_2078422.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP