为什么我在跑NI-HSDIO的动态生成或者动态采集的范例的时候出现了1074108767的错误



硬件: Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6562, Digital I/O (DIO)>>High-Speed Digital I/O>>PXI-6562

问题:
当我使用范例查找器中的动态采集范例运行NI-HSDIO时候,我得到了如下的错误:
Error -1074108767A memory configuration problem is interfering with a background transfer mechanism. This could mean that a buffer failed to be allocated or that a buffer was allocated but is not in the address range of the targeted bus master. The operation could not be completed as specified.
Status -50350

为什么会出现这样的错误呢,因为我知道NI-HSDIO是支持64位的操作系统的。


解答:
这是一个在NI-HSDIO 1.6.1或者之前版本已知的问题。这个问题在PXIe的设备上不会出现,在NI-HSDIO 1.7一级以后的版本中已经解决了这个问题。


PXI或者PXI的设备使用的总线接口芯片无法对32位以外的内存地址进行DMA。如果可行的话,驱动会尝试使用DMA方式直接将数据放置用户指定的内存中,但是如果这个内存地址在32位地址以外的,驱动就会重新分配一块内存同时强制这个内存在32位地址的范围内。然后数据通过DMA的方式存放到这个内存中,最后拷贝到前面所提到得用户指定的内存中。
在NI-HSDIO 1.6.1以及之前的版本中,并没有前面所提到的32位地址内存重新分配的过程,所以一旦用户的内存在32位地址之外,就会发生上述的错误。另外一种情况是在NI-HSDIO 1.7以及后续版本中也可能会碰到,就是当系统的内存不够的时候,在这样的情况下,可以尝试减少分配的内存或者是关闭其他应用程序来腾出内存空间。

相关链接: KnowledgeBase 4H8HN2QA: Receiving Error -50350 When Using DAQmx on Vista x64


附件:





报告日期: 12/03/2009
最近更新: 08/07/2011
文档编号: 542FG8EB