一、关于WinCE的流驱动说明:
流(Stream)设备驱动是WinCE.NET系统中用途最广也是最为重要的驱动类型,在系统启动
的时候,它由设备管理器搜索注册表加载,流驱动程序向文件系统提供统一的、类似于文件访
问的函数接口,也就是说明应用程序可以通过文件I/O函数CreateFile、ReadFile、
WriteFile、CloseHandle等来访问设备驱动程序。
二、BSP驱动分层:MDD层
初始接触BSP开发,看到相关资料的说明BSP驱动分2层,其中PDD是和硬件相关的、而MDD
是规范(WinCE的规范),具体说MDD层是要实现:
XXX_Init、XXX_Deinit、XXX_Open、XXX_Read、XXX_WrIte、XXX_Seek、XXX_IOControl
一组接口,比如HMI_Init、HMI_Open,那么如果有的动作不能同步完成,比如HMI_Read需要
等待10ms后才能完成,这种情形如何定义与Application的交互时序,Application提供
Callback函数、还是Driver向其发送Message。
三、BSP驱动分层:PDD
MDD层各个接口的实现势必要和硬件控制相关,如设定寄存器等,也就是说这些接口的实现
由PDD层提供支持,是这样的吧。
四、硬件结构相关
通常情形,硬件厂商提供一个开发板,芯片间的结构通常是一个主芯片+专业芯片(DSP),
假设是MCS51 + (Radio芯片、Bluetooth芯片),那么MCS51和Radio芯片间需要通信,比如UART
方式,在WinCE系统运行的情形下,这个UART是否属于WinCE驱动范畴,也要需要实现MDD?
我认为也需要,相当于给Application提供一个Radio的驱动程序,而这个UART就相当于PDD。
------解决方案--------------------
这个UART就相当于PDD,这样的理解不对!
------解决方案--------------------
不要搞太复杂了,MDD就是跟硬件相关的,PDD就是跟硬件无关的。
MDD + PDD之后,应用层或其他驱动、服务等就只需要调用PDD的接口就OK,无需关注硬件那边
------解决方案--------------------
PDD是硬件相关 MDD是硬件无关的
------解决方案--------------------
呃~~~说反了,PDD与硬件有关,MDD调用PDD,为系统提供通用API接口。