ESP32 port function lv_tick_inc without IRAM_ATTR

Hi,

I am migrating my project from a old lvgl version 6 someting, to lvgl version 9.2.2.

I downloaded from esp registry:

I dont know if tick inc need to be in iram, but in lvgl 6 doesn’t have the problem( Cache disabled but cached memory region accessed).

After i put IRAM_ATTR in function “LV_ATTRIBUTE_TICK_INC void IRAM_ATTR lv_tick_inc(uint32_t tick_period)”, worked.

Code:

Original LVGL code:
LV_ATTRIBUTE_TICK_INC void lv_tick_inc(uint32_t tick_period)

Altered by me LVGL code:
LV_ATTRIBUTE_TICK_INC void IRAM_ATTR lv_tick_inc(uint32_t tick_period)

......

esp_register_freertos_tick_hook(lv_tick_task);

static void IRAM_ATTR lv_tick_task()
{
    lv_tick_inc( 1 );
}

Next to lvgl as a component from the registry, I also use the component espressif/esp_lvgl_port.
Wrapping my lvgl function calls between the lvgl_port_lock and lvgl_port_unlock statements and using the supplied lvgl_port_init, things work pretty well for me.

In the earlier days I did experience some errors due to switching between cpu0/1, but with this logic, no issues.