MicroPython:Библиотеки/esp32/esp32.idf heap info()

Материал из Онлайн справочника
Версия от 18:13, 14 мая 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Модуль esp32 – функционал ESP32[1]

esp32.idf_heap_info(capabilities)


Возвращает информацию о кучах ESP-IDF. Один из них содержит кучу MicroPython, а другие используются ESP-IDF, например, для сетевых буферов и других данных. Эта информация полезна для того, чтобы узнать, сколько памяти доступно ESP-IDF и, в частности, сетевому стеку. Она может пролить свет на ситуации, когда операции ESP-IDF дают сбой из-за проблем с выделением памяти. Впрочем, эта информация бесполезна для выявления проблем с выделением памяти в Python – используйте для этого micropython.mem_info().

Аргумент capabilities соответствует значениям MALLOC_CAP_XXX в ESP-IDF, но два наиболее полезных – это предзаданные esp32.HEAP_DATA (участки кучи для данных) и esp32.HEAP_EXEC (участки, где можно выполнять код, используемые эмиттером нативного кода).

Возвращаемое значение – это список 4-элементных кортежей, где каждый кортеж соответствует одной куче и содержит: общее количество байтов, свободное место (в байтах), самый большой свободный блок и минимальное количество свободной памяти за все время.

Пример после загрузки:

>>> import esp32; esp32.idf_heap_info(esp32.HEAP_DATA)
[(240, 0, 0, 0), (7288, 0, 0, 0), (16648, 4, 4, 4), (79912, 35712, 35512, 35108), (15072, 15036, 15036, 15036), (113840, 0, 0, 0)]

См.также

Внешние ссылки