cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX + OpenAMP coexist issue

urbito
Senior

Hello community,

I am working on a project that involves the use of both CM7+CM4 cores from an stm32h7, to communicate both i need to use openamp. 

I have successfully made an standalone project that only have the openamp working, but when i port it to my actual project, it does not work/coexist with the touchgfxapp, i have found there an strange behaivour when i do initialize the MX_TouchGFX_Init before the MX_OPENAMP_Init, if i do the initialization that way, it would be "stuck" forever in the function: OPENAMP_Wait_EndPointready(&rp_endpoint);

If i do initialize first the OpenAMP it works fine, until i need to communicate, being able only to send one message and receive one answer and stuck forever in the "OPENAMP_check_for_message();" function.

I am going to put this functions (the initialization and also the message check) in freertos task because i have the suspect that this is due to "task/functions" priorities, and until now i have been working them outside the freertos and looking to call a custom function when needed.

Have someone been dealing with this kind of behaivour before?

I am using stm32cube ide 1.12.0 and touchgfx designer 4.21.3 under windows.

Hope to hear from you soon community 🙂

1 ACCEPTED SOLUTION

Accepted Solutions
urbito
Senior

I found that i was working "wrong".

As mentioned, it was issues regarding the other tasks i was using. 

 

To solve the issue, i have had to place the OpenAMP init inside FreeRTOS. Then it worked fine. 

View solution in original post

4 REPLIES 4
Osman SOYKURT
ST Employee

Hello @urbito ,

I can't help you much on this I'm afraid, I don't know about OpenAMP, none of our TBS is using it. You'll maybe have more chances asking in this area of the forum but I can't guarantee it.

Osman SOYKURT
ST Software Developer | TouchGFX
urbito
Senior

I found that i was working "wrong".

As mentioned, it was issues regarding the other tasks i was using. 

 

To solve the issue, i have had to place the OpenAMP init inside FreeRTOS. Then it worked fine. 

Richard Lowe
Senior III

What does it mean "place the OpenAMP init inside FreeRTOS"? 

You put the OpenAMP init inside another task?
You put the OpenAMP init before the start of the scheduler?

I'm having the same issue, "stuck" forever in the function: OPENAMP_Wait_EndPointready(&rp_endpoint);

Actually i have place the OpenAMP Init in the TouchGFX Task, before the TouchGFX Init, but you can just place it in another task (i have had like that before), but since i do some communication once the TouchGFX app start, i need the connection before the touchgfx app. 

Give a shoot to both cases and see what works better to you.

 

greetings