Error: Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled

Hi,

I am designing an interface using Squareline. All the generated code by squareline is in a folder along with the main code that is attached below. the code builds and flashes with no error. however, the LCD keeps rebooting with the following error:

Guru Meditation Error: Core 0 panic’ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x42017789 PS : 0x00060f30 A0 : 0x82016d89 A1 : 0x3fcf5dc0
A2 : 0x00000000 A3 : 0x00000000 A4 : 0x00000010 A5 : 0x00000000
A6 : 0x00000000 A7 : 0x00000010 A8 : 0x8202b45e A9 : 0x3fcf5da0
A10 : 0x00000000 A11 : 0x0000004c A12 : 0x00000159 A13 : 0x00000001
A14 : 0x00000000 A15 : 0x3fcc9ef4 SAR : 0x0000001f EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000022 LBEG : 0x400555cd LEND : 0x400555e1 LCOUNT : 0xffffffff

Backtrace: 0x42017786:0x3fcf5dc0 0x42016d86:0x3fcf5de0 0x42031cdf:0x3fcf5e00 0x4200d133:0x3fcf5e20 0x4200a66f:0x3fcf5e40 0x420097e6:0x3fcf5e60 0x42056a23:0x3fcf5e80 0x40380b5d:0x3fcf5eb0

ELF file SHA256: 2695906877ba8a29

Rebooting.


No luck so far to resolve it.
I appreciate any input.

IDE: Arduino
LCD/Board: ESP32 Development Board WT32-SC01 Plus

Arduino Code:


//--------------------------------------------------------------------------
#include <Wire.h>

// LovyanGFX
#define LGFX_USE_V1
#include <LovyanGFX.hpp>
// LVGL
#include <lvgl.h>
#include "ui.h"

static const int RXPin = 10, TXPin = 11, sclPin = 12, sdaPin = 13;
static const uint32_t GPSBaud = 9600;



#define LGFX_USE_V1
#include <LovyanGFX.hpp>


class LGFX : public lgfx::LGFX_Device {
  lgfx::Panel_ST7796 _panel_instance;
  lgfx::Bus_Parallel8 _bus_instance;
  lgfx::Light_PWM _light_instance;
  lgfx::Touch_FT5x06 _touch_instance;

public:
  LGFX(void) {
    {
      auto cfg = _bus_instance.config();
      cfg.freq_write = 40000000;
      cfg.pin_wr = 47;
      cfg.pin_rd = -1;
      cfg.pin_rs = 0;
      cfg.pin_d0 = 9;
      cfg.pin_d1 = 46;
      cfg.pin_d2 = 3;
      cfg.pin_d3 = 8;
      cfg.pin_d4 = 18;
      cfg.pin_d5 = 17;
      cfg.pin_d6 = 16;
      cfg.pin_d7 = 15;
      _bus_instance.config(cfg);
      _panel_instance.setBus(&_bus_instance);
    }

    {
      auto cfg = _panel_instance.config();
      cfg.pin_cs = -1;
      cfg.pin_rst = 4;
      cfg.pin_busy = -1;
      cfg.memory_width = 480;
      cfg.memory_height = 320;
      cfg.panel_width = 480;
      cfg.panel_height = 320;
      cfg.offset_x = 0;
      cfg.offset_y = 0;
      cfg.offset_rotation = 0;
      cfg.dummy_read_pixel = 8;
      cfg.dummy_read_bits = 1;
      cfg.readable = true;
      cfg.invert = true;
      cfg.rgb_order = false;
      cfg.dlen_16bit = false;
      cfg.bus_shared = true;

      _panel_instance.config(cfg);
    }

    {
      auto cfg = _light_instance.config();
      cfg.pin_bl = 45;
      cfg.invert = false;
      cfg.freq = 44100;
      cfg.pwm_channel = 7;

      _light_instance.config(cfg);
      _panel_instance.setLight(&_light_instance);
    }

    {
      auto cfg = _touch_instance.config();
      cfg.i2c_port = 1;
      cfg.i2c_addr = 0x38;
      cfg.pin_sda = 6;
      cfg.pin_scl = 5;
      cfg.freq = 400000;
      cfg.x_min = 0;
      cfg.x_max = 480;
      cfg.y_min = 0;
      cfg.y_max = 320;

      _touch_instance.config(cfg);
      _panel_instance.setTouch(&_touch_instance);
    }

    setPanel(&_panel_instance);
  }
};

static LGFX tft;

