BeagleBone / BeagleBoard DISCUSSION

How should Linux and a BeagleBone PRU exchange blocks without overrunning each other?

Started by raniachar BeagleBone PRUshared memorybuffer ownershipdata streaminghost latency
3 replies 248 views 4 participants
Latest activity · 27 Sep 2026

How should Linux and a BeagleBone PRU exchange blocks without overrunning each other?

raniachar BeagleBone / BeagleBoard Forum
#1

Community replies 3

Re: How should Linux and a BeagleBone PRU exchange blocks without overrunning each other?

#2

Give each block explicit ownership and a sequence number. The producer should publish completion only after the block is ready, and the consumer should release it only after finishing. Apply the platform's memory-ordering and visibility requirements rather than relying on a shared flag alone.

Re: How should Linux and a BeagleBone PRU exchange blocks without overrunning each other?

#3

Size the buffer for a measured interruption budget. At 100,000 samples per second and two bytes per sample, 100 ms of backlog requires 20,000 bytes before metadata. Extra capacity handles a bounded delay; it cannot fix a consumer that is slower on average indefinitely.

Re: How should Linux and a BeagleBone PRU exchange blocks without overrunning each other?

#4

Define an overrun policy and expose counters to the application. Test storage stalls, CPU load and host-process restarts. If the data must be lossless, prove that the sustained path and worst expected stalls fit the budget, or provide an explicit backpressure mechanism the source can obey.

TEP COMMUNITY