help pru allocating 320mb

I tried modprobe uio_pruss extram_pool_sz=0x14000000 but get an error. My ultimate goal is to use the PRU to acquire data and store it inside a memory ring buffer.

For now I am just copying the data from the small memory to a bigger location in memory, but sometimes it is slow. How do I manage this?

Hi catmona!

I tried modprobe uio_pruss extram_pool_sz=0x14000000 but get an error.

The uio_pruss driver limit is 8 MB (0x800000).

My ultimate goal is to use the PRU to acquire data and store it inside a memory ring buffer.

Why do you think you’ll need such a big ring buffer? The ring buffer should only ensure asynchronuous access (covering latency, generated by the non-real-time Linux system).

For now I am just copying the data from the small memory to a bigger location in memory, but sometimes it is slow. How do I manage this?

I work in several projects with the ring buffer mode of libpruio. It always works with the default 256 kB setting. Check out the example rb_file.

Anyway, the PRUSS need not use the driver memory. You can allocate memory in the ARM process, compute the absolute address and pass it (and the memory block length) to the PRUSS, in order to write to that memory area.

Regards

Anyway, the PRUSS need not use the driver memory. You can allocate memory in the ARM process, compute the absolute address and pass it (and the memory block length) to the PRUSS, in order to write to that memory area.

How does one allocate memory in the ARM process and pass it?