利用windriver 开发了个usb的驱动,写个开发心得.docVIP

利用windriver 开发了个usb的驱动,写个开发心得.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用windriver 开发了个usb的驱动,写个开发心得

利用windriver 开发了个usb的驱动,写个开发心得 项目组需要利用2440采集数字电视的采样数据,所以让我开发一个usb的数据采集系统,就两个要求 1 速度要达到500kbyte/s以上 2 稳定 由于之前没有做过windows驱动的经验,所以花了3,4天时间读了读ddk的文档,期间还上chinapub找个本书,读了免费的第1章,按照他配置了vc的 编译环境,呵呵。 然后就吧ddk下面的bulkusb源代码进行了修改,写好usb device的驱动,有些了个应用程序,测试一下,采集数据是ok了,但是发现有时候蓝屏,特别是采集100m左右,就会出现蓝品!这下没办法了,由于我本身就对windows内核编程不熟悉,有调试了大概3,4天确认问题可能处在电源管理方面,联系到自己对这方面不是很熟悉,而且时间紧迫,没办法转向windriver开发 !我安装的是9.21版本(请到迅雷下载)。 1. 驱动的开发: ??????a?? 这步开发比较简单,首先确认你的device固件正确能枚举成功,然后将device连接到pc usb host 端。 ??????b??按照向导指引刷出你的设备进行配置,然后点击编译按钮生成代码。这部分内容请参考安装文档的快速开发向导! 2.应用程序开发: ???? 最主要的几个函数是,opendevice??和readwrite 函数:其实大家只要摘录向导生成代码的内容即可,这里贴一个我的 static WDU_DRIVER_HANDLE hDriver = 0; static DRIVER_CONTEXT DrvCtx ; static BOOL DLLCALLCONV DeviceAttach(WDU_DEVICE_HANDLE hDevice, ???????????????????????????????????? WDU_DEVICE *pDeviceInfo, PVOID pUserData) { ????DRIVER_CONTEXT *pDrvCtx = (DRIVER_CONTEXT *)pUserData; ????DEVICE_CONTEXT *pDevCtx, **ppDevCtx; ????DWORD dwInterfaceNum = pDeviceInfo-pActiveInterface[0]-pActiveAltSetting-Descriptor.bInterfaceNumber; ????DWORD dwAlternateSetting = pDeviceInfo-pActiveInterface[0]-pActiveAltSetting-Descriptor.bAlternateSetting; ???? ???? ????TRACE(\nDeviceAttach: received and accepted attach for vendor id 0x%x, ????????product id 0x%x, interface %ld, device handle 0x%p\n, ????????pDeviceInfo-Descriptor.idVendor, pDeviceInfo-Descriptor.idProduct, ????????dwInterfaceNum, hDevice); ???? ????/* Add our device to the device list */ ????pDevCtx = (DEVICE_CONTEXT *)malloc(sizeof(DEVICE_CONTEXT)); ????if (!pDevCtx) ????{ ????????ERR(DeviceAttach: failed allocating memory\n); ????????return FALSE; ????} ????BZERO(*pDevCtx); ????pDevCtx-hDevice = hDevice; ????pDevCtx-dwInterfaceNum = dwInterfaceNum; ????pDevCtx-dwVendorId = pDeviceInfo-Descriptor.idVendor; ????pDevCtx-dwProductId = pDeviceInfo-Descriptor.idProduct; ????pDevCtx-dwAlternateSetting = dwAlternateSetting; ???? ????OsMutexLock(pDrvCtx-hMutex); ????for (ppDevCtx = pDrvCtx-deviceContextList; *ppDevCtx; ????p

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档