Chinaunix

标题: 驱动的本质 [打印本页]

作者: rw99yy    时间: 2009-05-11 11:06
标题: 驱动的本质
各位老大,本人新手,不知道对不对请大家讨论.

驱动的本质就是控制cpu通过总线向链接在上面的设备的接口(端口地址)读写数据从而驱动设备工作.
那这里需要确定的就是端口的地址,这个是由于电路(硬件)决定了的.
还有就是需要知道设备的时序(就是一系列寄存器的变化表示什么意思).
我想知道我的理解有误么?还有什么不全的地方么?
作者: star316    时间: 2009-05-11 11:11
驱动就是让硬件工作
作者: dreamice    时间: 2009-05-11 11:12
原帖由 rw99yy 于 2009-5-11 11:06 发表
各位老大,本人新手,不知道对不对请大家讨论.

驱动的本质就是控制cpu通过总线向链接在上面的设备的接口(端口地址)读写数据从而驱动设备工作.
那这里需要确定的就是端口的地址,这个是由于电路(硬件)决定了的. ...


如果你是一个纯粹的新手,我觉得讨论这样的问题不合时宜。讨论本质问题,应该鉴于你有足够的经验的情况下,纸上谈兵的东西说起来容易,但老毛说的话还是很有道理:

没有实践就没有发言权
作者: yidou    时间: 2009-05-11 11:17
标题: 回复 #1 rw99yy 的帖子
同意你的说法.

硬件, 是因为要完成某种功能而存在. 这种功能,  不容易或不值得硬件来全部实现.
从硬件角度来讲, 驱动的本质, 是用软件, 控制和协助现有的硬件, 一起来完成这个功能.
从软件角度讲, 驱动还要实现软件接口(OS层和应用层)
作者: rw99yy    时间: 2009-05-11 11:21
楼上莫急 我是慢慢从下面抽象上来直到应用
我说我是新手未必就是才学习这个,小弟不才 嵌入式也做了几年,始终觉得自己没有入门.
我只是在这说出我的理解.
作者: star316    时间: 2009-05-11 11:27
理解这个有什么对大脑有帮助吗, 我觉得只要能让硬件有效率的工作, 满足客户的要求,就OK 了, 想那么多白白浪费脑细胞
作者: rw99yy    时间: 2009-05-11 11:31
端口地址容易确定
但是时序不同的硬件就不同了,这就需要看datasheet了.
要做什么动作,就是按datasheet上的描述设置相应的寄存器值.

&contrl_register1 = value.
&data_register1 = vale.

这个地方就是代码的角度了.
作者: rw99yy    时间: 2009-05-11 11:34
原帖由 star316 于 2009-5-11 11:27 发表
理解这个有什么对大脑有帮助吗, 我觉得只要能让硬件有效率的工作, 满足客户的要求,就OK 了, 想那么多白白浪费脑细胞



朋友说得不无道理,就像应用也根本不需要知道地层是如何运作 直接open read write就ok了.
作者: yidou    时间: 2009-05-11 11:36
标题: 回复 #6 star316 的帖子
有些人有工作的需要,  有些人有学习的需要. 有些人不需要.
作者: superfight    时间: 2009-05-11 12:16
驱动也有几层吧~

上层驱动负责实现功能

下层驱动负责实现操作

如果说本质的话~ 应该就是实现操作~

因为实现功能既可以看做是驱动也能看做是应用~
作者: dreamice    时间: 2009-05-11 12:53
原帖由 rw99yy 于 2009-5-11 11:21 发表
楼上莫急 我是慢慢从下面抽象上来直到应用
我说我是新手未必就是才学习这个,小弟不才 嵌入式也做了几年,始终觉得自己没有入门.
我只是在这说出我的理解.


不是我急,我是觉得很多人容易断章取义。什么“驱动就是写模块”,“驱动就是操作寄存器”……之类的话,看了很晕。
踏实做事情,对自己的言行负责任,能吹的适合做销售,忽悠客户可以。
作者: garyv    时间: 2009-05-11 16:23
除了做OS内核和芯片的,其他的都是在做应用Application,大陆就是没实力做核




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2