LVGL 8.3 Multiple screens from more than one Cortex A core


I’m using a STM32MP157D. It’s an ARM Cortex A7, with an M4 bag-on-the-side, and I’m using it without an operating system. I have the raw ability to synchronize and run data on both cores, but not even an RTOS scheduler.

I’m driving a number of screens, and I’d like to split the LVGL load between two cores. Ideally what i’d want is two instances of LVGL that don’t know about each other. That would be perfect, but is probably not going to happen even though I have the RAM for it. Failing that, I just want to be able to use LVGL from both cores while avoiding things that might cause race conditions.

Each core will deal with its own screen. Each core can have its own memory, i just need to know about gotchas, shared heap space, that kind of thing. If I create a screen on one core, and only draw to it from that core, and only flush on that core to a display i always use from that core, can i then also do the same thing from a 2nd core without them stepping on each others toes? The displays and screens are core bound, and do not cross over or otherwise touch.

Also, I can run this on a Cortex A right? I don’t actually have my board yet so I haven’t tried it.