esp32: Enable automatic Python heap growth.
Via MICROPY_GC_SPLIT_HEAP_AUTO feature flag added in previous commit. Tested on ESP32 GENERIC_SPIRAM and GENERIC_S3 configurations, with some worst-case allocation patterns and the standard test suite. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
This commit is contained in:
committed by
Damien George
parent
98fd78437c
commit
05dcb8be99
@@ -51,13 +51,20 @@ Functions
|
||||
buffers and other data. This data is useful to get a sense of how much memory
|
||||
is available to ESP-IDF and the networking stack in particular. It may shed
|
||||
some light on situations where ESP-IDF operations fail due to allocation failures.
|
||||
The information returned is *not* useful to troubleshoot Python allocation failures,
|
||||
use `micropython.mem_info()` instead.
|
||||
|
||||
The capabilities parameter corresponds to ESP-IDF's ``MALLOC_CAP_XXX`` values but the
|
||||
two most useful ones are predefined as `esp32.HEAP_DATA` for data heap regions and
|
||||
`esp32.HEAP_EXEC` for executable regions as used by the native code emitter.
|
||||
|
||||
Free IDF heap memory in the `esp32.HEAP_DATA` region is available to be
|
||||
automatically added to the MicroPython heap to prevent a MicroPython
|
||||
allocation from failing. However, the information returned here is otherwise
|
||||
*not* useful to troubleshoot Python allocation failures, use
|
||||
`micropython.mem_info()` instead. The "max new split" value in
|
||||
`micropython.mem_info()` output corresponds to the largest free block of
|
||||
ESP-IDF heap that could be automatically added on demand to the MicroPython
|
||||
heap.
|
||||
|
||||
The return value is a list of 4-tuples, where each 4-tuple corresponds to one heap
|
||||
and contains: the total bytes, the free bytes, the largest free block, and
|
||||
the minimum free seen over time.
|
||||
|
||||
Reference in New Issue
Block a user