Writing operation to Virtual Display Buffer

Hello,

I am using a XMC4700 microcontroller from infineon along with LVGL to show information on a LCD screen controlled by ST7789.

I have everything working properly and there is no issue with LVGL whatsoever. But due to a errata in the XMC4700 microcontroller the system can crash in certain occasions.

In the RAM memory of the micro, if a write operation is done between the 0x1fffffff and 0x20000000 address the micro crashes if the write operation is not aligned to 4 bytes.

I have to have the VDB (Virtual display buffer) allocated between that address threshold, so, sometimes a problematic write operation can happen.

Is there any way to know where the VDB is written?

So far I found the “lv_color_fill” function in lv_color.c file. But I know there are more instances of that function.

If I find where the write operation is done, I can protect the code from performing the “forbidden” write operation.

I am using V8.2 version.

Thank you in advance,
Lander

Hi, you should search for instances of the lv_color_fill function within your project files. Review other LVGL functions involving writing to the display buffer. Implement safeguard to prevent problematic write operations within the specified memory range 0x1fffffff to 0x20000000 and you can get some information through XMC4700 - Infineon Technologies

What I am actually trying to understand is which LVGL functions perform write operations into the display buffer.

Looking into the code, I suspect that all functions making use of draw_ctx->buf are eligible.

Can someone confirm this? Are there other functions that do not follow this scheme?