VXI and VME

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-MXI-2 User Window & multiple MapVXIAddress

I am unclear as to the relationships between the hardware (PCI-MXI-2 User Window Size) and software library (MapVXIAddress), as well as driver/library issues stemming from multiple processes.

The particulars:
Two custom VXI boards, which resman configures as LA2 and LA3 at addresses 88000000 and 80000000 respectively and required memory for each board is 128M. At this point everything is great.

However, when I call MapVXIAddress for the first board, the window is only 64K. I think I need to call MapVXIAddressSize first, but have not gotten there yet. If the second program, which uses the second board call MapVXIAddress, it fails (-8).

I tried increasing the User Window in vxitedit, but simply succeeded in corrupting m
y EEPROM and had to use FOV to reset it.

Is it possible, using Linux and NI-VXI to get this configuration to work? I have not succeeded, but will keep trying in anticipation of some helpful hints.
PCI-MXI-2 User Window Size: 256M
process 1: MapVXIAddressSize(128M), MapVXIWindow(0x88000000)
process 2: MapVXIAddressSize(128M), MapVXIWindow(0x80000000)

They must be separate processes (not threads) due to other library restrictions.

P.S. Why isn't NI-VXI library and NI-VISA on the supported software pulldown menu?
0 Kudos
Message 1 of 5
(7,728 Views)
Answering my own question! It does seem possible. I pared down two programs to do just the mappings and simple register reads to verify. This time I managed to change the PCI-MXI-2 User Window Size to 0x10000000 (256Mb) without killing the card -- not sure what I did bad before. I think this was the main part of my problem, since the default is only 0x00010000.

However, the windows always come back as 64K, as reported by GetWindowRange. So I added a call to MapVXIAddressSize(0x08000000) i.e. 128M per card. This failed, with a return code from MapVXIAddressSize of -32768, which has no decode that I can find.
0 Kudos
Message 2 of 5
(7,728 Views)
Mike,

This is a known issue with the NI-VXI 2.0 driver for Linux. If you could please create an e-mail support request from www.ni.com/ask, we can discuss possible workarounds,

Regards,

Andrew Mierau
Applications Engineer
National Instruments
Message 3 of 5
(7,729 Views)
I have a similar problem, in that I can't map more than 64k in A24 space. When I call the VISA function viMapAddress, it fails with error VI_ERROR_ALLOC if I request more than 64k. A sample program that demonstrates the problem is attached. I am using nivxi driver 2.0.0 for linux.
0 Kudos
Message 4 of 5
(7,679 Views)
This is a known issue with NI-VXI 2.0.0 for Linux, and there is a patched version available. Please submit an email support request www.ni.com/ask to obtain the patch.

Thanks,
Richard Thrapp
0 Kudos
Message 5 of 5
(7,619 Views)