ablha
驱动牛犊
驱动牛犊
  • 注册日期2004-02-16
  • 最后登录2012-05-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2264回复:0

PCI 9054 中断的问题

楼主#
更多 发布于:2010-07-19 11:46
我目前在做一个pci 9054的windows驱动程序。我的PCI卡外设没有用FIFO(芯片比较贵),但是要求上位机及时取走数据,不丢数据。
我的想法是cpld每次有数据,用LINT中断通知驱动程序,驱动程序的中断dpc例程里面,发起dma,取走外设的数据。

目前用KeQueryPerformanceCounter这个函数计时,DDK里面讲
Use this routine as infrequently as possible. Depending on the platform, KeQueryPerformanceCounter can disable system-wide interrupts for a minimal interval. Consequently, calling this routine frequently, as in an iteration, defeats its purpose of returning very fine-grained, running time-stamp information. Calling this routine too frequently can degrade I/O performance for the calling driver and for the system as a whole.

我实际使用也发现用了这个函数,会导致有的中断我不能接收,从而丢数据。
另外,即使我不用这个函数,我发现amd双核的平台上,有个amd的节电程序频繁使用KeQueryPerformanceCounter这个函数(我用softice看到的),从而导致我的pci卡会丢数据。



是不是我这种方式有问题,必须加上FIFO来解决丢数据的问题?
游客

返回顶部