According your description it seems that all available buffers are in use at the time the MCC communication is stopped and there is no free buffer available for sending messages.
The MCC contains just one message pool and both sides (both cores) could allocate from this pool. Once the receive side stops consuming messages the system could become congested/blocked quite quickly. It is up to the application to manage that and avoid this situation.
I guess that M4 core sends results periodically and finally there isn’t any available buffer, therefore A5 core cannot send changed parameters.
Idea1:
You can implement 1:1 interface => 1 parameter = 1 result
Idea2:
You can look at mcc_config.h file and change MCC_ATTR_NUM_RECEIVE_BUFFERS and MCC_ATTR_BUFFER_SIZE_IN_BYTES definitions. MCC_ATTR_BUFFER_SIZE_IN_BYTES should reflect length of potentially biggest message. MCC_ATTR_NUM_RECEIVE_BUFFERS tells us how many statically allocated buffers are available - for both cores totally.
Could you please somehow describe your MCC system (code, pseudo-code, by words, …) with parameters and samples flow?
Have a great day,
RadekS
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------