Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

LinuxRT : share a buffer between 2 VIs running in parallel without blocking

Hi,

I've got 2 VIs running in parallel.

One is updating values at specific indexes in an array.

The other one is reading the array to deal with the values (passed to the FPGA into a DMA).

 

In order to limit memory allocation, i've been using RT FIFOs working on an array of specifc size.

Both my writer and reader maintain context of the same size in shift registers. So every read/write is based on an array of the same size.

 

The data sharing is pretty fast and timeouts are both set to 0. R/W method is set to polling.

My reader process do not necessarily need the latest data written, but it should read real fast (even not up to date data).

 

What happen is that, when I write into the RT FIFO (Writer process), it seems that it blocks the Read RT FIFO primitive for a few hunderd of microseconds.

 

Is there a way to share data with the reader NOT being blocked because the writer updates the array (memory) ?

 

CLA, CTA, LV Champion
View Cyril Gambini's profile on LinkedIn
This post is made under CC BY 4.0 DEED licensing
0 Kudos
Message 1 of 1
(505 Views)