4045|14

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

分层驱动和流驱动的问题 [复制链接]

CE驱动程序分为:分层驱动和单体驱动
又分为:本地驱动和流驱动
那么是不是
分层驱动!=流驱动?????
个人认为分层驱动也可以是流驱动
那么:
1、如果(个人认为)成立,那么是不是分层驱动也导出XXX_INIT  XXX_READ  XXX_WRITE  XXX_CLOSE等那些流驱动函数,分层驱动的实现也是写一些跟硬件相关的函数,然后在这几个固定的流接口函数中调用
2、如果(个人认为)不成立,那么分层驱动是怎么实现跟内核和应用程序通信的呢
  是不是也有固定的接口函数??
3、请各位高手用最直白的语言帮我讲讲分层驱动是怎么实现的???
在此谢谢大家了!!!!

   

最新回复

MDD层主要是实现应用所需要的接口函数,至于具体函数实现是在PDD层做的.同时PDD还要为MDD提供函数接口,这些接口函数一般会在MDD与PDD公用的头文件中定义好. MDD一般在编译时会产LIB库文件(可以在SOURCES文件中看到),在PDD层通过SOURCES 文件将MDD产生的LIB库关联进来.PDD编译后生成一个DLL文件(这个DLL文件包括LIB文件在里面),应用在用这个驱动时可以动态的将它加载.而MDD为上层提供的函数是通过DEF文件导出的.  详情 回复 发表于 2008-8-28 23:50
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
DING
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
请各位高手帮忙解答
谢谢啦
!!!!!!!!!
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
这是2种不同的分法,他们直接没有任何对应的关系。

也就是说流驱动可以是分层的,也可以是你所谓的“单体”的;“本地”驱动也同样。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢yashi!
那一般分层驱动是不是也以流驱动函数接口提供给上层和内核的??
通常的做法是怎么样的呢??
如果不是以流驱动函数形式提供给上层和核心
那是不是也需要有固定的形式???
如果还不是,那到底是怎么样呢???
谢谢大家啦!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
还有个重要的问题:

流驱动可以通过CreateFile打开驱动,可以通过WriteFile,ReadFile读写驱动

那么分层驱动是怎么跟应用程序对应起来的呢????

 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
分层驱动主要是从程序结构上来说的,把驱动的框架(MDD)部分,硬件相关(PDD)部分,分成2部分,至于接口,你可以自己定义。当然,MS已经提供了一些MDD,如果你需要使用这些,就要按它规定好的接口来做。

流驱动/内建驱动是从接口上的分的,内建驱动也是系统规定好的接口,就相当于系统有一些函数,要你去填充具体内容;当然,这些接口根据不同的驱动,有不同的名字。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(中级)

8
 
那么就是说分层的驱动在一般情况下是没有固定的接口函数了??
这样怎么能让CE内核和应用程序知道并调用这些函数呢???

在流接口函数中有个DEF文件导出流接口,分层的是不是也是通过这个函数导出的呢??

流接口函数可以象填空一样写驱动
分层可以这样吗??
????????????
迷惑ing~!!!!!!!!!!!!!!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
顶起来
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

10
 
分层驱动的接口很固定,MDD层会调用PDD层的函数,这些函数都是定义好的函数参数,函数名可以随便定义,其实是一组函数指针,组成一个回调函数的结构体。不同的驱动有不同的函数结构体定义,只要是标准驱动,M$都已经定义好了的,看MSDN就知道。
不过这些函数倒不会像xxx_Init,xxx_Open这样统一。

分层驱动的PDD层,是通过Source文件,关联到MDD对应的lib,这样链接时就会将两者连到一起,MDD才可以调用PDD了。

应用层的调用是针对MDD层来的,所以在MDD层,这些调用接口是统一的。

标准的分层驱动也是填空,要符合规定。只是每个分层驱动间不一样而已。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
{549CAC8D_8AF0_4789_9ACF_2BB92599470D}
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

12
 
def文件的作用在整个wince里都一样,当然也是导出相应的函数接口的。
有的驱动的PDD目录下没有def,有的驱动的MDD目录下没有def,有的两个下都有,但肯定只有一个是导出给应用层的。
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

13
 
非常感谢!!!!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 9 楼 shuiyan 的回复:
分层驱动的接口很固定,MDD层会调用PDD层的函数,这些函数都是定义好的函数参数,函数名可以随便定义,其实是一组函数指针,组成一个回调函数的结构体。不同的驱动有不同的函数结构体定义,只要是标准驱动,M$都已经定义好了的,看MSDN就知道。
不过这些函数倒不会像xxx_Init,xxx_Open这样统一。

分层驱动的PDD层,是通过Source文件,关联到MDD对应的lib,这样链接时就会将两者连到一起,MDD才可以调用PDD了。

应用层…

精辟
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 
MDD层主要是实现应用所需要的接口函数,至于具体函数实现是在PDD层做的.同时PDD还要为MDD提供函数接口,这些接口函数一般会在MDD与PDD公用的头文件中定义好.
MDD一般在编译时会产LIB库文件(可以在SOURCES文件中看到),在PDD层通过SOURCES 文件将MDD产生的LIB库关联进来.PDD编译后生成一个DLL文件(这个DLL文件包括LIB文件在里面),应用在用这个驱动时可以动态的将它加载.而MDD为上层提供的函数是通过DEF文件导出的.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表