My customer started a project with iMX8M-mini and since he plans to use CM4 and CA53 he would like to know the following:
1. What is the maximum throughput available while using inter-process communication (aka rpmsg module) between the CortexA53 and CortexM4?
2. What is the maximum shared memory available between the two cores (CM4 and CA53)?
3. Dose the CortexM4 can use one of the CortexA53 timers and if yes, what is the maximum clock that can be achieved (in the CM4)?
4. There is any recommendation for IDE that can handle (compiling and debug) both CortexA and CortexM4, The main purpose is to debug the M4 while communicating with A53 (and vice versa)?
5. There is a plan to enable the config tool to config the pinmux of the CM4?
Waiting for your kind responses, Thanks in advance
An apology for the delay, I was collecting the information.
1. I share a link that better explains the RPMsg https://github.com/OpenAMP/open-amp/wiki/RPMsg-Messaging-Protocol
2. The maximum shared memory is 2048MB, from address 4000_0000 to BFFF_FFFF
3. The Clock ATB of the A53 can also be used as an output for the M4.
4. the only IDE that is compatible with our SDK is IAR
5. It is enabled to configure the M4 in the PinMux.
Thanks for your inputs, could you please advise the below:
1) What is the max throughput between M4 – A53 consider using the IPC (RGMSG).
Also if there any other options to transfer high throughput data between them ( DDR, etc’ )
2) The customer needs to build a very accurate 1-millisecond using M4 timers.
Is it possible to get it if we use the GPT? are these timers are used with an advanced feature?
Waiting for your kind feedback, Thanks in advance
1. In the i.MX Linux Reference Manual you can find the guide to run the i.MX RPMsg Test program, I share the link, so you can experience it.
2. It is possible to use the GPT, you can select different clocks as a source for the timer, in the reference manual it tells you what values to set according to the clock used.
I appreciated your promoted answer, but I would like to get a guideline on how to perform the following task:
the customer wants to use the M4 to record some audio (for a few secs) and waiting for an interrupt to wake-up the A53 in order to process the audio as fast as possible.
as I understand the M4 can store the audio/data into the shared memory space (DDR) and then using the RPMSG to signal the A53 to process the audio/data?
please correct me if I am wrong, and please advise if there is any example code for such a task?
thanks in advance.
In the SDK you can find a demo that does what you need, you can download it from here https://mcuxpresso.nxp.com/en/select
The example is called sai_low_power_audio and you can find it in the boards folder.