mcc transmission problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mcc transmission problem

778 Views
heinzroitner
Contributor II

Dear support,

I am sending data via mcc from a Vybrid M4 to an A5 using MQX (for my system data see thread 329003).

Samples are sent from M4 to A5 and parameters are sent from A5 to M4. This works fine if both samples and parameters are sent.

However, if the sample receive part on A5 is commented out (this means permanent timeout for sample send from M4), parameters are received on M4 only once or twice, then not any more.

Can you explain this behavior ?

You help is urgently needed !

Thanks,

Heinz

0 Kudos
Reply
2 Replies

569 Views
RadekS
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

569 Views
israelcass
Contributor I

Hi,

I'm having a little different problem and i can't fix.

Until now I'm using the MCC default configurations ..

on mcc_linux.h

#define SHARED_IRAM_SIZE (64*1024)

on mcc_config.h

#define MCC_ATTR_NUM_RECEIVE_BUFFERS   (10)
#define MCC_ATTR_BUFFER_SIZE_IN_BYTES  (1024)

Now, in my implementation, the structure that A5 and M4 shared is bigger the the buffer and i need to resize it.

I already try to resize the buffer (1024->2048), the buffer number (10->20) and the shared ram size (64->128), but no success.

Is there another variable that i need to change ?

0 Kudos
Reply