/*Change to your screen resolution*/
static const uint32_t screenWidth = 480;
static const uint32_t screenHeight = 320;
static lv_disp_draw_buf_t draw_buf;
static lv_color_t buf[screenWidth * 10];

/* Display flushing */
void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p) {
  uint32_t w = (area->x2 - area->x1 + 1);
  uint32_t h = (area->y2 - area->y1 + 1);

  tft.startWrite();
  tft.setAddrWindow(area->x1, area->y1, w, h);
  tft.writePixels((lgfx::rgb565_t *)&color_p->full, w * h);
  tft.endWrite();

  lv_disp_flush_ready(disp);
}

/*Read the touchpad*/
void my_touchpad_read(lv_indev_drv_t *indev_driver, lv_indev_data_t *data) {

  uint16_t x, y;
  if (tft.getTouch(&x, &y)) {
    data->state = LV_INDEV_STATE_PR;
    data->point.x = x;
    data->point.y = y;

  } else {
    data->state = LV_INDEV_STATE_REL;
  }
}

void setup() {
  lv_init();
  Serial.begin(115200);
  initDisplay();
  
  lv_disp_draw_buf_init(&draw_buf, buf, NULL, screenWidth * 10);

  /*Initialize the display*/
  static lv_disp_drv_t disp_drv;
  lv_disp_drv_init(&disp_drv);

  /*Change the following line to your display resolution*/
  disp_drv.hor_res = screenWidth;
  disp_drv.ver_res = screenHeight;
  disp_drv.flush_cb = my_disp_flush;
  disp_drv.draw_buf = &draw_buf;
  lv_disp_drv_register(&disp_drv);

  /*Initialize the (dummy) input device driver*/
  static lv_indev_drv_t indev_drv;
  lv_indev_drv_init(&indev_drv);
  indev_drv.type = LV_INDEV_TYPE_POINTER;
  indev_drv.read_cb = my_touchpad_read;
  lv_indev_drv_register(&indev_drv);

  ui_init();


  xTaskCreate(b_task,
                          "b_task",
                          12000,
                          NULL,
                          3,
                          NULL); 
}

void loop() {
  lv_timer_handler();

  delay(100);
}

void initDisplay() {
  tft.begin();
  tft.setRotation(1);
  tft.setBrightness(255);
  tft.fillScreen(TFT_BLACK);
}


void b_task(void *pvParameters) {


 while (1) {

    vTaskDelay(100 / portTICK_PERIOD_MS); 
 }
}

here is the backtrace:

Guru Meditation Error: Core 0 panic’ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x42017221 PS : 0x00060f30 A0 : 0x82016821 A1 : 0x3fcf5dc0
0x42017221: lv_obj_mark_layout_as_dirty at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/components/lvgl/src/core/lv_obj_pos.c:290

A2 : 0x00000000 A3 : 0x00010000 A4 : 0x00000001 A5 : 0x00000000
A6 : 0x00000000 A7 : 0x00000000 A8 : 0x8202aef6 A9 : 0x3fcf5da0
A10 : 0x00000000 A11 : 0x0000004c A12 : 0x00000000 A13 : 0x42054ee4
0x42054ee4: lv_style_set_prop_helper at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/components/lvgl/src/misc/lv_style.c:400

A14 : 0x0000005b A15 : 0x3fcca614 SAR : 0x0000001f EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000022 LBEG : 0x400555cd LEND : 0x400555e1 LCOUNT : 0xfffffffd

Backtrace: 0x4201721e:0x3fcf5dc0 0x4201681e:0x3fcf5de0 0x42031777:0x3fcf5e00 0x4200d064:0x3fcf5e20 0x4200a4db:0x3fcf5e40 0x42009772:0x3fcf5e60 0x420564bb:0x3fcf5e80 0x40380b5d:0x3fcf5eb0
0x4201721e: lv_obj_mark_layout_as_dirty at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/components/lvgl/src/core/lv_obj_pos.c:289

0x4201681e: lv_obj_class_init_obj at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/components/lvgl/src/core/lv_obj_class.c:106

0x42031777: lv_label_create at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/components/lvgl/src/widgets/lv_label.c:77

0x4200d064: ui_Menu_screen_init at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/main/screens/ui_Menu.c:1067

0x4200a4db: ui_init at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/main/ui.c:898

0x42009772: app_main at C:/Espressif/frameworks/esp-idf-v5.0.1/workspace/LCD_V2/main/main.cpp:524

0x420564bb: main_task at C:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/port_common.c:131 (discriminator 2)

0x40380b5d: vPortTaskWrapper at C:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:154