打印

驱动程序莫恐惧!

[复制链接]
1823|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
拿起书本|  楼主 | 2012-4-20 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般工程师对驱动程序都有莫名的恐惧,其实嵌入式系统的红运程序开发比在Windows或Linux上简单得多。
有在PC上写过产品驱动程序的吗?估计不多,在Windows和Linux上写驱动程序,除了必须了解新装置的硬件特性,把控制硬件的程序尽快完成外,大部分时间都在设法让驱动程序符合Windows或Linux的规定,简单地说,就算硬件的控制程序是正确无误的,如果不符合操作系统的规定,这个驱动还是完全跑不起来。
Windows或Linux的开发环境已经有稳定的操作系统,要增加对新硬件装置的支持,所以驱动程序自然要按照操作系统的规定,可是偏偏Windows和Linux是通用型的操作系统,它们的驱动程序的架构又大又复杂,若不照着它们的规定去做是不行的。
嵌入式系统开发的状况千奇百怪,在现有的系统上增加硬件装置当然也有可能,但有一个观念是不会变化,已上市的消费性电子产品需要扩充硬设备的机会几乎是没有的,所以设计一个可扩充的驱动程序架构意义不大,而且嵌入式系统中的资源是很宝贵的,把架构设计的很复杂完全不合逻辑,不管先有系统还是先有驱动程序,嵌入式系统的驱动程序架构绝对要清晰简单,一般来说最多就是两层
1.drivet层:真正驱动硬件装置的程序,上层的程序不应该直接调用到这层的函数;
2.API层:根据系统或应用程序的需求,将driver层包装成较简单的接口,这应该是上层程序与硬件沟通的唯一通道。

简单地说,驱动程序就是要设法隐藏硬件的特性,例如设定CPU状态缓存器中的某个bit可以禁止中断的产生,但只有用汇编语言才能操作PSR,驱动程序工程师不但要负责确认程序真的有禁止中断的效果,而且还要将其包装成API,就像一般的C语言函数一样,让上层程序可以直接调用,这样还有另一个好处,可以把机器相关与机器无关的程序代码分开,将来如果要换平台,只要驱动程序的API相同,系统程序与应用程序应该就可以重复使用。

相关帖子

沙发
tee.| | 2012-4-21 08:23 | 只看该作者
嗯,不错,学习了~!~!~

使用特权

评论回复
板凳
renyi581176| | 2012-4-21 10:15 | 只看该作者
多谢分享

使用特权

评论回复
地板
tianli1980| | 2012-4-21 21:24 | 只看该作者
嵌入式系统的驱动程序开发流程和Windows或Linux是倒过来的。

使用特权

评论回复
5
huangfeng33| | 2012-4-21 21:46 | 只看该作者
只要致力于驱动各个周边装置,不用花时间去配合一堆规定。很好的资料,谢谢分享。

使用特权

评论回复
6
jxmzzr| | 2012-4-22 22:14 | 只看该作者
通俗易懂,好资料,谢谢分享,谢谢楼主,学习了。:loveliness:

使用特权

评论回复
7
jiang390625| | 2012-4-23 15:34 | 只看该作者
顶楼主,学习下·!·

使用特权

评论回复
8
vivisa| | 2012-4-23 15:40 | 只看该作者
路过学习一下。

使用特权

评论回复
9
职场新鲜人| | 2012-4-23 16:40 | 只看该作者
支持楼主,搞定驱动程序

使用特权

评论回复
10
shenmulzb1985| | 2012-4-23 20:42 | 只看该作者
比较通俗易懂,对驱动程序有了些了解的了,要真是再上手写的话,也不会太费事的了啊

使用特权

评论回复
11
七叶一枝花| | 2012-4-23 21:18 | 只看该作者
嗯,不恐惧,我很淡定地。呵呵。

使用特权

评论回复
12
czdo| | 2012-4-23 21:35 | 只看该作者
不要拍,多动脑经总结!!!呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4195

帖子

31

粉丝