I'm using a Vybrid processor (A5 + M4). I need to pass data from the M4 to the A5 core in DDR memory. I can't simply write to a memory space using the M4 and have the A5 read the same space because the A5 data is cached. The A5 would know nothing about the new data. Is there a way to accomplish this?
Thanks Jack for your reply. I've been playing around with the MCC stuff and it seems to work. Still experimenting.
I finally found the documentation on MCC in the doc/mcc directory. I'm running MQX on both the A5 and M4 cores. I'm assuming that MCC will still work in this case.
Since there has been no real answer to this question, I have to assume that there is no reasonable way for the A5 core and M4 cores to talk to each other short of going through some peripheral (such as a UART or SPI port). Sad that no form of non-cached common memory was designed in.
A shipping product that I developed depends on this Vybrid feature. It works well.
Look into MCC (MultiCore Communication). If you are using Linux on the A5, there is a driver for that. If you are using MQX on the M4, there is a library for that, too.
MCC, out of the box, doesn't use DDR. It uses part of the on-chip dual-port memory. If you want to use DDR, you'll have to modify the sources for that on both sides.
I looked through the Vybrid Reference manual (V9) and the MQX RM (V 19 MQX V 4.02) and neither has any mention of dual-ported memory or MCC. Is the dual-ported memory made up using software, or is there an actual hardware dual-port memory hidden somewhere?