lvgl / lvgl_esp32_drivers

Drivers for ESP32 to be used with LVGL
MIT License
334 stars 282 forks source link

Compilation errors in lvgl_helpers.c #51

Open ihouses opened 3 years ago

ihouses commented 3 years ago

I got some compilation errors in lvgl_helpers.c

First:

ifdef LV_LVGL_H_INCLUDE_SIMPLE

include "src/core/lv_refr.h" instead of #include "src/lv_core/lv_refr.h"

else

include "lvgl/src/core/lv_refr.h" instead of #include "lvgl/src/lv_core/lv_refr.h"

endif

The I get as well this:

../components/lvgl_esp32_drivers/lvgl_helpers.c:56:57: error: 'LV_HOR_RES_MAX' undeclared (first use in this function); did you mean 'LV_HOR_RES'?
ESP_LOGI(TAG, "Display hor size: %d, ver size: %d", LV_HOR_RES_MAX, LV_VER_RES_MAX);

Last issue looks like is caming from the past: https://github.com/lvgl/lv_port_esp32/pull/124

I am using the round screen driver GC9A01 resolution 240x240.

Can I change LV_HOR_RES_MAX and LV_VER_RES_MAX for 240?

embeddedt commented 3 years ago

It sounds like you are using v8; I am not sure that this repo has been updated to that version yet.

C47D commented 3 years ago

Working on it @embeddedt ... 🕐

C47D commented 3 years ago

@ihouses Can you test the https://github.com/lvgl/lvgl_esp32_drivers/tree/feature/v8_support branch? I've added checks for the issues you've mentioned, but I don't have a setup to test them.

lvgl_helpers.h also has a reference to LV_HOR_RES_MAX and LV_VER_RES_MAX (they're being used to calculate DISP_BUF_SIZE), we can bypass it by setting CUSTOM_DISPLAY_BUFFER_SIZE on the menuconfig.

If we grep for DISP_BUF_SIZE in lvgl_esp32_drivers we get the following output:

lvgl_helpers.c:    ESP_LOGI(TAG, "Display buffer size: %d", DISP_BUF_SIZE);
lvgl_helpers.h:/* DISP_BUF_SIZE value doesn't have an special meaning, but it's the size
lvgl_helpers.h: * As LVGL supports partial display updates the DISP_BUF_SIZE doesn't
lvgl_helpers.h:#define DISP_BUF_SIZE   CONFIG_CUSTOM_DISPLAY_BUFFER_BYTES
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * LV_VER_RES_MAX)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * (LV_VER_RES_MAX / 8))
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * LV_VER_RES_MAX)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * DISP_BUF_LINES)
lvgl_helpers.h:#define DISP_BUF_SIZE (LV_VER_RES_MAX * IL3820_COLUMNS)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE  (LV_HOR_RES_MAX * 40)
lvgl_helpers.h:#define DISP_BUF_SIZE ((LV_VER_RES_MAX * LV_VER_RES_MAX) / 8) // 5KB
lvgl_helpers.h:#define DISP_BUF_SIZE ((LV_VER_RES_MAX * LV_VER_RES_MAX) / 8) // 2888 bytes
lvgl_helpers.h:#define DISP_BUF_SIZE (LV_HOR_RES_MAX * 40)
lvgl_spi_conf.h:#define SPI_BUS_MAX_TRANSFER_SZ (DISP_BUF_SIZE * 3)
lvgl_spi_conf.h:#define SPI_BUS_MAX_TRANSFER_SZ (DISP_BUF_SIZE * 2)
lvgl_spi_conf.h:#define SPI_BUS_MAX_TRANSFER_SZ (DISP_BUF_SIZE * 2)
lvgl_tft/EVE_config.h:#define SPI_TRANSER_SIZE (DISP_BUF_SIZE * (LV_COLOR_DEPTH / 8))
lvgl_tft/st7735s.h:#define DISP_BUF_SIZE (LV_HOR_RES_MAX * 40)

@kisvegabor @embeddedt How can we calculate DISP_BUF_SIZE when using v8?

EDIT

I guess we should use disp_drv.hor_res and disp_drv.ver_res and make DISP_BUF_SIZE a variable instead of a defined symbol?

frezik commented 2 years ago

I had the same problem, and using the features/v8_support branch got past that error. I'm now getting:

../components/lvgl_esp32_drivers/lvgl_helpers.c:22:10: fatal error: src/lv_core/lv_refr.h: No such file or directory
 #include "src/lv_core/lv_refr.h"
          ^~~~~~~~~~~~~~~~~~~~~~~