没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
9页
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux操作系统诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
资源推荐
资源详情
资源评论
Linux SPI 子系统驱动程序结构分析
关键之:SPI、framework、platform、driver、device
Linux SPI 这个子系统系列的介绍会在 linux 驱动模型的基础上进行阐述,会偏重于
framework 的介绍,对于大牛可能会对这类文章不屑,但本系列仅当是一个知识备忘,当 linux
体系这张大网织的差不多了,会有一个全新的系列,来去繁就简,成之经典,毕竟,现阶段,
对这些的感悟还不是太深,将原来的工作内容进行回忆,将现在工作碰到的问题补充,下一
阶段会有更深的体会的。
由于这是这个系统的第一篇文章,可能零碎的东西介绍的会多些。
0,分层与分离
在面向对象的程序设计中,可以为某一类相似的事物定义一个基类,而具体的事物可以继承
这个基类中的函数。Linux 内核中频繁使用到面向对象的设计思想。在设备驱动方面,往往
为同类的设备设计了一个框架,而框架中的核心层则实现了该设备通用的一些功能。而且具
体的设备不想使用核心层的函数,它可以重载之。这就是我们所说的在驱动设计中的分层思
想。
此外,在驱动的设计中,我们还会使用分离的思想。如果一个设备的驱动和 host 的驱动休
戚相关,那么,这就意味着这个普通的设备如果用在不同的 host 上,会采用 n 个版本的驱
动。如果产品单一,也许感觉不到不使用分离思想来设计驱动的危害,但是我们想一下,这
个世上被人们称道的多是什么?精品,艺术品!精品如何打造?注重细节,不只考虑单一需
求!大家开发个东西不容易,怎么能随随便便就让它茫然众码矣呢,所以,何时何地,我们
都要以打造精品的思想来要求自己,让自己的劳动力不浪费。
使用分离的思想来设计驱动的话,就够就是这样的:
外设驱动与主机控制器的驱动不相关,主机控制器的驱动不关心外设,而外设驱动也不关心
主机,外设只是访问核心层的通用 API 进行数据传输,主机和外设之间可以进行任意的组合。
相当于在控制器驱动和设备驱动之间增加一层核心层,对内对外都隐藏了对端的不确定性。
仔细通读 USB,SPI,PCI 的代码就会发现这种思想的体现。
1,设备模型
在最新的设备驱动模型中,主要包含总线、设备和驱动三个实体,总线将设备和驱动绑定,
在系统每注册一个设备的时候,会寻找与之匹配的驱动,反之,在系统每注册一个驱动的时
候,会寻找与之匹配的设备,而匹配由总线完成。
所以,因此,由是之…(之所以写这么多,是因为自己在理解这个设备模型的时候,对照代码
产生很多疑问,特别是在这儿。现在回过头来看,觉得很显而易见的啊,:)看来那个什么
Q 还是有些问题),根据这个模型的需求,一个现实的 linux 设备和驱动通常都需要挂接在一
种总线上,否则谁来管他们的匹配啊,注册驱动和注册设备都是由不同的 API 来完成的。对
于本身依附于 PCI,USB,I2C,SPI 等的设备而言,这自然不是问题,但是在嵌入式系统里
面,Controller 系统中集成的外设控制器,挂载在内存空间的外设确不依附于此类总线。那
www.linuxidc.com
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
资源评论
- xixihaha201320132015-05-08比较好的资源,很详细
- torjanz2014-10-30分析的很详细...
无神影
- 粉丝: 43
- 资源: 77
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功