cg19820811
驱动牛犊
驱动牛犊
  • 注册日期2005-02-28
  • 最后登录2007-07-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:1354回复:2

请问一下DS怎么生成多端点传输驱动,芯片是CY7C68013?(谢谢大家帮帮我吧)

楼主#
更多 发布于:2007-01-24 16:04
  我用DS生成了USB驱动。准备用于CY7C68013。

生成的了EP2 4 6 8都是Bulk模式。且Maximum Transfer Size  都是512

现在驱动自动生成了如下代码:


NTSTATUS TUsbDevice::Write(KIrp I)
{
                ......
    ULONG dwTotalSize = I.WriteSize(CURRENT);
    ULONG dwMaxSize = m_Endpoint2OUT.MaximumTransferSize();

    if (dwTotalSize > dwMaxSize)
    {
        ASSERT(dwMaxSize);
        dwTotalSize = dwMaxSize;
    }

    // Declare a memory object
    KMemory Mem(I.Mdl());

    // Allocate a new context structure for Irp completion
    USB_COMPLETION_INFO* pCompInfo = new (NonPagedPool) USB_COMPLETION_INFO;
    if (pCompInfo == NULL)
    {
        I.Information() = 0;
        return I.PnpComplete(this, STATUS_INSUFFICIENT_RESOURCES);
    }

    PURB pUrb = m_Endpoint2OUT.BuildBulkTransfer(
                    Mem,          // Where is data coming from?
                    dwTotalSize,  // How much data to read?
                    FALSE,        // direction (FALSE = OUT)
                    NULL          // Link to next URB
                    );    
            ...........        

}

想问的问题就是为什么只有 m_Endpoint2OUT.BuildBulkTransfer(...) 端点2的下传数据代码?

那我是不是要自己增加其它端点的传输代码呢

把KIrp I里的数据自己分开然后用

m_Endpoint4OUT.BuildBulkTransfer(...)
m_Endpoint6OUT.BuildBulkTransfer(...)
m_Endpoint8OUT.BuildBulkTransfer(...)

这样下传吗

谢谢大家告诉我,其它的端点怎么用?这样下传速度会比对一个端点操作速度快吗?
cg19820811
驱动牛犊
驱动牛犊
  • 注册日期2005-02-28
  • 最后登录2007-07-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-25 14:06
这个技术版为什么会这么冷清呢。。目前来看是最大的驱动开发论坛版了。。。哎。。和些其它软件技术开发版相差太选了。。。
sealove518
驱动小牛
驱动小牛
  • 注册日期2007-09-08
  • 最后登录2012-07-01
  • 粉丝1
  • 关注0
  • 积分24分
  • 威望799点
  • 贡献值1点
  • 好评度41点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-03-02 12:42
顶一下,帮你
http://soez.taobao.com 淘宝网电子元件平价超市
游客

返回顶部