驱动程序莫恐惧!

[复制链接]
2769|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是倒过来的。
huangfeng33 发表于 2012-4-21 21:46 | 显示全部楼层
只要致力于驱动各个周边装置,不用花时间去配合一堆规定。很好的资料,谢谢分享。
jxmzzr 发表于 2012-4-22 22:14 | 显示全部楼层
通俗易懂,好资料,谢谢分享,谢谢楼主,学习了。:loveliness:
jiang390625 发表于 2012-4-23 15:34 | 显示全部楼层
顶楼主,学习下·!·
vivisa 发表于 2012-4-23 15:40 | 显示全部楼层
路过学习一下。
职场新鲜人 发表于 2012-4-23 16:40 | 显示全部楼层
支持楼主,搞定驱动程序
shenmulzb1985 发表于 2012-4-23 20:42 | 显示全部楼层
比较通俗易懂,对驱动程序有了些了解的了,要真是再上手写的话,也不会太费事的了啊
七叶一枝花 发表于 2012-4-23 21:18 | 显示全部楼层
嗯,不恐惧,我很淡定地。呵呵。
czdo 发表于 2012-4-23 21:35 | 显示全部楼层
不要拍,多动脑经总结!!!呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

519

主题

4194

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部