cancel
Showing results for 
Search instead for 
Did you mean: 

Indirect transfer data from A7 Linux core to MCU SRAM3 (shared memory), and read data from M4 core

Owen Murphy
Associate II

I am looking to transfer large amount of data from the linux userspace to the MCU shared memory (MCU SRAM3) using the indirect transfer method:

https://wiki.st.com/stm32mpu/wiki/Exchanging_buffers_with_the_coprocessor

I would like to use the MCU SRAM (as opposed to DDR) because there are tight timing requirements, so I would like to keep everything in the MCU tightly coupled memory.

Are there any tutorials, explainers, or example code that shows how to do this? I found this, but it is targeted to using DDR instead of MCU SRAM:

https://wiki.st.com/stm32mpu/wiki/How_to_exchange_data_buffers_with_the_coprocessor#rpmsg_sdb_driver

As far as I understand, it's not possible to write data directly to a specific physical memory address from a linux userspace application. So is it possible for my linux application to create a buffer in SRAM3, then pass the physical address pointer the M4 program using rpmsg/openamp?

Also, does there need to be some sort of spinlock on SRAM3 to prevent either core from reading/writing to it at the same time, or are both cores allowed to read/write to SRAM3 simulatneously?

Thank you,

Owen

0 REPLIES 0