Micro Digital is pleased to announce new eheap enhancements. eheap is a heap manager designed specifically for embedded systems. New features are:
Multiple heap support.
- Aligned allocations.
- ARM Cortex v7M MPU region allocations.
- Integral 8-byte and 12-byte block pools.
eheap can efficiently support any number of heaps. Each can be independently configured to support tiny to very large heaps, each with an appropriate number of bins and other features. Having multiple heaps is essential for achieving 100% isolation of partitions in secure systems.
Allocations can be aligned on any power-of-two boundary from 8 up to a specified maximum. Allocation efficiency is improved by accumulation of spare space in chunks ahead of chunks with aligned blocks. This also results in steady growth of aligned blocks, which improves aligned allocation performance.
eheap supports ARM Cortex-v7M MPU region allocations, thus permitting dynamic region creation at run time. This is simpler and more flexible than static region creation at compile time. To do this, allocated regions must have power-of-two sizes and be aligned on their sizes. eheap uses subregions to greatly improve the efficiency of region allocations.
Integral block pools have been added to greatly improve speed and efficiency of small-block allocations for object-oriented languages such as C++. The pools operate like normal heap operations and if a pool becomes empty, blocks are transparently allocated from the main heap. Thus block pools can be sized for normal, rather than peak requirements.
These new features add to previously announced eheap features:
- Configurable number of bins and sizes to support a wide range of RAM sizes.
- Deferred free chunk merging.
- Bin sort and bin seed.
- Self-healing via bi-directional scanning.
- Debug chunks and statistics to aid debugging.
- High performance and deterministic operation.
- Small code and data footprint.
- RTOS and compiler agnostic.
- Licensed standalone and as part of SMX. eheap will run on any embedded system, with or without an RTOS.