I am developing a project on a S7G2 (R7FS7G27H2A01CBD) custom board interfacing a 800 x 480 display with touch screen.
Everything seems to works fine until detected sometimes GUIX internal functions ended up providing BSP_CFG_HANDLE_UNRECOVERABLE_ERROR.
I can reproduce the issue stress testing after pressing the same button many many times on a popup (gx_window_execute) that executes a 'gx_window_close' inmediatly after the popup is shown. When the error is triggered, the behaviour is always the same, BSP_CFG_HANDLE_UNRECOVERABLE_ERROR . Here a screenshot of the 'Debug' tab when the error is triggered:
Some context of the project:
- SSP 1.7.5
- Stack allocated to the thread containing GUIX (HMI thread) is sufficient during all times, not surpassing 50% of the total as recommended.
- I am using screen rotation 90 and a sdram to store all the GUIX processing.
- There are other 7 threads running, all of them of higher priority than the HMI one.
As the triggering point of the error seems to be an internal function of GUIX, which I cannot debug, I am out of ideas of how fix this problem.
Any suggestions of what should I be looking at?
Thanks in advance,
In reply to Sai:
In reply to Jeremy:
thanks for your answer. debugging GUIX will definitely help.
can you please point me out where to find the GUIX source code?
I seem to have development/production license but its details show GUIX "source=no":
In reply to AV83:
Add GUIX Source to the GUIX stack :-
and disable the warning about multiple symbols :-
Then rebuild the project.
You license will allow you to view the GUIX source (view = yes)
A bit of more data to help understanding this issue.
I recently was aware of the existence of the 'Fault Status' plugin to be able to debug hard faults. I was able to reproduce the issue therefore runtime stopping @ BSP_CFG_HANDLE_UNRECOVERABLE_ERROR. The information shown on this plugin is the following:
I couldn't find much information on how to deal with the data provided, just only the meaning of the parameters ticked from some Cortex M4 Faults documentation:
With this information, I kind of understand there was a unaligned memory access causing the fault but, how can I avoid this from happening if the fault always triggered from inside the GUIX framework? Any ideas?
Also, I couldn't find any information from Renesas mentioning how to enable trapping of unaligned accesses by setting 'CCR.UNALIGN_TRP'. Any help here?