From 7903e43a664b2ed470b515cf9db16159ed27e108 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 5 Sep 2025 10:18:07 -0500 Subject: [PATCH 1/2] [logger] ESP8266: Store UART selection strings in PROGMEM (saves 36 bytes RAM) --- esphome/components/logger/logger_esp8266.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/esphome/components/logger/logger_esp8266.cpp b/esphome/components/logger/logger_esp8266.cpp index fb5f6cee5d..f74c24e761 100644 --- a/esphome/components/logger/logger_esp8266.cpp +++ b/esphome/components/logger/logger_esp8266.cpp @@ -35,9 +35,12 @@ void Logger::pre_setup() { void HOT Logger::write_msg_(const char *msg) { this->hw_serial_->println(msg); } -const char *const UART_SELECTIONS[] = {"UART0", "UART1", "UART0_SWAP"}; +static const char UART0_STR[] PROGMEM = "UART0"; +static const char UART1_STR[] PROGMEM = "UART1"; +static const char UART0_SWAP_STR[] PROGMEM = "UART0_SWAP"; +static const char *const UART_SELECTIONS[] PROGMEM = {UART0_STR, UART1_STR, UART0_SWAP_STR}; -const char *Logger::get_uart_selection_() { return UART_SELECTIONS[this->uart_]; } +const char *Logger::get_uart_selection_() { return (const char *) pgm_read_ptr(&UART_SELECTIONS[this->uart_]); } } // namespace esphome::logger #endif From 9e56bc17106561db0e3da20652fb47c207cd9aff Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 5 Sep 2025 10:19:03 -0500 Subject: [PATCH 2/2] Update esphome/components/logger/logger_esp8266.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- esphome/components/logger/logger_esp8266.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esphome/components/logger/logger_esp8266.cpp b/esphome/components/logger/logger_esp8266.cpp index f74c24e761..ae1ff82540 100644 --- a/esphome/components/logger/logger_esp8266.cpp +++ b/esphome/components/logger/logger_esp8266.cpp @@ -40,7 +40,7 @@ static const char UART1_STR[] PROGMEM = "UART1"; static const char UART0_SWAP_STR[] PROGMEM = "UART0_SWAP"; static const char *const UART_SELECTIONS[] PROGMEM = {UART0_STR, UART1_STR, UART0_SWAP_STR}; -const char *Logger::get_uart_selection_() { return (const char *) pgm_read_ptr(&UART_SELECTIONS[this->uart_]); } +const char *Logger::get_uart_selection_() { return pgm_read_ptr(&UART_SELECTIONS[this->uart_]); } } // namespace esphome::logger #endif