MCMGR_Trigger() vs MU_SendMsgNonBlocking()

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

MCMGR_Trigger() vs MU_SendMsgNonBlocking()

Jump to solution
1,007 Views
D_TTSA
Contributor V

Good day

I would like to send a uint16_t from the M4 core to the M7 core in the RT1176 processor. I have currently implemented this using MCMGR_Trigger(), but I don't know if I should be using MU_SendMsgNonBlocking() or MU_SendMsg() instead.

The only functional difference that I am aware of, between MCMGR_Trigger() and the MU alternatives, is that MCMGR_Trigger() only sends a uint16_t variable, where the MU options send a uint32_t. I am aware that the MU also has various channels, but since I will only be sending one message at a time, I don't think this is useful to me.

My questions are as follows:

1) What are the other differences between the MCMGR and MU options here? My application is real-time, so it would be great if someone could tell me if one or the other is faster.

2) Is there anything I should know about using MCMGR_Trigger(), repetitively, in a real-time application? In the examples (rpmsg and mu sdk examples specifically), it is only ever used once or twice, at the beginning of the program during initialisation.

Thank you in advance.

0 Kudos
1 Solution
987 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thanks for your reply.
From the function aspect, MCMGR_Trigger() is equal to the MU_SendMsg() and you can treat the MCMGR_Trigger() as the another encapsulation type of the MU_SendMsg().
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
3 Replies
988 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thanks for your reply.
From the function aspect, MCMGR_Trigger() is equal to the MU_SendMsg() and you can treat the MCMGR_Trigger() as the another encapsulation type of the MU_SendMsg().
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
997 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
1) What are the other differences between the MCMGR and MU options here? My application is real-time, so it would be great if someone could tell me if one or the other is faster.
-- In my opinion, the MCMGR is a software framework for implement communication between dual-core, and the MU is the hardware level of this framework.
2)Is there anything I should know about using MCMGR_Trigger(), repetitively, in a real-time application? In the examples (rpmsg and mu sdk examples specifically), it is only ever used once or twice, at the beginning of the program during initialisation.
-- To provide the fastest possible support, I'd highly recommend you to refer to the
message_buffer demo which how to implement lightweight core to core communication using FreeRTOS Message Buffers, which are lockless circular buffers that can pass data packets of varying sizes from a single sender to a single receiver.

jeremyzhou_0-1627284079480.png


Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
994 Views
D_TTSA
Contributor V

Hi @jeremyzhou 

Thank you for your reply.

1) I am not sure if this is true. After a deeper look at MCMGR_Trigger(), I see that it calls MCMGR_TriggerEventCommon(), which calls mcmgr_trigger_event_internal(), which calls MU_SendMsg(). I would like to know what the functional difference is between calling MU_SendMsg() directly, compared to using MCMGR_Trigger().

2) Unfortunately, I am only using FreeRTOS on the M7 core. I am running BareMetal OS on the M4 core. So using the freertos_message_buffers example is not an option.

Kind regards

0 Kudos