Vglite doesn't work when using HyperRAM on NXP

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.

Hi @vinolzy ,

I have seen your other post also, I have been hesitant to reply as I don’t have any experience with your hardware…

I can say that I have seen issues of this type in my own developments and it has normally been something to do with not flushing a cache somewhere…

I noticed on github that these people might be the maintainers of the vglite drivers from NXP so it might be worth posting an issue on the lvgl github page and @ referencing their names in the text so hopefully they will see it…

It might be worth posting something with NXP also if they have some sort of support forum?

I hope that helps.

Kind Regards,

Pete