Hi Manfred,
yes, 9.0 to 11.0 is a huge step. I made a diff between the unchanged build-environments and a diff between 9.0 and our current standing. it was quite an effort to get the ew_bsp files changed correctly, since we had customized them quite a bit.
Hardware had not been changed. Same custom hardware before and after the upgrade.
SDK? I upgraded all the third-party things in the original build environment. So arm-gcc, stm hal and such things are upgraded.
I have inherited the project with the gcc-make build-chain used. Until now i used this. When i dodged this error (the system halts completely, since Default_Handler was catching it in a while(1) loop) but to figure out, what was going on, i actually had to debug in some form. there was a anchient gdb-bat script, that referenced to a path, that i do not have. So i used your project-file for cubeIDE and changed all the settings to match with the makefile. I debugged with this.
Edit: the error is reproducible with both, cubeIDE and make build binaries
tl;dr: currently using make + cubeIDE
Since now tlsf is not in the build-environment for v11, i have mostly used the new main and ewmain files and made our changes there again to call our additional custom functions. I think therefore, I'm now using the new Heap Manager.
---------------------------------------------
Target system xxxxxxxxxx Bedienteil
Color format RGBA8888
MemoryPool address 0xC0177000
MemoryPool size 13705216 bytes
Framebuffer address 0xC0000000
Doublebuffer address 0xC0E89000
Display size 800 x 480
Framebuffer size 800 x 480
EwScreenSize 800 x 480
Graphics accelerator DMA2D
Warp function support enabled
Vector graphics support enabled
Bidirectional text support enabled
Gradients support enabled
Compression support enabled
Index8 bitmap resource format enabled
RGB565 bitmap resource format enabled
Native bitmap resource format enabled
Native destination bitmap support enabled
Operating system FreeRTOS
External Flash memory QSPI Flash
Linker section for bitmap pixel .SectionEwResource
Linker section for font pixel .SectionEwResource
Linker section for font metrics .SectionEwResource
Linker section for string constants .SectionEwResource
Toolchain GCC
C-Compiler version 9.3.1
Build date and time Nov 30 2022, 18:29:49
Runtime Environment (RTE) version 11.00
Graphics Engine (GFX) version 11.00
Max surface cache size 2097152 bytes
Glyph cache size 256 x 256
Max issue tasks 100
Surface rotation 0
---------------------------------------------
What i have done in the meantime:
I have commented out the while(1) loop in the LTDC_ER_IRQHandler. So we ignore the Error and let the system run further. Now the GUI starts normally, but with the "chopping" effect comming up every now and then. We have an analog clock in the gui with a seconds indicator. So EW has to redraw the watch every second. The chopping-effect is quite syncronious to this update interval.
I discovered right now: while the device is heating up, there is an animated background. No "chopping"/flickering can be visually observed.
When the device is in "standby", there is no animation. "animation" is fading in and out an alpha-blended image in the background of about 2/3 of the whole display. The timer for updating the animation has a period of 234ms. I expected to have the flickering more often than in standby, since the gui has to run more often than before.
Could that correspond to switching between framebuffers in the middle of the image?
As i understand, this is handled in the TargetSpecific/ew_bsp_display.c. I will have a look into this now.
Thanks,
Daniel