Hello,
I'm trying to implement a bare metal code for the MPC5668G. Is it possible to use the Posix Message Queues on this controller or are there different methods to implement messages between the two cores?
Thanks and best regards
Tim
Solved! Go to Solution.
Hi,
both cores can access whole memory map, so data can be simply shared in RAM memory. You can allocate required amount of RAM in the linker file. If cache memory is enabled on e200z6 core, make sure that shared area is configured in MMU as cache inhibited to ensure data coherency.
It is also possible to use semaphores to ensure data coherency on application level (i.e. before a core can update or read memory coherently, it has to check the semaphore to see if other core is not already updating the memory).
It is also possible to use software interrupt to inform other core that required data are already present in shared memory.
Posix Message Queues - this is just software implementation. It depends which software (OS) you use...
Regards
Lukas
Hi,
both cores can access whole memory map, so data can be simply shared in RAM memory. You can allocate required amount of RAM in the linker file. If cache memory is enabled on e200z6 core, make sure that shared area is configured in MMU as cache inhibited to ensure data coherency.
It is also possible to use semaphores to ensure data coherency on application level (i.e. before a core can update or read memory coherently, it has to check the semaphore to see if other core is not already updating the memory).
It is also possible to use software interrupt to inform other core that required data are already present in shared memory.
Posix Message Queues - this is just software implementation. It depends which software (OS) you use...
Regards
Lukas