I achieved decent throughput by using the standard RPMSG PRU driver with a 
larger buffer size (MAX_FIFO_MSG in rpmsg_pru.c changed from 32 to 4096) 
and by batching the PRU data into 496 byte chunks (512 byte RPMSG message - 
header).

There is a project using the DMA controller which might be a very fast 
option, I haven't tested it yet (but it looks promising): 
https://github.com/maciejjo/beaglebone-pru-dma

IIRC there are other projects that use the second PRU for data shoveling 
instead.


Am Mittwoch, 18. März 2020 01:22:01 UTC+1 schrieb Igor Jędrzejczak:
>
>
> I'm checking how fast can I copy data from Beaglebone Black PRU to an 
> userspace app on ARM. I'm using kernel v4.19 TI PREEMPT-RT.
>
> So far I simply modified the PRU_RPMsg_Echo_Interrupt1 example from here: 
> https://processors.wiki.ti.com/index.php/PRU_Training:_Hands-on_Labs#LAB_5:_RPMsg_Communication_between_ARM_and_PRU
>  . 
> Added IEP timer value as part of 480 byte message sent from PRU to ARM to 
> check time delta between data dispatches. For RPMsg I'm using "rpmsg-pru" 
> channel and on the ARM side in userspace app I'm reading the data from 
> /dev/rpmsg_pru31 with function read() to get the data. In this 
> configuration I'm reading the data on ARM side every 90us. 
>
> Here I wonder whether there is anything I could gather after writing 
> custom kernel module (beaglelogic approach?) over using RPMsg character 
> device. If yes, how much and what would be the best approach to collect the 
> PRU data as quickly as possible?
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/5a985c1a-319f-472c-bd05-7aee7f664985%40googlegroups.com.

Reply via email to