As heap block may be allocated into multiple non-contiguous chunks, to reserve enough memory for dma/internal usage, we do the malloc in the step of max available block. On ESP32 we use this way, this commit follows this way, on ESP32S2 and ESP32S3