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

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

ID:37733359

大小:39.50 KB

页数:11页

时间:2019-05-29

利用windriver 开发了个usb的驱动,写个开发心得_第1页
利用windriver 开发了个usb的驱动,写个开发心得_第2页
利用windriver 开发了个usb的驱动,写个开发心得_第3页
利用windriver 开发了个usb的驱动,写个开发心得_第4页
利用windriver 开发了个usb的驱动,写个开发心得_第5页
资源描述:

《利用windriver 开发了个usb的驱动,写个开发心得》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、利用windriver开发了个usb的驱动,写个开发心得项目组需要利用2440采集数字电视的采样数据,所以让我开发一个usb的数据采集系统,就两个要求1速度要达到500kbyte/s以上2稳定由于之前没有做过windows驱动的经验,所以花了3,4天时间读了读ddk的文档,期间还上chinapub找个本书,读了免费的第1章,按照他配置了vc的编译环境,呵呵。然后就吧ddk下面的bulkusb源代码进行了修改,写好usbdevice的驱动,有些了个应用程序,测试一下,采集数据是ok了,但是发现有时候蓝屏,特别是采集100m左右,就会出现蓝品!这下没办法

2、了,由于我本身就对windows内核编程不熟悉,有调试了大概3,4天确认问题可能处在电源管理方面,联系到自己对这方面不是很熟悉,而且时间紧迫,没办法转向windriver开发!我安装的是9.21版本(请到迅雷下载)。1.驱动的开发:      a  这步开发比较简单,首先确认你的device固件正确能枚举成功,然后将device连接到pcusbhost端。      b  按照向导指引刷出你的设备进行配置,然后点击编译按钮生成代码。这部分内容请参考安装文档的快速开发向导!2.应用程序开发:    最主要的几个函数是,opendevice  和read

3、write函数:其实大家只要摘录向导生成代码的内容即可,这里贴一个我的staticWDU_DRIVER_HANDLEhDriver=0;staticDRIVER_CONTEXTDrvCtx;staticBOOLDLLCALLCONVDeviceAttach(WDU_DEVICE_HANDLEhDevice,                                    WDU_DEVICE*pDeviceInfo,PVOIDpUserData){    DRIVER_CONTEXT*pDrvCtx=(DRIVER_CONTEXT*)pUser

4、Data;    DEVICE_CONTEXT*pDevCtx,**ppDevCtx;    DWORDdwInterfaceNum=pDeviceInfo->pActiveInterface[0]->pActiveAltSetting->Descriptor.bInterfaceNumber;    DWORDdwAlternateSetting=pDeviceInfo->pActiveInterface[0]->pActiveAltSetting->Descriptor.bAlternateSetting;            TRACE("

5、nDeviceAttach:receivedandacceptedattachforvendorid0x%x,"        "productid0x%x,interface%ld,devicehandle0x%p",        pDeviceInfo->Descriptor.idVendor,pDeviceInfo->Descriptor.idProduct,        dwInterfaceNum,hDevice);        /*Addourdevicetothedevicelist*/    pDevCtx=(DEVICE_

6、CONTEXT*)malloc(sizeof(DEVICE_CONTEXT));    if(!pDevCtx)    {        ERR("DeviceAttach:failedallocatingmemory");        returnFALSE;    }    BZERO(*pDevCtx);    pDevCtx->hDevice=hDevice;    pDevCtx->dwInterfaceNum=dwInterfaceNum;    pDevCtx->dwVendorId=pDeviceInfo->Descriptor

7、.idVendor;    pDevCtx->dwProductId=pDeviceInfo->Descriptor.idProduct;    pDevCtx->dwAlternateSetting=dwAlternateSetting;        OsMutexLock(pDrvCtx->hMutex);    for(ppDevCtx=&pDrvCtx->deviceContextList;*ppDevCtx;    ppDevCtx=&((*ppDevCtx)->pNext));    *ppDevCtx=pDevCtx;    pDrv

8、Ctx->dwDeviceCount++;    OsMutexUnlock(pDrvCtx->hMutex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。