LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Obtaining a PCI address vs a virtual address?

I am writing a DLL that LabVIEW accesses to do block DMA transfers from a
PCI device. The function that I am using (in the DLL) needs a known PCI
address for the buffer and not a virtual address (malloc()) or user address.
I intended for LabVIEW to pass a pointer of an array that would be filled by
the DMA transfer. This apparently won't work.

After I create an array in LabVIEW, the DLL can't change the size of this
array because it will overwrite data within LabVIEW.

1. How can I use the pointer (virtual address) from LabVIEW to do a DMA
transfer that requires a known PCI address (I assume a block of memory for a
buffer)?

2. How will my LabVIEW array be filled if the DMA is filling a different
block of mem
ory?

3. Can this memory area (the PCI buffer block) be moved to the array
location? If so, how?

4. How can I obtain a block of memory with a known PCI address?


I appreciate all the help I can get

Thanks

D
0 Kudos
Message 1 of 1
(2,207 Views)