cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H757 / Inter-core Communication using OpenAMP and HSEM in RTOS

StrangeTau
Associate III

Hello

 

I'm developing RTOS environment of dual-core in STM32H757.

An error occurred while transfering the data from CM4 to CM7, and I didn't think the EndPoint was fully created, so the value of variable "status" checked, and the value is greated than 0.

Is the variable and creation of EndPoint irrelevant?

<Flow>

1. CM7 & CM4 : EndPoint and OpenAMP initialized (status ≥ 0).

2. CM7 : Function  MAILBOX_Poll() is circling an infinite loop in the function OPENAMP_Check_for_message() within function receive_message().

/ CM4 : Waiting for the flag status.

3. [Send error from CM4 to CM7]

CM7 : The same condition as '2.'

/ CM4 : Function OPENAMP_send is returning RPMSG_ERR_ADDR because dest_addr is equal to RPMSG_ADDR_ANY.

 

Any help is greatly appreciated!

 

# The code in rpmsg.h file.

StrangeTau_0-1728527311846.png

# Terminal results

StrangeTau_1-1728527324639.png

 

Friendly regards, Tau

2 REPLIES 2
Imen.D
ST Employee

Hello @StrangeTau 

Did you try to follow these articles using OpenAMP and HSEM.?

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

Hello @Imen.D 

Thank you for your prompt response and congrating me.

 

I haven't seen that article, but I've seen examples from the sources below.

I think the example is simmilar to the article from the source below. Is that correct?

 

I understand that CM7 is the master core and CM4 is the slave core in STM32H7, but I would like to use CM4 as the master core in OpenAMP.

In other words, can I apply the CM7 example code to the CM4 files and the CM4 example code to the CM7 files?

At first, I would like to send the data from CM4 to CM7. After this operation, Ultimately, I want to implement two-way communication.