11-25-2015 10:55 AM
Is there any non-volatile memory in a PXIe-8135RT that I could use to store persistent information like a test serial number? I don't want to use a file on the hard drive since that can be overwritten or erased after an OS update/reformat.
I have other cards as well if they might have some NV memory I could access:
FlexRIO's
PXI-6281's
Thanks,
XL600
Solved! Go to Solution.
11-25-2015 11:47 AM
No, as far as I know the RT controller for PXI is essentially a small form factor PC that has a hard-drive for non-volatile storage. Perhaps you could use a small USB memory key in one of the USB slots?
Apparently some of the FlexRIO cards do have some on-board non-volatile storage that you can access, according to this article: http://digital.ni.com/public.nsf/allkb/4B0A422D33D86C8986257788006ED0DE
11-25-2015 12:07 PM
It looks like the PXIe-7966R doesn't have any, other than the FPGA of course. My NI-1483's don't appear in the list either.
Most SFF PCs do have some EEPROM that can be written to (EX: In the clock or elsewhere) but accessing it via LabView RT would probably need a custom DLL.
11-25-2015 01:52 PM
The PXIe-7966R does have user accesable non-volatile memory, a section of the flash on the board can store arbitrary attributes (I believe all FlexRIO FPGA modules have this, actually). You can access it using the VIs located in <vi.lib>\FlexRIO\FlexRIO_HostInterface.llb
The VIs are called FlexRIO_Host_CustomAttributeWrite.vi and FlexRIO_Host_CustomAttributeRead.vi
Stephen
11-25-2015 03:19 PM
That works great! Is there any documentation on how these VIs should be used or what the format is of the custom attribute area?
Thank you for the tip!
11-25-2015 04:13 PM
There is some documentation in LabVIEW Help > FPGA Module > NI FlexRIO Help > NI FlexRIO LabVIEW Host VIs > FlexRIO Host Custom Attribute [Read|Write] that describes the terminals, but it's not very specific on the format.
The attribute terminal basically translates into an offset into the user accessible portion of the flash, in U32s, so I would probably just start at 0 and count up. You could create an enum or something similar to give names to the attributes if you end up having a lot. The user accessible portion of the flash on the 7966R is 64KB.
11-30-2015 08:59 AM
I couldn't find any reference to this 64kB user area. I would think the LOV for the 7966R would have mentioned it, but it only mentions the 4Mx16bit bitfile memory. Is this 64kB a segment of that and if so, would it get erased during the bitfile storage or bitfile memory erasure process?
http://digital.ni.com/public.nsf/allkb/4203FD664AA1316386257A3A0062F6FC
Thanks again!
11-30-2015 09:39 AM
I confirmed that erasing the bitfile per the letter of volatility for the 7966R does not appear to erase the custom attribute area (NI... this is probably something you should address in your letter of volatility). That's good for my purposes but probably not a good thing for other users.
11-30-2015 10:09 AM
You are correct that it's not part of the same segment as the bitfile storage, and doesn't get erased if you delete the bitfile from flash. The only things that will be written there are things you've written yourself, so if you end up needing to delete them in the future, you can just write 0s to any attributes you've previously written.
I've filed a corrective action request to make sure this flash segment is properly listed in our Letter of Volatility. Thanks for pointing out the error.
11-30-2015 10:24 AM
Great, thanks! The read/write is quite slow so erasing the entire area (64kB) would take many hours using the host custom attribute read/write functions.