Using LabVIEW FPGA 2020 on sbRIO-9607 with latest firmware (8.5.0f0).
We are attempting to use the Host Memory Buffer feature introduced a few years back via the FPGA C API interface. All attempts to open the HMB from our C-code fail with error -52005 / NiFpga_Status_InvalidParameter. The problem is also seen using the
unmodified example provided by NI R&D in 2017, see: https://www.ni.com/en-us/support/documentation/supplemental/17/host-memory-buffer-overview.html. Obviously we've followed the example's instructions to change the target to sbRIO-9607 and recompile the bitfile for LabVIEW 2020, regenerate the C API files, and load the compiled program and lvbitx file onto the sbRIO.
All other C API functions seem to be working correctly; we can open and download the bitfile, read and write front panel controls and indicators, etc. But the NiFpga_OpenHostMemoryBuffer() function always returns error -52005. We have verified the session handle, buffer name, and other function args are correct (and again; this fails with the same error using the unmodified example code). We've also verified that the HBM is defined in LabVIEW FPGA with the same name compiled into the C-code example "HMB1". We have not modified the default VI provided with the example (HMBFPGA.vi).
In the provided example the NiFpga_OpenHostMemoryBuffer() function calls the NiFpga_ClientFunctionCall() with group=0 and function ID=2 to retrieve the HMB pointer. Have these constants changed between LV 2017 and LV 2020?
Feedback is much appreciated.
I never found a solution, but I did find this page that says HMB has been discontinued for the newer sbRIO and cRIO products:
What a shame.
Could you post code that reproduces the error?
HMB is still supported on our Zynq based targets so it should work on the 9607. (The tests in our ATS are still passing at least.)