From b7d2373b0b9bf7e8b5ac3cd3463bdf5b0337898f Mon Sep 17 00:00:00 2001 From: GW_MC <72297530+GWMCwing@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:46:14 +0800 Subject: [PATCH] fix: enhance error logging for SPI data transfer and display chip info --- main/display/epd_handler.cpp | 5 +++++ main/display/lvgl_handler.cpp | 2 +- main/info/info.cpp | 6 +++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/main/display/epd_handler.cpp b/main/display/epd_handler.cpp index ad91d45..ca14465 100644 --- a/main/display/epd_handler.cpp +++ b/main/display/epd_handler.cpp @@ -222,6 +222,11 @@ esp_err_t EPDHandler::transfer_spi_data(const uint8_t* data, const size_t& lengt esp_err_t ret = spi_device_polling_transmit(spi_, &t); if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to send SPI chunk at offset %zu: %s", offset, esp_err_to_name(ret)); + if (ret == ESP_ERR_NO_MEM) { + ESP_LOGE(TAG, "Current free heap size: %u bytes", esp_get_free_heap_size()); + ESP_LOGE(TAG, "Current free DMA-capable memory size: %u bytes", + heap_caps_get_free_size(MALLOC_CAP_DMA)); + } return ret; } diff --git a/main/display/lvgl_handler.cpp b/main/display/lvgl_handler.cpp index 2be8eef..f293c51 100644 --- a/main/display/lvgl_handler.cpp +++ b/main/display/lvgl_handler.cpp @@ -183,7 +183,7 @@ void LVGLHandler::touch_read_cb_(lv_indev_t* indev, lv_indev_data_t* data) { esp_lcd_touch_get_data(tp_handle, point_data, &touch_cnt, 1); if (touch_cnt > 0) { - ESP_LOGI(TAG, "Touch data read successfully: x=%d, y=%d", point_data[0].x, point_data[0].y); + // ESP_LOGI(TAG, "Touch data read successfully: x=%d, y=%d", point_data[0].x, point_data[0].y); data->point.x = point_data[0].x; data->point.y = point_data[0].y; data->state = LV_INDEV_STATE_PRESSED; diff --git a/main/info/info.cpp b/main/info/info.cpp index 421ae2e..1a35c8c 100644 --- a/main/info/info.cpp +++ b/main/info/info.cpp @@ -23,7 +23,8 @@ void display_chip_info() { (chip_info.features & CHIP_FEATURE_BLE) ? "BLE" : "", (chip_info.features & CHIP_FEATURE_IEEE802154) ? ", 802.15.4 (Zigbee/Thread), " : "", // psram - (chip_info.features & CHIP_FEATURE_EMB_PSRAM) ? "with embedded PSRAM, " : ""); + (chip_info.features & CHIP_FEATURE_EMB_PSRAM) ? "with embedded PSRAM, " : "" + ); unsigned major_rev = chip_info.revision / 100; unsigned minor_rev = chip_info.revision % 100; @@ -39,5 +40,8 @@ void display_chip_info() { printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size()); // psram printf("PSRAM size: %u bytes\n", esp_psram_get_size()); + // dma size + printf("DMA-capable memory size: %u bytes\n", heap_caps_get_free_size(MALLOC_CAP_DMA)); + printf("DMA-capable internal memory size: %u bytes\n", heap_caps_get_free_size(MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL)); } \ No newline at end of file