[1/11] Performing build step for 'bootloader' [1/1] cmd.exe /C "cd /D E:\Espressif\frameworks\esp-idf-v5.0.4\app\led_matrix\build\bootloader\esp-idf\esptool_py && E:\Espressif\python_env\idf5.0_py3.11_env\Scripts\python.exe E:/Espressif/frameworks/esp-idf-v5.0.4/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x0 E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/build/bootloader/bootloader.bin" Bootloader binary size 0x4f90 bytes. 0x3070 bytes (38%) free. [2/9] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/i80_controller_example_main.c.obj In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.h:4, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/i80_controller_example_main.c:6: E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_lcd/include/esp_lcd_panel_io.h:188: warning: "SOC_LCD_I80_SUPPORTED" redefined 188 | #define SOC_LCD_I80_SUPPORTED 1 | In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_cpu.h:13, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/spinlock.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:74, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/i80_controller_example_main.c:3: E:/Espressif/frameworks/esp-idf-v5.0.4/components/soc/esp32s3/include/soc/soc_caps.h:235: note: this is the location of the previous definition 235 | #define SOC_LCD_I80_SUPPORTED (1) /*!< Intel 8080 LCD is supported */ | E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/i80_controller_example_main.c: In function 'app_main': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/i80_controller_example_main.c:201:13: warning: unused variable 'i' [-Wunused-variable] 201 | int i = 0; | ^ At top level: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/i80_controller_example_main.c:99:13: warning: 'line_trans_done_cb' defined but not used [-Wunused-function] 99 | static bool line_trans_done_cb(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_io_event_data_t *edata, void *user_ctx) | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/i80_controller_example_main.c:88:13: warning: 'line_scan_loop_cb' defined but not used [-Wunused-function] 88 | static void line_scan_loop_cb(void *args) | ^~~~~~~~~~~~~~~~~ [3/9] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/esp_lcd_panel_io_i80_hub75.c.obj FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/esp_lcd_panel_io_i80_hub75.c.obj ccache E:\Espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\bin\xtensa-esp32s3-elf-gcc.exe -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DUNITY_INCLUDE_CONFIG_H -IE:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/build/config -IE:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/newlib/platform_include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/esp_additions/include/freertos -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/esp_additions/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/soc -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/soc/esp32s3 -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/port/esp32s3/. -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/port/esp32s3/private_include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/heap/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/log/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/soc/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/soc/esp32s3/. -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/soc/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/hal/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/hal/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/hal/platform_port/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_rom/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_rom/include/esp32s3 -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_rom/esp32s3 -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_system/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_system/port/soc -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_system/port/include/private -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/xtensa/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/xtensa/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/lwip/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/lwip/include/apps -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/lwip/include/apps/sntp -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/lwip/lwip/src/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/lwip/port/esp32/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/lwip/port/esp32/include/arch -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_ringbuf/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/efuse/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/efuse/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/driver/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/driver/deprecated -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/driver/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_pm/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/mbedtls/port/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/mbedtls/mbedtls/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/mbedtls/mbedtls/library -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/mbedtls/esp_crt_bundle/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_app_format/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/bootloader_support/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/bootloader_support/bootloader_flash/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_partition/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/app_update/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/spi_flash/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/pthread/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_timer/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/app_trace/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_event/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/nvs_flash/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_phy/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_phy/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/vfs/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_netif/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/wpa_supplicant/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/wpa_supplicant/port/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/wpa_supplicant/esp_supplicant/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_wifi/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/unity/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/unity/unity/src -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/cmock/CMock/src -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/console -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/http_parser -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp-tls -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp-tls/esp-tls-crypto -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_adc/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_adc/interface -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_adc/esp32s3/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_adc/deprecated/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_eth/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_gdbstub/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_gdbstub/xtensa -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_gdbstub/esp32s3 -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hid/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/tcp_transport/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_http_client/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_http_server/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_https_ota/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_lcd/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_lcd/interface -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/protobuf-c/protobuf-c -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/protocomm/include/common -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/protocomm/include/security -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/protocomm/include/transports -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_local_ctrl/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_psram/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/espcoredump/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/espcoredump/include/port/xtensa -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/wear_levelling/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/sdmmc/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/fatfs/diskio -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/fatfs/vfs -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/fatfs/src -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/idf_test/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/idf_test/include/esp32s3 -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/ieee802154/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/json/cJSON -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/mqtt/esp-mqtt/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/perfmon/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/spiffs/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/touch_element/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/ulp/ulp_common/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/ulp/ulp_common/include/esp32s3 -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/usb/include -IE:/Espressif/frameworks/esp-idf-v5.0.4/components/wifi_provisioning/include -mlongcalls -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -Og -fmacro-prefix-map=E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix=. -fmacro-prefix-map=E:/Espressif/frameworks/esp-idf-v5.0.4=/IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1 -std=gnu17 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER=\"v5.0.4-dirty\" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/esp_lcd_panel_io_i80_hub75.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\esp_lcd_panel_io_i80_hub75.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/esp_lcd_panel_io_i80_hub75.c.obj -c E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_lcd/interface/esp_lcd_panel_io_interface.h:10, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:25: E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_lcd/include/esp_lcd_panel_io.h:188: warning: "SOC_LCD_I80_SUPPORTED" redefined 188 | #define SOC_LCD_I80_SUPPORTED 1 | In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_cpu.h:13, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/spinlock.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:74, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:18: E:/Espressif/frameworks/esp-idf-v5.0.4/components/soc/esp32s3/include/soc/soc_caps.h:235: note: this is the location of the previous definition 235 | #define SOC_LCD_I80_SUPPORTED (1) /*!< Intel 8080 LCD is supported */ | E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:57:36: error: unknown type name 'lcd_panel_io_i80_t'; did you mean 'lcd_panel_io_i80_hub75_t'? 57 | static void lcd_i80_switch_devices(lcd_panel_io_i80_t *cur_device, lcd_panel_io_i80_t *next_device); | ^~~~~~~~~~~~~~~~~~ | lcd_panel_io_i80_hub75_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:57:68: error: unknown type name 'lcd_panel_io_i80_t'; did you mean 'lcd_panel_io_i80_hub75_t'? 57 | static void lcd_i80_switch_devices(lcd_panel_io_i80_t *cur_device, lcd_panel_io_i80_t *next_device); | ^~~~~~~~~~~~~~~~~~ | lcd_panel_io_i80_hub75_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:58:35: error: unknown type name 'esp_lcd_i80_bus_t'; did you mean 'esp_lcd_i80_hub75_bus_t'? 58 | static void lcd_start_transaction(esp_lcd_i80_bus_t *bus, lcd_i80_trans_descriptor_t *trans_desc); | ^~~~~~~~~~~~~~~~~ | esp_lcd_i80_hub75_bus_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:58:59: error: unknown type name 'lcd_i80_trans_descriptor_t'; did you mean 'lcd_i80_hub75_trans_descriptor_t'? 58 | static void lcd_start_transaction(esp_lcd_i80_bus_t *bus, lcd_i80_trans_descriptor_t *trans_desc); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:75:5: error: unknown type name 'lcd_i80_trans_descriptor_t' 75 | lcd_i80_trans_descriptor_t *cur_trans; // Current transaction | ^~~~~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:76:5: error: unknown type name 'lcd_panel_io_i80_t' 76 | lcd_panel_io_i80_t *cur_device; // Current working device | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:85:5: error: unknown type name 'lcd_panel_io_i80_t' 85 | lcd_panel_io_i80_t *i80_device; // i80 device issuing this transaction | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:96:5: error: unknown type name 'esp_lcd_i80_bus_t' 96 | esp_lcd_i80_bus_t *bus; // Which bus the device is attached to | ^~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:122:5: error: unknown type name 'lcd_i80_trans_descriptor_t' 122 | lcd_i80_trans_descriptor_t trans_pool[]; // Transaction pool | ^~~~~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'esp_lcd_new_i80_hub75_bus': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:142:18: error: implicit declaration of function 'lcd_com_register_device' [-Werror=implicit-function-declaration] 142 | int bus_id = lcd_com_register_device(LCD_COM_DEVICE_TYPE_I80, bus); | ^~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:142:42: error: 'LCD_COM_DEVICE_TYPE_I80' undeclared (first use in this function) 142 | int bus_id = lcd_com_register_device(LCD_COM_DEVICE_TYPE_I80, bus); | ^~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:142:42: note: each undeclared identifier is reported only once for each function it appears in E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:154:39: warning: passing argument 1 of 'lcd_i80_select_periph_clock' from incompatible pointer type [-Wincompatible-pointer-types] 154 | ret = lcd_i80_select_periph_clock(bus, bus_config->clk_src); | ^~~ | | | esp_lcd_i80_hub75_bus_t * E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:55:71: note: expected 'esp_lcd_i80_bus_handle_t' {aka 'struct esp_lcd_i80_bus_t *'} but argument is of type 'esp_lcd_i80_hub75_bus_t *' 55 | static esp_err_t lcd_i80_select_periph_clock(esp_lcd_i80_bus_handle_t bus, lcd_clock_source_t clk_src); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:158:21: error: 'LCD_I80_INTR_ALLOC_FLAGS' undeclared (first use in this function) 158 | int isr_flags = LCD_I80_INTR_ALLOC_FLAGS | ESP_INTR_FLAG_SHARED | ESP_INTR_FLAG_LOWMED; | ^~~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:168:33: warning: passing argument 1 of 'lcd_i80_init_dma_link' from incompatible pointer type [-Wincompatible-pointer-types] 168 | ret = lcd_i80_init_dma_link(bus); | ^~~ | | | esp_lcd_i80_hub75_bus_t * E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:53:65: note: expected 'esp_lcd_i80_bus_handle_t' {aka 'struct esp_lcd_i80_bus_t *'} but argument is of type 'esp_lcd_i80_hub75_bus_t *' 53 | static esp_err_t lcd_i80_init_dma_link(esp_lcd_i80_bus_handle_t bus); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:180:47: warning: passing argument 1 of 'lcd_periph_trigger_quick_trans_done_event' from incompatible pointer type [-Wincompatible-pointer-types] 180 | lcd_periph_trigger_quick_trans_done_event(bus); | ^~~ | | | esp_lcd_i80_hub75_bus_t * E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:54:80: note: expected 'esp_lcd_i80_bus_handle_t' {aka 'struct esp_lcd_i80_bus_t *'} but argument is of type 'esp_lcd_i80_hub75_bus_t *' 54 | static void lcd_periph_trigger_quick_trans_done_event(esp_lcd_i80_bus_handle_t bus); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:182:38: warning: passing argument 1 of 'lcd_i80_bus_configure_gpio' from incompatible pointer type [-Wincompatible-pointer-types] 182 | ret = lcd_i80_bus_configure_gpio(bus, bus_config); | ^~~ | | | esp_lcd_i80_hub75_bus_t * E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:56:70: note: expected 'esp_lcd_i80_bus_handle_t' {aka 'struct esp_lcd_i80_bus_t *'} but argument is of type 'esp_lcd_i80_hub75_bus_t *' 56 | static esp_err_t lcd_i80_bus_configure_gpio(esp_lcd_i80_bus_handle_t bus, const esp_lcd_i80_bus_config_t *bus_config); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:182:43: warning: passing argument 2 of 'lcd_i80_bus_configure_gpio' from incompatible pointer type [-Wincompatible-pointer-types] 182 | ret = lcd_i80_bus_configure_gpio(bus, bus_config); | ^~~~~~~~~~ | | | const esp_lcd_i80_hub75_bus_config_t * E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:56:107: note: expected 'const esp_lcd_i80_bus_config_t *' but argument is of type 'const esp_lcd_i80_hub75_bus_config_t *' 56 | static esp_err_t lcd_i80_bus_configure_gpio(esp_lcd_i80_bus_handle_t bus, const esp_lcd_i80_bus_config_t *bus_config); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:202:13: error: implicit declaration of function 'lcd_com_remove_device' [-Werror=implicit-function-declaration] 202 | lcd_com_remove_device(LCD_COM_DEVICE_TYPE_I80, bus->bus_id); | ^~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'esp_lcd_del_i80_hub75_bus': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:221:27: error: 'LCD_COM_DEVICE_TYPE_I80' undeclared (first use in this function) 221 | lcd_com_remove_device(LCD_COM_DEVICE_TYPE_I80, bus_id); | ^~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'esp_lcd_new_panel_io_i80_hub75': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:255:45: error: 'lcd_panel_io_i80_t' undeclared (first use in this function) 255 | i80_device = heap_caps_calloc(1, sizeof(lcd_panel_io_i80_t) + io_config->trans_queue_depth * sizeof(lcd_i80_trans_descriptor_t), LCD_I80_MEM_ALLOC_CAPS); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:255:105: error: 'lcd_i80_trans_descriptor_t' undeclared (first use in this function); did you mean 'lcd_i80_hub75_trans_descriptor_t'? 255 | i80_device = heap_caps_calloc(1, sizeof(lcd_panel_io_i80_t) + io_config->trans_queue_depth * sizeof(lcd_i80_trans_descriptor_t), LCD_I80_MEM_ALLOC_CAPS); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:255:134: error: 'LCD_I80_MEM_ALLOC_CAPS' undeclared (first use in this function) 255 | i80_device = heap_caps_calloc(1, sizeof(lcd_panel_io_i80_t) + io_config->trans_queue_depth * sizeof(lcd_i80_trans_descriptor_t), LCD_I80_MEM_ALLOC_CAPS); | ^~~~~~~~~~~~~~~~~~~~~~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:20: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:258:109: error: expected expression before ')' token 258 | i80_device->trans_queue = xQueueCreate(io_config->trans_queue_depth, sizeof(lcd_i80_trans_descriptor_t *)); | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/queue.h:162:100: note: in definition of macro 'xQueueCreate' 162 | #define xQueueCreate( uxQueueLength, uxItemSize ) xQueueGenericCreate( ( uxQueueLength ), ( uxItemSize ), ( queueQUEUE_TYPE_BASE ) ) | ^~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:260:108: error: expected expression before ')' token 260 | i80_device->done_queue = xQueueCreate(io_config->trans_queue_depth, sizeof(lcd_i80_trans_descriptor_t *)); | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/queue.h:162:100: note: in definition of macro 'xQueueCreate' 162 | #define xQueueCreate( uxQueueLength, uxItemSize ) xQueueGenericCreate( ( uxQueueLength ), ( uxItemSize ), ( queueQUEUE_TYPE_BASE ) ) | ^~~~~~~~~~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:11: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:264:5: error: invalid use of undefined type 'struct lcd_panel_io_i80_t' 264 | LIST_INSERT_HEAD(&bus->device_list, i80_device, device_list_entry); | ^~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:264:5: warning: assignment to 'struct lcd_panel_io_i80_t *' from incompatible pointer type 'lcd_panel_io_i80_hub75_t *' [-Wincompatible-pointer-types] 264 | LIST_INSERT_HEAD(&bus->device_list, i80_device, device_list_entry); | ^~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:268:21: warning: assignment to 'int *' from incompatible pointer type 'esp_lcd_i80_hub75_bus_handle_t' {aka 'struct esp_lcd_i80_hub75_bus_t *'} [-Wincompatible-pointer-types] 268 | i80_device->bus = bus; | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'panel_io_i80_del': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:5: error: unknown type name 'lcd_panel_io_i80_t'; use 'struct' keyword to refer to the type 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ | struct In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:56: error: 'lcd_panel_io_i80_t' undeclared (first use in this function) 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:38: error: expected expression before ')' token 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:38: warning: initialization of 'const volatile int *' from incompatible pointer type 'esp_lcd_panel_io_t *' [-Wincompatible-pointer-types] 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:38: note: (near initialization for 'i80_device') In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:38: error: expected expression before ')' token 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:38: error: expected expression before 'const' 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:317:56: error: expected specifier-qualifier-list before 'lcd_panel_io_i80_t' 317 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:318:5: error: unknown type name 'esp_lcd_i80_bus_t'; use 'struct' keyword to refer to the type 318 | esp_lcd_i80_bus_t *bus = i80_device->bus; | ^~~~~~~~~~~~~~~~~ | struct E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:318:40: error: request for member 'bus' in something not a structure or union 318 | esp_lcd_i80_bus_t *bus = i80_device->bus; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:319:5: error: unknown type name 'lcd_i80_trans_descriptor_t'; did you mean 'lcd_i80_hub75_trans_descriptor_t'? 319 | lcd_i80_trans_descriptor_t *trans_desc = NULL; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:321:43: error: request for member 'num_trans_inflight' in something not a structure or union 321 | size_t num_trans_inflight = i80_device->num_trans_inflight; | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include/esp_err.h:13, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_intr_alloc.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_cpu.h:20, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/spinlock.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:74, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:18: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:323:53: error: request for member 'done_queue' in something not a structure or union 323 | ESP_RETURN_ON_FALSE(xQueueReceive(i80_device->done_queue, &trans_desc, portMAX_DELAY) == pdTRUE, | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include/esp_compiler.h:31:25: note: in definition of macro 'unlikely' 31 | #define unlikely(x) (x) | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:323:9: note: in expansion of macro 'ESP_RETURN_ON_FALSE' 323 | ESP_RETURN_ON_FALSE(xQueueReceive(i80_device->done_queue, &trans_desc, portMAX_DELAY) == pdTRUE, | ^~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:325:19: error: request for member 'num_trans_inflight' in something not a structure or union 325 | i80_device->num_trans_inflight--; | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:18: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:328:28: error: request for member 'spinlock' in something not a structure or union 328 | portENTER_CRITICAL(&bus->spinlock); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:465:72: note: in definition of macro 'portENTER_CRITICAL' 465 | #define portENTER_CRITICAL(mux) vPortEnterCritical(mux) | ^~~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:11: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:329:5: error: request for member 'device_list_entry' in something not a structure or union 329 | LIST_REMOVE(i80_device, device_list_entry); | ^~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:329:5: error: request for member 'device_list_entry' in something not a structure or union 329 | LIST_REMOVE(i80_device, device_list_entry); | ^~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:329:5: error: request for member 'device_list_entry' in something not a structure or union 329 | LIST_REMOVE(i80_device, device_list_entry); | ^~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:329:5: error: request for member 'device_list_entry' in something not a structure or union 329 | LIST_REMOVE(i80_device, device_list_entry); | ^~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:329:5: error: request for member 'device_list_entry' in something not a structure or union 329 | LIST_REMOVE(i80_device, device_list_entry); | ^~~~~~~~~~~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:18: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:330:27: error: request for member 'spinlock' in something not a structure or union 330 | portEXIT_CRITICAL(&bus->spinlock); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:466:71: note: in definition of macro 'portEXIT_CRITICAL' 466 | #define portEXIT_CRITICAL(mux) vPortExitCritical(mux) | ^~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:333:19: error: request for member 'cs_gpio_num' in something not a structure or union 333 | if (i80_device->cs_gpio_num >= 0) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:334:34: error: request for member 'cs_gpio_num' in something not a structure or union 334 | gpio_reset_pin(i80_device->cs_gpio_num); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:338:28: error: request for member 'trans_queue' in something not a structure or union 338 | vQueueDelete(i80_device->trans_queue); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:339:28: error: request for member 'done_queue' in something not a structure or union 339 | vQueueDelete(i80_device->done_queue); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'panel_io_i80_register_event_callbacks': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:5: error: unknown type name 'lcd_panel_io_i80_t'; use 'struct' keyword to refer to the type 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ | struct In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:56: error: 'lcd_panel_io_i80_t' undeclared (first use in this function) 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:38: error: expected expression before ')' token 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:38: warning: initialization of 'const volatile int *' from incompatible pointer type 'esp_lcd_panel_io_handle_t' {aka 'struct esp_lcd_panel_io_t *'} [-Wincompatible-pointer-types] 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:38: note: (near initialization for 'i80_device') In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:38: error: expected expression before ')' token 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:38: error: expected expression before 'const' 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:346:56: error: expected specifier-qualifier-list before 'lcd_panel_io_i80_t' 346 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:348:19: error: request for member 'on_color_trans_done' in something not a structure or union 348 | if (i80_device->on_color_trans_done != NULL) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:352:15: error: request for member 'on_color_trans_done' in something not a structure or union 352 | i80_device->on_color_trans_done = cbs->on_color_trans_done; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:353:15: error: request for member 'user_ctx' in something not a structure or union 353 | i80_device->user_ctx = user_ctx; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: At top level: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:358:40: error: unknown type name 'esp_lcd_i80_bus_t'; did you mean 'esp_lcd_i80_hub75_bus_t'? 358 | static void i80_lcd_prepare_cmd_buffer(esp_lcd_i80_bus_t *bus, lcd_panel_io_i80_t *i80_device, void *lcd_cmd) | ^~~~~~~~~~~~~~~~~ | esp_lcd_i80_hub75_bus_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:358:64: error: unknown type name 'lcd_panel_io_i80_t'; did you mean 'lcd_panel_io_i80_hub75_t'? 358 | static void i80_lcd_prepare_cmd_buffer(esp_lcd_i80_bus_t *bus, lcd_panel_io_i80_t *i80_device, void *lcd_cmd) | ^~~~~~~~~~~~~~~~~~ | lcd_panel_io_i80_hub75_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:370:46: error: unknown type name 'esp_lcd_i80_bus_t'; did you mean 'esp_lcd_i80_hub75_bus_t'? 370 | static uint32_t i80_lcd_prepare_param_buffer(esp_lcd_i80_bus_t *bus, lcd_panel_io_i80_t *i80_device, const void *lcd_param, size_t param_size) | ^~~~~~~~~~~~~~~~~ | esp_lcd_i80_hub75_bus_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:370:70: error: unknown type name 'lcd_panel_io_i80_t'; did you mean 'lcd_panel_io_i80_hub75_t'? 370 | static uint32_t i80_lcd_prepare_param_buffer(esp_lcd_i80_bus_t *bus, lcd_panel_io_i80_t *i80_device, const void *lcd_param, size_t param_size) | ^~~~~~~~~~~~~~~~~~ | lcd_panel_io_i80_hub75_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'panel_io_i80_tx_param': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:5: error: unknown type name 'lcd_panel_io_i80_t'; use 'struct' keyword to refer to the type 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ | struct In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:57: error: 'lcd_panel_io_i80_t' undeclared (first use in this function) 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:39: error: expected expression before ')' token 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:39: warning: initialization of 'const volatile int *' from incompatible pointer type 'esp_lcd_panel_io_t *' [-Wincompatible-pointer-types] 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:39: note: (near initialization for 'next_device') In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:39: error: expected expression before ')' token 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:39: error: expected expression before 'const' 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:397:57: error: expected specifier-qualifier-list before 'lcd_panel_io_i80_t' 397 | lcd_panel_io_i80_t *next_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:398:5: error: unknown type name 'esp_lcd_i80_bus_t'; use 'struct' keyword to refer to the type 398 | esp_lcd_i80_bus_t *bus = next_device->bus; | ^~~~~~~~~~~~~~~~~ | struct E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:398:41: error: request for member 'bus' in something not a structure or union 398 | esp_lcd_i80_bus_t *bus = next_device->bus; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:399:25: error: 'cur_device' undeclared (first use in this function) 399 | lcd_panel_io_i80_t *cur_device = bus->cur_device; | ^~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:399:41: error: request for member 'cur_device' in something not a structure or union 399 | lcd_panel_io_i80_t *cur_device = bus->cur_device; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:400:5: error: unknown type name 'lcd_i80_trans_descriptor_t'; did you mean 'lcd_i80_hub75_trans_descriptor_t'? 400 | lcd_i80_trans_descriptor_t *trans_desc = NULL; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\sys\reent.h:503, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/newlib/platform_include/sys/reent.h:9, from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:18, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:401:30: error: request for member 'num_dma_nodes' in something not a structure or union 401 | assert(param_size <= (bus->num_dma_nodes * DMA_DESCRIPTOR_BUFFER_MAX_SIZE) && "parameter bytes too long, enlarge max_transfer_bytes"); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:403:38: error: request for member 'lcd_cmd_bits' in something not a structure or union 403 | uint32_t cmd_cycles = next_device->lcd_cmd_bits / bus->bus_width; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:403:58: error: request for member 'bus_width' in something not a structure or union 403 | uint32_t cmd_cycles = next_device->lcd_cmd_bits / bus->bus_width; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:405:25: error: request for member 'bus_width' in something not a structure or union 405 | if (cmd_cycles * bus->bus_width < next_device->lcd_cmd_bits) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:405:50: error: request for member 'lcd_cmd_bits' in something not a structure or union 405 | if (cmd_cycles * bus->bus_width < next_device->lcd_cmd_bits) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:408:5: error: implicit declaration of function 'i80_lcd_prepare_cmd_buffer' [-Werror=implicit-function-declaration] 408 | i80_lcd_prepare_cmd_buffer(bus, next_device, &lcd_cmd); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:409:26: error: implicit declaration of function 'i80_lcd_prepare_param_buffer' [-Werror=implicit-function-declaration] 409 | uint32_t param_len = i80_lcd_prepare_param_buffer(bus, next_device, param, param_size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:411:44: error: request for member 'num_trans_inflight' in something not a structure or union 411 | size_t num_trans_inflight = next_device->num_trans_inflight; | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include/esp_err.h:13, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_intr_alloc.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_cpu.h:20, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/spinlock.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:74, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:18: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:413:55: error: request for member 'done_queue' in something not a structure or union 413 | ESP_RETURN_ON_FALSE( xQueueReceive(next_device->done_queue, &trans_desc, portMAX_DELAY) == pdTRUE, | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include/esp_compiler.h:31:25: note: in definition of macro 'unlikely' 31 | #define unlikely(x) (x) | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:413:9: note: in expansion of macro 'ESP_RETURN_ON_FALSE' 413 | ESP_RETURN_ON_FALSE( xQueueReceive(next_device->done_queue, &trans_desc, portMAX_DELAY) == pdTRUE, | ^~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:415:20: error: request for member 'num_trans_inflight' in something not a structure or union 415 | next_device->num_trans_inflight--; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:418:59: error: request for member 'hal' in something not a structure or union 418 | uint32_t intr_status = lcd_ll_get_interrupt_status(bus->hal.dev); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:419:38: error: request for member 'hal' in something not a structure or union 419 | lcd_ll_clear_interrupt_status(bus->hal.dev, intr_status); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:421:5: error: implicit declaration of function 'lcd_i80_switch_devices' [-Werror=implicit-function-declaration] 421 | lcd_i80_switch_devices(cur_device, next_device); | ^~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:423:33: error: request for member 'hal' in something not a structure or union 423 | lcd_ll_reverse_bit_order(bus->hal.dev, false); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:424:31: error: request for member 'hal' in something not a structure or union 424 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->lcd_param_bits > bus->bus_width); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:424:45: error: request for member 'bus_width' in something not a structure or union 424 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->lcd_param_bits > bus->bus_width); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:424:69: error: request for member 'lcd_param_bits' in something not a structure or union 424 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->lcd_param_bits > bus->bus_width); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:424:91: error: request for member 'bus_width' in something not a structure or union 424 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->lcd_param_bits > bus->bus_width); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:425:8: error: request for member 'cur_trans' in something not a structure or union 425 | bus->cur_trans = NULL; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:426:8: error: request for member 'cur_device' in something not a structure or union 426 | bus->cur_device = next_device; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:428:30: error: request for member 'trans_pool' in something not a structure or union 428 | trans_desc = &next_device->trans_pool[0]; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:429:15: error: request for member 'i80_device' in something not a structure or union 429 | trans_desc->i80_device = next_device; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:430:15: error: request for member 'cmd_cycles' in something not a structure or union 430 | trans_desc->cmd_cycles = cmd_cycles; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:431:15: error: request for member 'cmd_value' in something not a structure or union 431 | trans_desc->cmd_value = lcd_cmd; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:432:15: error: request for member 'data' in something not a structure or union 432 | trans_desc->data = param ? bus->format_buffer : NULL; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:432:35: error: request for member 'format_buffer' in something not a structure or union 432 | trans_desc->data = param ? bus->format_buffer : NULL; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:433:15: error: request for member 'data_length' in something not a structure or union 433 | trans_desc->data_length = param ? param_len : 0; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:434:15: error: request for member 'trans_done_cb' in something not a structure or union 434 | trans_desc->trans_done_cb = NULL; // no callback for parameter transaction | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:436:5: error: implicit declaration of function 'lcd_com_mount_dma_data' [-Werror=implicit-function-declaration] 436 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:436:31: error: request for member 'dma_nodes' in something not a structure or union 436 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:436:54: error: request for member 'data' in something not a structure or union 436 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:436:72: error: request for member 'data_length' in something not a structure or union 436 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:438:12: error: request for member 'pm_lock' in something not a structure or union 438 | if (bus->pm_lock) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:439:32: error: request for member 'pm_lock' in something not a structure or union 439 | esp_pm_lock_acquire(bus->pm_lock); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:441:5: error: implicit declaration of function 'lcd_start_transaction' [-Werror=implicit-function-declaration] 441 | lcd_start_transaction(bus, trans_desc); | ^~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:443:45: error: request for member 'hal' in something not a structure or union 443 | while (!(lcd_ll_get_interrupt_status(bus->hal.dev) & LCD_LL_EVENT_TRANS_DONE)) {} | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:445:12: error: request for member 'pm_lock' in something not a structure or union 445 | if (bus->pm_lock) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:446:32: error: request for member 'pm_lock' in something not a structure or union 446 | esp_pm_lock_release(bus->pm_lock); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'panel_io_i80_tx_color': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:5: error: unknown type name 'lcd_panel_io_i80_t'; use 'struct' keyword to refer to the type 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ | struct In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:56: error: 'lcd_panel_io_i80_t' undeclared (first use in this function) 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:38: error: expected expression before ')' token 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:38: warning: initialization of 'const volatile int *' from incompatible pointer type 'esp_lcd_panel_io_t *' [-Wincompatible-pointer-types] 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:38: note: (near initialization for 'i80_device') In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:19, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:38: error: expected expression before ')' token 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:38: error: expected expression before 'const' 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:454:56: error: expected specifier-qualifier-list before 'lcd_panel_io_i80_t' 454 | lcd_panel_io_i80_t *i80_device = __containerof(io, lcd_panel_io_i80_t, base); | ^~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:455:5: error: unknown type name 'esp_lcd_i80_bus_t'; use 'struct' keyword to refer to the type 455 | esp_lcd_i80_bus_t *bus = i80_device->bus; | ^~~~~~~~~~~~~~~~~ | struct E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:455:40: error: request for member 'bus' in something not a structure or union 455 | esp_lcd_i80_bus_t *bus = i80_device->bus; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:456:5: error: unknown type name 'lcd_i80_trans_descriptor_t'; did you mean 'lcd_i80_hub75_trans_descriptor_t'? 456 | lcd_i80_trans_descriptor_t *trans_desc = NULL; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\sys\reent.h:503, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/newlib/platform_include/sys/reent.h:9, from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:18, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:457:30: error: request for member 'num_dma_nodes' in something not a structure or union 457 | assert(color_size <= (bus->num_dma_nodes * DMA_DESCRIPTOR_BUFFER_MAX_SIZE) && "color bytes too long, enlarge max_transfer_bytes"); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:460:37: error: request for member 'lcd_cmd_bits' in something not a structure or union 460 | uint32_t cmd_cycles = i80_device->lcd_cmd_bits / bus->bus_width; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:460:57: error: request for member 'bus_width' in something not a structure or union 460 | uint32_t cmd_cycles = i80_device->lcd_cmd_bits / bus->bus_width; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:461:25: error: request for member 'bus_width' in something not a structure or union 461 | if (cmd_cycles * bus->bus_width < i80_device->lcd_cmd_bits) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:461:49: error: request for member 'lcd_cmd_bits' in something not a structure or union 461 | if (cmd_cycles * bus->bus_width < i80_device->lcd_cmd_bits) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:466:19: error: request for member 'num_trans_inflight' in something not a structure or union 466 | if (i80_device->num_trans_inflight < i80_device->queue_size) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:466:52: error: request for member 'queue_size' in something not a structure or union 466 | if (i80_device->num_trans_inflight < i80_device->queue_size) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:467:33: error: request for member 'trans_pool' in something not a structure or union 467 | trans_desc = &i80_device->trans_pool[i80_device->num_trans_inflight]; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:467:56: error: request for member 'num_trans_inflight' in something not a structure or union 467 | trans_desc = &i80_device->trans_pool[i80_device->num_trans_inflight]; | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include/esp_err.h:13, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_intr_alloc.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/esp_cpu.h:20, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_hw_support/include/spinlock.h:11, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:74, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/portable.h:58, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:70, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:18: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:470:53: error: request for member 'done_queue' in something not a structure or union 470 | ESP_RETURN_ON_FALSE(xQueueReceive(i80_device->done_queue, &trans_desc, portMAX_DELAY) == pdTRUE, | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/esp_common/include/esp_compiler.h:31:25: note: in definition of macro 'unlikely' 31 | #define unlikely(x) (x) | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:470:9: note: in expansion of macro 'ESP_RETURN_ON_FALSE' 470 | ESP_RETURN_ON_FALSE(xQueueReceive(i80_device->done_queue, &trans_desc, portMAX_DELAY) == pdTRUE, | ^~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:472:19: error: request for member 'num_trans_inflight' in something not a structure or union 472 | i80_device->num_trans_inflight--; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:474:15: error: request for member 'i80_device' in something not a structure or union 474 | trans_desc->i80_device = i80_device; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:475:15: error: request for member 'cmd_cycles' in something not a structure or union 475 | trans_desc->cmd_cycles = cmd_cycles; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:476:15: error: request for member 'cmd_value' in something not a structure or union 476 | trans_desc->cmd_value = lcd_cmd; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:477:15: error: request for member 'data' in something not a structure or union 477 | trans_desc->data = color; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:478:15: error: request for member 'data_length' in something not a structure or union 478 | trans_desc->data_length = color_size; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:479:15: error: request for member 'trans_done_cb' in something not a structure or union 479 | trans_desc->trans_done_cb = i80_device->on_color_trans_done; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:479:43: error: request for member 'on_color_trans_done' in something not a structure or union 479 | trans_desc->trans_done_cb = i80_device->on_color_trans_done; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:480:15: error: request for member 'user_ctx' in something not a structure or union 480 | trans_desc->user_ctx = i80_device->user_ctx; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:480:38: error: request for member 'user_ctx' in something not a structure or union 480 | trans_desc->user_ctx = i80_device->user_ctx; | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:20: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:489:26: error: request for member 'trans_queue' in something not a structure or union 489 | xQueueSend(i80_device->trans_queue, &trans_desc, portMAX_DELAY); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/queue.h:513:26: note: in definition of macro 'xQueueSend' 513 | xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) | ^~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:491:15: error: request for member 'num_trans_inflight' in something not a structure or union 491 | i80_device->num_trans_inflight++; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:494:24: error: request for member 'intr' in something not a structure or union 494 | esp_intr_enable(bus->intr); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'lcd_i80_select_periph_clock': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:503:30: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 503 | lcd_ll_select_clk_src(bus->hal.dev, clk_src); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:504:37: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 504 | lcd_ll_set_group_clock_coeff(bus->hal.dev, LCD_PERIPH_CLOCK_PRE_SCALE, 0, 0); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:504:48: error: 'LCD_PERIPH_CLOCK_PRE_SCALE' undeclared (first use in this function) 504 | lcd_ll_set_group_clock_coeff(bus->hal.dev, LCD_PERIPH_CLOCK_PRE_SCALE, 0, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:507:12: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 507 | bus->resolution_hz = 160000000 / LCD_PERIPH_CLOCK_PRE_SCALE; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:510:12: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 510 | bus->resolution_hz = 240000000 / LCD_PERIPH_CLOCK_PRE_SCALE; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:513:12: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 513 | bus->resolution_hz = esp_clk_xtal_freq() / LCD_PERIPH_CLOCK_PRE_SCALE; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'lcd_i80_init_dma_link': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:534:28: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 534 | for (int i = 0; i < bus->num_dma_nodes; i++) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:535:12: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 535 | bus->dma_nodes[i].dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_CPU; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:536:12: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 536 | bus->dma_nodes[i].next = &bus->dma_nodes[i + 1]; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:536:38: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 536 | bus->dma_nodes[i].next = &bus->dma_nodes[i + 1]; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:538:8: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 538 | bus->dma_nodes[bus->num_dma_nodes - 1].next = NULL; // one-off DMA chain | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:538:23: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 538 | bus->dma_nodes[bus->num_dma_nodes - 1].next = NULL; // one-off DMA chain | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:543:50: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 543 | ret = gdma_new_channel(&dma_chan_config, &bus->dma_chan); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:545:21: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 545 | gdma_connect(bus->dma_chan, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_LCD, 0)); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:550:28: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 550 | gdma_apply_strategy(bus->dma_chan, &strategy_config); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:553:33: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 553 | .psram_trans_align = bus->psram_trans_align, | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:554:32: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 554 | .sram_trans_align = bus->sram_trans_align, | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:556:34: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 556 | gdma_set_transfer_ability(bus->dma_chan, &ability); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:559:12: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 559 | if (bus->dma_chan) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:560:29: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 560 | gdma_del_channel(bus->dma_chan); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'lcd_i80_bus_configure_gpio': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:567:21: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 567 | int bus_id = bus->bus_id; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'lcd_periph_trigger_quick_trans_done_event': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:597:32: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 597 | lcd_ll_set_phase_cycles(bus->hal.dev, 0, 1, 0); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:598:21: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 598 | lcd_ll_start(bus->hal.dev); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:599:45: error: invalid use of undefined type 'struct esp_lcd_i80_bus_t' 599 | while (!(lcd_ll_get_interrupt_status(bus->hal.dev) & LCD_LL_EVENT_TRANS_DONE)) {} | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: At top level: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:602:35: error: unknown type name 'esp_lcd_i80_bus_t'; did you mean 'esp_lcd_i80_hub75_bus_t'? 602 | static void lcd_start_transaction(esp_lcd_i80_bus_t *bus, lcd_i80_trans_descriptor_t *trans_desc) | ^~~~~~~~~~~~~~~~~ | esp_lcd_i80_hub75_bus_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:602:59: error: unknown type name 'lcd_i80_trans_descriptor_t'; did you mean 'lcd_i80_hub75_trans_descriptor_t'? 602 | static void lcd_start_transaction(esp_lcd_i80_bus_t *bus, lcd_i80_trans_descriptor_t *trans_desc) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:624:36: error: unknown type name 'lcd_panel_io_i80_t'; did you mean 'lcd_panel_io_i80_hub75_t'? 624 | static void lcd_i80_switch_devices(lcd_panel_io_i80_t *cur_device, lcd_panel_io_i80_t *next_device) | ^~~~~~~~~~~~~~~~~~ | lcd_panel_io_i80_hub75_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:624:68: error: unknown type name 'lcd_panel_io_i80_t'; did you mean 'lcd_panel_io_i80_hub75_t'? 624 | static void lcd_i80_switch_devices(lcd_panel_io_i80_t *cur_device, lcd_panel_io_i80_t *next_device) | ^~~~~~~~~~~~~~~~~~ | lcd_panel_io_i80_hub75_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c: In function 'lcd_default_isr_handler': E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:650:5: error: unknown type name 'esp_lcd_i80_bus_t'; use 'struct' keyword to refer to the type 650 | esp_lcd_i80_bus_t *bus = (esp_lcd_i80_bus_t *)args; | ^~~~~~~~~~~~~~~~~ | struct E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:650:31: error: 'esp_lcd_i80_bus_t' undeclared (first use in this function) 650 | esp_lcd_i80_bus_t *bus = (esp_lcd_i80_bus_t *)args; | ^~~~~~~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:650:50: error: expected expression before ')' token 650 | esp_lcd_i80_bus_t *bus = (esp_lcd_i80_bus_t *)args; | ^ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:651:5: error: unknown type name 'lcd_i80_trans_descriptor_t'; did you mean 'lcd_i80_hub75_trans_descriptor_t'? 651 | lcd_i80_trans_descriptor_t *trans_desc = NULL; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | lcd_i80_hub75_trans_descriptor_t E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:652:5: error: unknown type name 'lcd_panel_io_i80_t'; use 'struct' keyword to refer to the type 652 | lcd_panel_io_i80_t *cur_device = NULL; | ^~~~~~~~~~~~~~~~~~ | struct E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:653:5: error: unknown type name 'lcd_panel_io_i80_t'; use 'struct' keyword to refer to the type 653 | lcd_panel_io_i80_t *next_device = NULL; | ^~~~~~~~~~~~~~~~~~ | struct E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:656:59: error: request for member 'hal' in something not a structure or union 656 | uint32_t intr_status = lcd_ll_get_interrupt_status(bus->hal.dev); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:660:29: error: request for member 'intr' in something not a structure or union 660 | esp_intr_disable(bus->intr); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:661:25: error: request for member 'cur_trans' in something not a structure or union 661 | trans_desc = bus->cur_trans; // the finished transaction | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:662:25: error: request for member 'cur_device' in something not a structure or union 662 | cur_device = bus->cur_device;// the working device | ^~ In file included from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\sys\reent.h:503, from E:/Espressif/frameworks/esp-idf-v5.0.4/components/newlib/platform_include/sys/reent.h:9, from e:\espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\xtensa-esp32s3-elf\sys-include\stdlib.h:18, from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:7: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:665:30: error: request for member 'i80_device' in something not a structure or union 665 | assert(trans_desc->i80_device == cur_device && "transaction device mismatch"); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:667:20: error: request for member 'pm_lock' in something not a structure or union 667 | if (bus->pm_lock) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:668:40: error: request for member 'pm_lock' in something not a structure or union 668 | esp_pm_lock_release(bus->pm_lock); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:671:27: error: request for member 'trans_done_cb' in something not a structure or union 671 | if (trans_desc->trans_done_cb) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:672:31: error: request for member 'trans_done_cb' in something not a structure or union 672 | if (trans_desc->trans_done_cb(&cur_device->base, NULL, trans_desc->user_ctx)) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:672:58: error: request for member 'base' in something not a structure or union 672 | if (trans_desc->trans_done_cb(&cur_device->base, NULL, trans_desc->user_ctx)) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:672:82: error: request for member 'user_ctx' in something not a structure or union 672 | if (trans_desc->trans_done_cb(&cur_device->base, NULL, trans_desc->user_ctx)) { | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:20: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:679:41: error: request for member 'done_queue' in something not a structure or union 679 | xQueueSendFromISR(cur_device->done_queue, &trans_desc, &high_task_woken); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/components/freertos/FreeRTOS-Kernel/include/freertos/queue.h:1320:33: note: in definition of macro 'xQueueSendFromISR' 1320 | xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) | ^~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:683:16: error: request for member 'cur_trans' in something not a structure or union 683 | bus->cur_trans = NULL; | ^~ In file included from E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:11: E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:687:39: error: request for member 'device_list' in something not a structure or union 687 | LIST_FOREACH(next_device, &bus->device_list, device_list_entry) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:687:9: error: request for member 'device_list_entry' in something not a structure or union 687 | LIST_FOREACH(next_device, &bus->device_list, device_list_entry) { | ^~~~~~~~~~~~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:689:49: error: request for member 'trans_queue' in something not a structure or union 689 | if (xQueueReceiveFromISR(next_device->trans_queue, &trans_desc, &high_task_woken) == pdTRUE) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:696:50: error: request for member 'hal' in something not a structure or union 696 | lcd_ll_clear_interrupt_status(bus->hal.dev, intr_status); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:700:45: error: request for member 'hal' in something not a structure or union 700 | lcd_ll_reverse_bit_order(bus->hal.dev, next_device->flags.reverse_color_bits); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:700:67: error: request for member 'flags' in something not a structure or union 700 | lcd_ll_reverse_bit_order(bus->hal.dev, next_device->flags.reverse_color_bits); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:701:43: error: request for member 'hal' in something not a structure or union 701 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->flags.swap_color_bytes); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:701:57: error: request for member 'bus_width' in something not a structure or union 701 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->flags.swap_color_bytes); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:701:81: error: request for member 'flags' in something not a structure or union 701 | lcd_ll_swap_byte_order(bus->hal.dev, bus->bus_width, next_device->flags.swap_color_bytes); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:702:20: error: request for member 'cur_trans' in something not a structure or union 702 | bus->cur_trans = trans_desc; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:703:20: error: request for member 'cur_device' in something not a structure or union 703 | bus->cur_device = next_device; | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:705:43: error: request for member 'dma_nodes' in something not a structure or union 705 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:705:66: error: request for member 'data' in something not a structure or union 705 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:705:84: error: request for member 'data_length' in something not a structure or union 705 | lcd_com_mount_dma_data(bus->dma_nodes, trans_desc->data, trans_desc->data_length); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:707:36: error: request for member 'intr' in something not a structure or union 707 | esp_intr_enable(bus->intr); | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:709:24: error: request for member 'pm_lock' in something not a structure or union 709 | if (bus->pm_lock) { | ^~ E:/Espressif/frameworks/esp-idf-v5.0.4/app/led_matrix/main/esp_lcd_panel_io_i80_hub75.c:710:44: error: request for member 'pm_lock' in something not a structure or union 710 | esp_pm_lock_acquire(bus->pm_lock); | ^~ cc1.exe: some warnings being treated as errors ninja: build stopped: subcommand failed.