From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

VISA Memory Type changes after 3rd part PXI card software is installed.

My company has a PXI card that has some basic PXI driver code that essentially tries to allocate some VISA memory using viMapAddress(...). This works perfectly and we've had no issues. However when we install a 3rd party piece of PXI hardware the memory size returned for BAR0 is 0. Doing a little more digging between a working system and a non-working system i can see that the memory type has changed from VI_PXI_ADDR_MEM to VI_PXI_ADDR_MEM_NONE.( documentation states that all memory size requests will be meaningless is memory type is set to NONE )

 

The following code reads the VI_ATTR_PXI_MEM_TYPE_BAR0 attribute and returns different values for the working and non working systems. This attribute is read-only and so I cannot set it back to VI_PXI_ADDR_MEM.

 

int memType = -99;

 

status = visa32.viGetAttribute(vi, visa32.VI_ATTR_PXI_MEM_TYPE_BAR0, out memType );

 

I'm a little out my depth here and i can't find much detail on how memory should be allocated apart from a basic example which is pretty much what we do.

 

Some other info:

 

1. The chassis we're using is a PXIe chassis.

2. The 3rd party HW sits in the chassis and the system continues to work until we install the driver. 

3. Once it's in the failing state reboots or system restarts does not effect it.

4. Uninstalling the driver does not address the issue.

5. VISA 17.5.0

6. We've also tried BAR1,2,3,4 and 5.

 

So my question is how do i set the memory type?

 

0 Kudos
Message 1 of 1
(607 Views)