[rp2040] Fix compiler warnings in crash_handler and mdns

Fix two GCC warnings on RP2040 builds:

1. crash_handler.cpp: Move __attribute__((section(".noinit"))) from
   the struct type to the variable declaration where it belongs.

2. mdns_rp2040.cpp: Suppress IRAM_ATTR macro redefinition warning
   caused by Arduino-Pico's PolledTimeout.h redefining it to empty.
This commit is contained in:
J. Nick Koston
2026-03-12 12:13:58 -10:00
parent 05d285ba86
commit 06cb1839f2
2 changed files with 7 additions and 2 deletions
+5
View File
@@ -7,7 +7,12 @@
#include "esphome/core/log.h"
#include "mdns_component.h"
// Arduino-Pico's PolledTimeout.h redefines IRAM_ATTR to empty;
// undef before include to avoid macro redefinition warning, then restore from hal.h.
#undef IRAM_ATTR
#include <ESP8266mDNS.h>
#undef IRAM_ATTR
#include "esphome/core/hal.h"
namespace esphome::mdns {
+2 -2
View File
@@ -57,14 +57,14 @@ static const char *const TAG = "rp2040.crash";
// Placed in .noinit so BSS zero-init cannot race with crash_handler_read_and_clear().
// The valid field is explicitly cleared in crash_handler_read_and_clear() instead.
static struct {
static struct CrashData {
bool valid;
uint32_t pc;
uint32_t lr;
uint32_t sp;
uint32_t backtrace[MAX_BACKTRACE];
uint8_t backtrace_count;
} __attribute__((section(".noinit"))) s_crash_data;
} s_crash_data __attribute__((section(".noinit")));
bool crash_handler_has_data() { return s_crash_data.valid; }