Implements the free memory checking functions. More...

Classes | |
| struct | AvrFreeListEntry |
| Internal structure used by avr-libc to manage the free memory list. More... | |
Typedefs | |
| using | AvrHeapStart = unsigned int |
Functions | |
| AvrHeapStart avrHeapStart | asm ("__heap_start") |
| void *avrBreakValue | asm ("__brkval") |
| AvrFreeListEntry *avrFreeListHead | asm ("__flp") |
| auto | freeListSize () -> size_t |
| Calculate the total payload currently stored in avr-libc's free list. | |
| auto | freeMemory () -> size_t |
| Estimate the amount of free SRAM currently available on the MCU. | |
Implements the free memory checking functions.
Copyright 2026 Jacopo Labardi
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
| auto freeListSize | ( | ) | -> size_t |
Calculate the total payload currently stored in avr-libc's free list.
This helper walks the allocator free list so fragmented heap blocks contribute to the final free-memory estimate returned by freeMemory().

| auto freeMemory | ( | ) | -> size_t |
Estimate the amount of free SRAM currently available on the MCU.
The implementation combines the stack-to-heap gap with the bytes stored in avr-libc's free list so fragmented allocations are counted too.
