LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI base address

How do I programmatically determine the PCI base address of a non-NI board?

0 Kudos
Message 1 of 6
(3,453 Views)
What platform? If this is Windows you most likely will have to call Windows API functions. And likely some of the group SetupDi... in setupapi.dll. But be warned those APIs are not very LabVIEW friendly. It will be most likely a lot easier to create an intermediate DLL in C/C++ and call that one from LabVIEW using the Call Library Node.
Message Edited by rolfk on 05-30-2010 08:40 PM
Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 2 of 6
(3,424 Views)

Thanks for your reply.

It is Windows XP, but will likely become Windows XP embedded.

PC/104+ form factor.

 

I wonder if anyone has done this (called Windows API functions OR a custom DLL) for LabVIEW already and is willing to post code?

0 Kudos
Message 3 of 6
(3,411 Views)

Red Sox Fanatic wrote:

Thanks for your reply.

It is Windows XP, but will likely become Windows XP embedded.

PC/104+ form factor.

 

I wonder if anyone has done this (called Windows API functions OR a custom DLL) for LabVIEW already and is willing to post code?


I'm sure it has been done and I'm equally sure nobody will post a complete ready made solution. If you want to do this the right way (TM) you will write a DLL in C/C++ and call that from LabVIEW. The SetupAPI is really not a good candidate to interface to through the Call Library node.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 4 of 6
(3,390 Views)

I think you can find it manually on the "driver details" page under windows.  I believe this same information is stored in the drivers *.inf file.  I have done work on PCI register level but i did not use the base address programmatically.  I think i went through a procedure for creating a VISA driver for said device under max, which then enabled you to get a handle directly to the PCI device.  From there you can read the base address and offset into the correct registers.  Here is my original thread which may cover some of those details.

 

http://forums.ni.com/ni/board/message?board.id=170&message.id=300577#M300577

 

Craig

LabVIEW 2012
0 Kudos
Message 5 of 6
(3,353 Views)
Thanks much for the tip - I will give it a go.
0 Kudos
Message 6 of 6
(3,349 Views)