2021-03-16 06:26 AM
Hi,
i have done some Benchmarktest via Rpmsg and iam getting following results:
Maximal datarate sending data from M4 to A7 4.359 MB/s.
Maximal datarate sending data from A7 to M4 9.16 MB/s.
Now iam not sure why reading from A7 side is so much slower than writing, because you always get an interrupt back doesnt matter if you are sending or reading data.
I have following thougths about that and also a question:
Maybe someone already have some thoughs or answers to that.
2021-03-17 01:22 AM
Hello,
The Linux operating system is not a real-time OS, the latency of interrupt handling is not predictable and depends on other processes running on the Cortex-A7.
So it quite difficult to give you a clear answer as it depends on the context.
=> On IPCC interruption a work is registered in the remoteproc driver to treat the new messages out of the interrupt context.
=> Right, and the your Cortex-M4 firmware is probably in a while loop waiting new messages. The Linux can execute some other thread in parallel.
Please also notice that the data rate depends on the size of the RPMsg buffers and the number of buffer used.
For more information, you can consult this article: https://wiki.st.com/stm32mpu/wiki/Exchanging_buffers_with_the_coprocessor