Helium Acceleration on STM32N6 (CM55)
Hello.
I’m currently experimenting with LVGL on STM32N6. I have project up and running and the benchmark runs well with either the Nema GPU or with SW rendering.
I’m mainly interested in experimenting with the performance gains from using the Arm2D library with helium acceleration. The N6 should be capable due to it’s CM55 core. However i can’t get it working nicely.
I have added Arm2D manually to my project and everything compiles when enabling
LV_USE_DRAW_ARM2D_SYNC
LV_USE_NATIVE_HELIUM_ASM
However, no helium acceleration is present.
What is the intended way to enable helium acceleration?
What MCU/Processor/Board and compiler are you using?
STM32N6570-DK
IAR and MDK-ARM
What LVGL version are you using?
Branch: Master
Commit: 7ab421ed30fdc679895d8db0a86c39b44d0feee4
What do you want to achieve?
Helium acceleration using Arm2D on STM32N6.
What have you tried so far?
Enabling:
LV_USE_DRAW_ARM2D_SYNC
LV_USE_NATIVE_HELIUM_ASM
Have also tried setting
#define LV_USE_DRAW_SW_ASM LV_DRAW_SW_ASM_HELIUM
But then it does not compile.
Code to reproduce
The application is using ThreadX (Azure RTOS). The main task lvgl_app
is shown below.
void lvgl_app(void)
{
/* initialize LVGL framework */
lv_init();
#if (LV_USE_NEMA_GFX == 0)
nema_init();
#endif
#if (LV_COLOR_DEPTH==32)
init_display(NEMA_BGRA8888, 2);
#elif (LV_COLOR_DEPTH==16)
init_display(NEMA_RGB565, 2);
#else
#error
#endif
lv_tick_set_cb(get_time_cb);
lvgl_display_init();
lv_demo_benchmark();
while (1)
{
lv_timer_handler();
/* Sleep for 5ms */
tx_thread_sleep(5);
}
}