MicroPython:Библиотеки/esp32/esp32.idf heap info(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Строка 17: Строка 17:
Пример после загрузки:
Пример после загрузки:


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
>>> import esp32; esp32.idf_heap_info(esp32.HEAP_DATA)
>>> 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)]
[(240, 0, 0, 0), (7288, 0, 0, 0), (16648, 4, 4, 4), (79912, 35712, 35512, 35108), (15072, 15036, 15036, 15036), (113840, 0, 0, 0)]

Текущая версия от 18:13, 14 мая 2023

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


Модуль 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)]

См.также

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