3539|7

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

目前开发驱动程序的处境,请高人指教! [复制链接]

各位有经验的驱动人士,我毕业工作4个月后开始学wdm设备驱动开发,至今也快半年了,中间学过音频驱动开发,usb驱动开发,学过过滤驱动开发,虚拟驱动,但是没有自己写过什么东西。总之就是很乱。搞得都有点烦了。
最近主攻USB驱动开发,包括USB固件和PC端设备功能驱动程序。
我目前的处境是:固件这端的固件差不多搞明白了,PC端USB驱动的基本构架也基本熟悉了。现在总不知道该怎么把这两者结合起来。因为固件这边好像没什么太多东西,用开发板的话基本框架都有了。用driverstudio生成的驱动程序,好像很多都已经有了。
我知道驱动程序通过USB总线驱动程序usbd.sys与设备端固件通信,但具体是怎么通信的还是搞的不太明白。
我看过别人开发的包括固件和驱动程序,总是看不出来他们是怎么通信的。

请问高人:在原有的构架下,我具体要干什么,他们到底是怎么通信的?还有上面我遇到的一些问题,能不能指导一下,小弟感激万分!

最新回复

谢谢回复,讲的不错。  详情 回复 发表于 2007-11-6 16:37
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
个人觉得你需要自己写一写代码了,什么代码都行,实践最重要。
同时建议你抛弃DriverStudio的开发架构,它隐藏了太多驱动的基本知识。
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢,我觉得是应该写一些了。关于原理方面有没有什么要指导的?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
你所说的,也正是我前几个月的时候的疑问,
1、固件与驱动如何通讯。固件与驱动是按自己定义的协议,比如说一组数据,以什么开头作为标识,结尾,校验等。
2、usbd.sys这是操作系统的涉及硬件层,开发一般的驱动是不需要去理采的。
3、driverstudio用可以,但是最好去看一下DDK,看看源程序是怎么实现的
至于具体通讯是要上层一个软件才能看得出来的。
CreateFile,WriteFile,ReadFile,deviceiocontrol,这几个是用户态的通讯函数。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
你的水平按道来说,已经不错了,只是还没有完全做一个东西出来,自己动手完全做一个东西出来,就明白是什么回事了。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
CreateFile,WriteFile,ReadFile,deviceiocontrol这几个函数是测试应用程序与驱动程序交互,那驱动程序与固件之间是怎么通信的?好像不知道如何通信就不知道固件中要加多少东西。还有驱动程序为了与固件通信需要加哪些功能代码。

还有一个问题请教一下:我现在有cypress开发板,我应该做个什么东西出来?(包括固件和驱动)。好像是很低级的问题啊。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
那驱动程序与固件之间是怎么通信的?

这个是需要实现相应的例程,在驱动程序中。IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE、IRP_MJ_DEVICE_CONTROL

这些例程是与用户态程序的接口,意思是用户态调用CreateFile来打开设备时,内核态会自动执行你相应的IRP_MJ_CREATE对应的例程函数。
驱动程序通过这些例程函数来与固件之间通信,具体怎么通信,那是操作系统下的USB总线驱动的事情了。

至于固件与驱动通信,需要加什么代码,看你需要作什么功能,比如说,只传一组数据,用WriteFile写入数据时,驱动会调用IRP_MJ_WRITE的例程。固件程序会接收到数据,就看你怎么处理了。相反一样。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢回复,讲的不错。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表