Enable configSUPPORT_STATIC_ALLOCATION for all LibreTiny platforms

The FreeRTOS timer command queue moves from heap to BSS on all
LibreTiny targets, not just BK72xx. RTL87xx and LN882x benefit
from the same heap savings.
This commit is contained in:
J. Nick Koston
2026-03-31 22:00:22 -10:00
parent d3545c960f
commit bdb9618938
2 changed files with 9 additions and 7 deletions
+7 -5
View File
@@ -438,11 +438,13 @@ async def component_to_code(config):
# 4-8KB flash). Even if linked, it would use locks, so explicit FreeRTOS
# mutexes are simpler and equivalent.
cg.add_define(ThreadModel.MULTI_NO_ATOMICS)
# Enable FreeRTOS static allocation so FreeRTOSQueue can use
# xQueueCreateStatic (queue storage in BSS, no heap allocation).
# BK72xx's FreeRTOSConfig.h doesn't define this, defaulting to 0.
# The -D wins over the #ifndef default in FreeRTOS.h.
cg.add_build_flag("-DconfigSUPPORT_STATIC_ALLOCATION=1")
# Enable FreeRTOS static allocation APIs (xQueueCreateStatic, etc.).
# Moves FreeRTOS internal structures (timer command queue) from heap to BSS,
# and allows FreeRTOSQueue to use xQueueCreateStatic on BK72xx.
# LibreTiny's FreeRTOSConfig.h doesn't define this, defaulting to 0.
# The -D wins over the #ifndef default in FreeRTOS.h.
cg.add_build_flag("-DconfigSUPPORT_STATIC_ALLOCATION=1")
# RTL8710B needs FreeRTOS 8.2.3+ for xTaskNotifyGive/ulTaskNotifyTake
# required by AsyncTCP 3.4.3+ (https://github.com/esphome/esphome/issues/10220)
@@ -10,7 +10,7 @@
* allowing queue storage to live in BSS with zero runtime heap allocation.
*/
#ifdef USE_BK72XX
#ifdef USE_LIBRETINY
#include <FreeRTOS.h>
#include <task.h>
@@ -45,4 +45,4 @@ void vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer, StackT
#endif /* configSUPPORT_STATIC_ALLOCATION */
#endif /* USE_BK72XX */
#endif /* USE_LIBRETINY */