Board:NXP RT1176
LVGL:V8.3.2(also tried 8.3.8)
I posted a thread,but not solved.
https://forum.lvgl.io/t/lvgl-fails-to-draw-properly-when-lv-draw-complex-1/12249
Previously,I followed the definitions in the LVGL source code and stored LVGL-related variables in SDRAM, with some variables defined in cacheable memory. LVGL ran perfectly fine under this configuration. However, due to SDRAM size constraints at the hardware level, I switched to using HyperRAM to store these variables, without making any changes to other parts of the program, and I confirmed that the MPU (Memory Protection Unit) configuration is correct.
Now, even a button in the GUI cannot be drawn properly. Strangely, this issue occurs randomly, with different behaviors observed each time the system is powered on. Approximately 80% or more of the time, the GUI exhibits abnormal behavior. The program ultimately gets stuck at “vg_lite_os_wait,” waiting for a semaphore released by GPU interrupt, but the GPU interrupt fails to occur as expected.
The only difference between SDRAM and HyperRAM is that SDRAM uses the SEMC (Static External Memory Controller) interface, while HyperRAM uses the FlexSPI (Flexible Serial Peripheral Interface) interface. I am not familiar with the detailed working principles, but there might be some strict timing requirements involved. It is possible that GPU interrupts could interrupt the read/write process over FlexSPI, leading to potential issues.
I am not sure if my speculations are correct, but this issue has been bothering me for a long time. I hope someone can provide me with some insights or ideas. Thank you very much.
To add some more information, when I enable vglite, some components like buttons and switches fail to render correctly. Some components, like image buttons, still appear properly. However, if I disable vglite, all components render correctly. There is also a peculiar issue that when vglite is turned off, displaying the camera image on the canvas shows short green or white horizontal lines at the left and right edges. But when vglite is enabled, the display appears normal. Interestingly, on the previous SDRAM board, there were no such horizontal lines when vglite was disabled.