I'm using the MCAPI driver to send connectionless messages between the two SHARC cores and the ARM core (but not between the SHARC cores). I'm using the high priority for buffers full of audio data, and the low priority for control messages that have headers that identify the source and destination cores. The code I inherited used a pile of endpoints, for each direction, for each priority, and for each remote core, so the SHARCs have four and the ARM has eight. The way I understand the MCAPI driver, I think I really only need one in each core, but I'm not sure.
Since I'm not making actual connections between endpoints, it seems that when I send a message, it doesn't matter what local endpoint I use to send through, because that information isn't available to the receiving application anyway. All I should have to do is send it from my sole endpoint to the destination core's sole endpoint. The source core is known to the receiver because (in my system) audio only comes from one place, and I incluyde a sender byte into each control message. And the priority is known by the receiver because mcapi_msg_recv_i() asks for a specific priority.
Does that make sense, or is there some reason I need to use multiple endpoints?
Whatever the answers to that, how should I configure MCAPI? What's a named endpoint, versus an anonymous one? Does the max number of endpoints refer to the core or the whole system? Are the maximum message size and number of buffers meaningful only for packet channels, or do I have to specify nonzero values for those even though I'm using connectionless messages in application buffers?
Or is there a document that answers these questions?