mirror of
https://github.com/esphome/esphome.git
synced 2026-07-10 08:55:36 +00:00
bc672d358bed980ae1915cc94865b44b9b9787bc
BK7231T / BK7231Q / BK7251 share a LibreTiny linker template that only declares flash + ram, no executable RAM region. Their SDK wraps flash writes in GLOBAL_INT_DISABLE() which masks both FIQ and IRQ, so no ISR fires while flash is stalled and the "code in flash while flash is busy" scenario IRAM_ATTR is guarding against does not occur on those variants. Map IRAM_ATTR to nothing on them rather than orphan-linking .sram.text into flash and drop the T/Q/7251 entries from _PATCHERS_BY_VARIANT so the pre-link hook is not registered for them. BK7231N still gets the full fix (grown .itcm.code) because its SDK takes the defense-in-depth route of also placing flash/ISR/FreeRTOS critical code in ITCM, so our IRAM_ATTR functions need to live there too. Also make _grow_bk72xx_itcm fail loudly if the tcm/itcm declarations in the BK7231N template ever change shape, matching the fail-hard stance of the rest of the script.
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
545 MiB
Languages
C++
60.1%
Python
39.3%
C
0.3%
JavaScript
0.2%
