Hello @yzs ,
Thanks for your post and sorry for the delay.
Based on the situation you mentioned, I conducted the following tests. I used the following pair of examples.

The link relationship between core0 and core1 can be seen in the properties of rpmsg_lite_pingpong_cm33_core0.

Then, as you suggested, I commented out the relevant code for notification and waiting in main_remote.c of rpmsg_lite_pingpong_cm33_core1.
/* Signal the other core we are ready by triggering the event and passing the APP_RPMSG_READY_EVENT_DATA */
-101 (void)MCMGR_TriggerEvent(kMCMGR_RemoteApplicationEvent, APP_RPMSG_READY_EVENT_DATA);
+102 //(void)MCMGR_TriggerEvent(kMCMGR_RemoteApplicationEvent, APP_RPMSG_READY_EVENT_DATA);
-107 rpmsg_lite_wait_for_link_up(my_rpmsg, RL_BLOCK);
+108 //rpmsg_lite_wait_for_link_up(my_rpmsg, RL_BLOCK);
After that, I recompiled rpmsg_lite_pingpong_cm33_core1, then flashed the compiled bin file again and retested it. After several tests, it was found that the master and remote cores were unable to communicate.

Therefore, I suspect that there might be an operational issue on your end. Did you recompile after commenting out the code? Or are there any differences between your operations and mine? Please let me know so that I can continue the investigation.
I didn't see any indication anywhere that the clocks of the master core and the remote core are different.
You can also use mailbox to achieve multi-core communication. There are demo like this in the SDK. You can go and have a look.

Hope it can help you.
------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the "ACCEPT AS SOLUTION" button. Thank you!
------------------------------------------------------------------------------------------
BRs,
Celeste