2024-04-18 02:23 AM
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
Solved! Go to Solution.
2024-04-22 09:24 AM
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,
2024-04-24 01:23 AM
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
2024-04-26 06:13 AM
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,