Skip to main content
alessandro.breuza
Associate III
April 18, 2024
Solved

GPU2D hangup on STM32H7S78-DK

  • April 18, 2024
  • 7 replies
  • 3377 views

Hello,

I am experimenting on a STM32H7S78-DK board with a custom UI.

Sometimes the board looks like frozen and inspecting with the debugger I always find that the core is running, but GUITask is waiting for nema semaphore.

The call originates from nema_wait_irq_cl() with cl_id = last_cl_id + 1.

 

A reset may or may not solve the problem: sometimes the board works good, others it hangs up at the first few frames or after some interactions.

Removing all widgets and adding them one by one leads to incoherent results. It looks like working and then it hangs again or it may work without any change.

 

Which steps should I take to investigate the issue?

 

Best regards,

Alessandro

This topic has been closed for replies.
Best answer by alessandro.breuza

After days comparing code, turned out the issue was related to Nemagfx_Memory_Pool_Buffer being allocated in cacheable RAM.

Indeed, STM32H7S7L8HXH_RAMxspi1_ROMxspi2_app.ld generated by CubeMX defines a RAM_NONCACHEABLEBUFFER memory 1kB wide, not enough for Nemagfx_Memory_Pool_Buffer.

ld file shall be edited according to your example (SRAM4 72kB wide) to fit Nemagfx_Memory_Pool_Buffer.

 

Regards,

Alessandro Breuza

7 replies

GaetanGodart
Technical Moderator
April 19, 2024

Hello @alessandro.breuza ,

 

I played a bit with a STM32H7S78-DK but I did not face the same issue as you.

What is the serial number?

How and when did you get that board?

Can you share your project so that I can test it on my board?

Find attached my project , you could try it on your board to see if you get an issue.

 

Regards,

alessandro.breuza
Associate III
April 19, 2024

Hello,

the sticker on the board has this codes:

MB1736-H7S7L8-B01

K23220081

I got the board in december through our FAE.

My project is attached, I removed some libs to reduce size.

 

Forgot to mention that I'm using an external 7" 1024x600 LCD.

 

Regards,

Alessandro

GaetanGodart
Technical Moderator
April 19, 2024

Thank you for the information.

 

What is written on the left of 
"
MB1736-H7S7L8-B01
K23220081
"
? (there should be another "sticker)

 

So it is a regular DK board but you removed the screen and replaced it with another one?

 

Have you tried my project?
You can load the GUI only by clicking here:

GaetanGodart_0-1713537914024.png

 

 

Regards,

alessandro.breuza
Associate III
April 19, 2024

The other sticker contains:

STM32H7S78-DK

EDK32H7S78$KT4

 

Yes, I removed the original display and connected this one DT070DTFT-IPS-PTS through an adapter board that converts RGB to LVDS signalling and generates appropriate voltages.

 

Now I'm trying your project, I'll let you know.

 

Alessandro

alessandro.breuza
Associate III
April 19, 2024

Same issue immediately after transiction to screen2...

(only GUI imported)

 

Regards,

Alessandro

GaetanGodart
Technical Moderator
April 19, 2024

Also check if you can see "ES" written on your board (maybe the front).

alessandro.breuza
Associate III
April 22, 2024

Yes, another sticker "ES" is there near the other two.

GaetanGodart
Technical Moderator
April 22, 2024

Hello @alessandro.breuza ,

 

ES stands for engineering sample, they are early boards meant mostly for testing. Sometimes they don't behave as expected.
Your issue could be linked to the board itself, however, it is not for sure the reason of the issue.

How did you create your TouchGFX project?
Did you create it directly from Designer and then changes some settings in STM32CubeMX to match your screen or did you start from scratch in STM32CubeMX?

 

Regards,

alessandro.breuza
Associate III
April 22, 2024

I started from scratch in STM32CubeMX.

 

Alessandro

GaetanGodart
Technical Moderator
April 22, 2024

It is quite common to encounter issues when creating a custom TBS (TouchGFX Board Setup, basically all the settings necessary to run a TouchGFX application).

Have you encountered issues when using the board with the provided TBS and provided screen?

If the provided TBS + screen worked fine, I would advise you to start a new project from the provided TBS and only modifying the parts related to your screen.

 

If this solves your issue, I invite you to select this comment as "best answer". :smiling_face_with_smiling_eyes:

 

Regards,

alessandro.breuza
alessandro.breuzaAuthorBest answer
Associate III
April 24, 2024

After days comparing code, turned out the issue was related to Nemagfx_Memory_Pool_Buffer being allocated in cacheable RAM.

Indeed, STM32H7S7L8HXH_RAMxspi1_ROMxspi2_app.ld generated by CubeMX defines a RAM_NONCACHEABLEBUFFER memory 1kB wide, not enough for Nemagfx_Memory_Pool_Buffer.

ld file shall be edited according to your example (SRAM4 72kB wide) to fit Nemagfx_Memory_Pool_Buffer.

 

Regards,

Alessandro Breuza

GaetanGodart
Technical Moderator
April 26, 2024

Hello @alessandro.breuza ,

 

I talked to a H7S7 expert and your solution is indeed right, this is because Nema only has access to the RAM and not the cache.

Furthermore, we have solved this issue in a more recent TBS so I would advise you to update your TBS by creating a new project from TouchGFX Designer and then importing your current GUI into that newly created project.

I invite you to select your last message as "best answer".

 

Regards,