Hi team,
We are planning to use both the core CM7 and CM4 independently for our application.
As there was a small timing issue in our application we want to make CM7 as primary core and use this CM4 as a parallel running core for some operations
Example: Running hello world or blinking code in cm7 and Running some addition operation in cm4, but we want to use that addition operation result in cm7
Can you please suggest what is the steps or procedure to implement this?
Hi @Jeevan ,
Thank you for your interest in the NXP MIMXRT product, I would like to provide service for you.
The RT1176 is a dual-core processor. By default, CM7 is the primary core and CM4 is the slave core. If you need to change the primary core to CM4, you need to flash eFuse.
In dual-core applications, there are three main methods to keep the two cores in sync.
1.MU(Message Unit)
2.SEMA(Semaphore)
3.Shared memory
For detail description please refer to the link below
https://www.nxp.com.cn/docs/en/application-note/AN13264.pdf
And also, you can import SDK demo to help you better understand.
Wish it helps you.
If you still have question about it, please kindly let me know.
Best Regards
mayliu
Hey @Jeevan
Would you like to know how the applications on the two cores can communicate?
The 1170 has a messaging unit that can be used to exchange values and generate interrupts on the other core.
However, a shared memory area is better suited for exchanging larger amounts of data.
Hope this helps
Hi @Masmiseim ,
Is there any sample code or example code to execute atleast a basic program which works independently or parallely on both the cores (CM7 and CM4).
Hello @Jeevan,
The SDK from NXP contains many examples. You can download it from https://mcuxpresso.nxp.com/en. Alternatively, it is also available at github (https://github.com/nxp-mcuxpresso/mcux-sdk), but with fewer examples.
Among other things, you can find examples for the MessagingUnit under 'boards\evkmimxrt1170\driver_examples\mu'
Alternatively, you can take a look at my Coremark example: https://github.com/Masmiseim36/Coremark_iMXRT
This uses Rowley Crossworks as development environment. I prefer this over Eclipse