pphust
驱动牛犊
驱动牛犊
  • 注册日期2005-01-06
  • 最后登录2006-09-13
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1004回复:3

PCI驱动疑问高手赐教???

楼主#
更多 发布于:2005-03-23 08:54
1。pci接口用DMA方式是不是只能是主模式?如果可以是从模式(DMA在主板上),那怎么启动主板上的DMA.
2.我用的是DSP 6205带PCI芯片,资料上说,进行PCI主模式,只支持最大长度为64KB的突发模式。那么我的dma一帧最多只能设为64KB吗 ??
3。我用DRIVERstudio。开发。每次调试到下面
   if (pXfer->SequenceTransferDescriptors(&ptd))
处就黑屏死机。不知道为什么??
VOID PCIDMA1Device::OnDmaReady(KDmaTransfer* pXfer, KIrp I)
{

  if (pXfer->BytesRemaining() == 0)
    {
      pXfer->Terminate();
      I.Information() = I.IoctlInputBufferSize(CURRENT);
      I.Status() = STATUS_SUCCESS;
      m_DriverManagedQueue.PnpNextIrp(I);
      m_CurrentTransfer = NULL;
      delete pXfer;
      return;
    }
   PTRANSFER_DESCRIPTOR ptd;
   if (pXfer->SequenceTransferDescriptors(&ptd))
    {
    t << \" Physical address 0x\" << ptd->td_PhysAddr.LowPart << \". Length is 0x\"<< ptd->td_Length << \".\" << EOL;
    }
     if ((ULONG) pXfer->BytesRemaining() ==   I.IoctlInputBufferSize())
{StartDMA(ptd->td_PhysAddr.LowPart,ptd->td_Length);}
}
 
以上问题希望大家指教,谢谢!!!!
新手上路
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-03-23 09:04
delete pXfer;对吗?,,,,

一起学习啊,,呵呵,,,我昨天也正看了这里,,,

它说传输完毕以后删除KDmaTransfer对象,,,你觉得是这么删除吗?

我感觉是你调用pXfer->Terminate();的时候就删除了吧。。。。

讨论学习中。。。。。

DS中可以用delete操作符吗?。。。。疑问。呵呵
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-23 15:44
呵呵,,又看了看,,是可以用delete的。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
pphust
驱动牛犊
驱动牛犊
  • 注册日期2005-01-06
  • 最后登录2006-09-13
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-23 21:15
不是delete的问题,还是死机。望高手解惑
!!!
新手上路
游客

返回顶部