cancel
Showing results for 
Search instead for 
Did you mean: 

OpenAMP problem on STM32H747I-DISCO

wijjay
Associate II

Hi 

I am new to STM32 MCU and we are migrating from Microchip to ST.

I am using:
STM32Cube IDE version 1.13.2
STM32CubeMX version 6.8.1
dev kit = STM32H747I-DISCO

I followed all the instructions given in the txt file i am attaching with this thread.

I want to achieve an inter-processor communication.

My code for OpenAmp compiles okay but not functioning, i.e., it hangs in MX_OPENAMP_Init() function.
I have updated all flash.ld files etc. as document instructs.

can someone provide me with a simple STM32Cube IDE project that i can run on devkit which actually works. A project like described in the PDF file.

Thank you

1 ACCEPTED SOLUTION

Accepted Solutions
KDJEM.1
ST Employee

Hi @wijjay ,

Thank you for this clarification 🙂.

If the first request is answered please click on Accept as Solution on the reply which solved your issue or answered your question.

Concerning the TouchGFX Designer, I'm not an TouchGFX expert. For that, I advise you to post a specific question regarding the new issue.

Thank you for your contribution in STCommunity.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

8 REPLIES 8
KDJEM.1
ST Employee

Hello @wijjay and welcome to the Community 🙂,

An OpenAMP_PingPong example is available in STM32CubeH7.

This application shows how to use OpenAMP MW to create a communication channel (called rpmsg channel) between cores and send mutual messages in the two directions. This application is working in bare metal mode for the 2 CPUs. 

This project example contains two workspaces:
- OpenAMP MW is dealing with IPC communication.
- OpenAMP MW is composed of 2 main components (Resource table definition in rsc_table.c which is allocated in a shared memory (0x38000000) and Messaging protocol "rpmsg" provides the messaging infrastructure rely on mailbox and virtio buffers.).

Note that this example has been tested with STM32H747I_DISCO board with STM32CubeIDE, EWARM and MDK-ARM toolchains.

Also, I recommend you to take a look to this video Inter-process Communication via OpenAMP.

Hope this helps you.

Kaouthar.

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

wijjay
Associate II

Hi thanks for quick reply.

I downloaded tag 'STM32CubeH7-1.11.1'  and open STM32Cube IDE project 'OpenAMP_PingPong' but when i try to compile, it gives the following error:

15:55:03 **** Build of configuration Debug for project OpenAMP_PingPong_CM4 ****

make -j4 all

make: *** No rule to make target 'E:/Middlewares/Third_Party/OpenAMP/open-amp/lib/remoteproc/remoteproc_virtio.c', needed by 'Middlewares/open-amp/remoteproc_virtio.o'. Stop.

"make -j4 all" terminated with exit code 2. Build might be incomplete.

15:55:04 Build Failed. 1 errors, 0 warnings. (took 791ms)

 

for both CM7 and CM4 projects.

 

any suggestion? please.

 

Sorry. compile Problem is solved.

I only copied the OpenAMP_PingPong folder to local drive and try to compile.

It has to be within 'STM32CubeH7-1.11.1'.

wijjay
Associate II

thank you very much for help.

I am using STM32H747I-DISCO dev kit.

I have created a STM32Cube IDE project using STM32CubeMX just for inter-processor communication with UART4 setup as 9600 baud rate to show M4 core is receiving every other even number from M7 core.

please find attached some snapshots. I got the whole project compressed as 7z but its size is 6.7MB which is more than allowed limit here. Otherwise i would have attached the whole project.

The catch is when we setup CORTEX_M7 Mode and Configuration, we set up Region 0 and Region 1 as you will see in *.io project when you will open it in MX.

wijjay
Associate II

is there a way i can share my STM32Cube IDE project here somehow?

KDJEM.1
ST Employee

Hi @wijjay ,

Does the shared example work properly as expected? 

Are you able to create your own OpenAmp project by following the video (only region 0 )?

Could you please check the Region 0 configuration and precisely MPU region size.

I advise you to take a look to STM32H745/755 and STM32H747/757 lines inter-processor communications - Application note and precisely OpenAMP Linker Section.

-->I got the whole project compressed as 7z but its size is 6.7MB which is more than allowed limit here. 

You can keep only the .ioc file in .7z and shared it.

I hope this help you.   

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi

I can create a project with only region 0 and openAmp works fine. But when i try to implement it to already created project from TouchGFX Designer, I do not know what is the conflict between openAmp and TouchGFX and openAmp does not work.

is there any stm32cube ide example available where touchGFX project is being created by TouchGFX Designer and then we implement openAmp afterwards?

 

KDJEM.1
ST Employee

Hi @wijjay ,

Thank you for this clarification 🙂.

If the first request is answered please click on Accept as Solution on the reply which solved your issue or answered your question.

Concerning the TouchGFX Designer, I'm not an TouchGFX expert. For that, I advise you to post a specific question regarding the new issue.

Thank you for your contribution in STCommunity.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.