282 views
in GUI Development by


Hi Support,

We are doing some test for our devices.

But the device had ran normally for five hours until "hang up".

The process can not leave the "for loop".

Please find attached the details. ( https://lurl.cc/PtmoO9 )

You can Observe the changes of object "EwIssuesPending", "EwIssuesRunning", EwIssuesFinished" in the video.

"EwIssuesPending.Tail" is equal to "EwIssuesFinished.Tail"

EwIssuesPending.Tail.List IS NOT EwIssuesPending, is EwIssuesFinished!

Environment : EW 11.0, C, 

1 Answer

0 votes
by
Hi Charles,

thank you for the detailed description of the hang-up issue. In order to go ahead and find the root cause, let me ask you some questions:

1.) Can you confirm that the entire GUI application (and thus the processing of the graphics issues) is executed in one thread (HDDisplay_Task) and no access from other threads or tasks can happen?

2.) Are there any error codes reported on the console via serial connection, before the error happens?

3.) Have you done any modifications within the Platform Package source code - if yes, what has changed?

4.) Which platform are you using (exact processor type)?

5.) Can you share your ewconfig.h file?

6.) Can you share your MPU settings (if Cortext-M7 is used)?

Thank you and best regards,

Manfred.
by
Hi, Support

(1).
Our GUI application is executed in unique thread/Task.
But I do not understand the "access from other threads or tasks" mean in the question 1.

(2).
There is no string "EMWI ERROR" in the logger.

(3).
We do not change the Platform Package source code.

(4).
STM.STM32_TTFE.RGB565

(5).
Sure! We give "ewconfig.h" and "ewmain.c" in the email.
Please look around line 165 in the "ewconfig.h" and line165/248 in the "ewconfig.h".
by
Hi Charles,

thanks for the answers.

(1.) Please be aware that every Embedded Wizard GUI application requires the execution in a single GUI task! If you are working with an operating system and your software is using several threads/tasks, please take care to access your GUI application only within the context of your GUI thread/task. Use operating system services to exchange data or events between the GUI thread/task and other worker threads/tasks.

(4.) Please let me know the type of MCU your are using.

(5.) Thanks. Waiting for your email.

Best regards,

Manfred.
by
Hi, Support

(1)

Yes, We do.

(4)

STM32H747

(5)

We have emailed "ewconfig.h" and "ewmain.c" to <noreply@tara-systems.de>.
by
Hi Charles,

(5) please send it to <support@embedded-wizard.de>

Thanks.

Manfred.
by
Ok. I have send it to <support@embedded-wizard.de>.

Thanks
by
Hi Charles,

thanks for the provided information.

Meanwhile, we have done a further code review of the relevant Graphics Engine source code, which handles the issue processing. From a logical software perspective the observed situation can not happen (as long as the GUI is running in one thread, what you already confirmed).

In the past we searched for a similar issue occurring after hours, which was caused by incorrect data read from cache. Have you considered the STM32H747 errata sheet - especially the section "Cortex-M7 data corruption when using data cache configured in write-through"? Please check your MPU configuration and let us know if this errata could explain the observed issue.

Best regards,

Manfred.

Embedded Wizard Website | Privacy Policy | Imprint

...