mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 14:37:04 +00:00
8fc2e1e542dc3e5499fbf77a8c3e85184d34c934
Brings BK72XX to parity with esp32/esp8266/rp2040: register snapshot + stack-scanned backtrace are captured during the SDK's exception traps (undefined instruction / prefetch abort / data abort), persisted across the watchdog reset in a .noinit RAM region, then logged on the next boot via the logger and API log subscription paths. The capture path uses linker --wrap on bk_trap_udef/pabt/dabt — the trap symbols are defined in LibreTiny's intc.c fixup but called from the closed-source Beken SDK across translation units, so --wrap takes effect cleanly. The original SDK behavior (UART register dump + bk_cpu_shutdown → watchdog reset) is preserved by tail-calling the real handlers after capture. A small extra_script (patch_bk72xx_noinit.py) injects a .noinit section between .bss and _empty_ram in the generated linker script so the crash record is not zeroed by the C runtime startup and the heap shrinks to fit rather than overlapping it.
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
393 MiB
Languages
C++
60.7%
Python
38.9%
C
0.3%
