Implementing a Reusable Memory Manager in ANSI C for Any Embedded Platform
Memory managers implemented in runtime C/C++ libraries that use a first-fit algorithm can produce severe memory fragmentation in embedded systems with time and space constraints. This session presents a practical, deterministic, and reusable memory manager for small-footprint designs that is written in ANSI C and is independent of any embedded architecture. It preallocates partitions to diminish fragmentation and quickly route and localize the search of a free block to its appropriate partition. This memory manager can be used as a standalone C component and is an important portable component in the B# embedded virtual machine. Internal snapshots of memory allocations, deallocations, and defragmentation are shown for generic bounded collections in C, as well as their corresponding and simplified collection wrappers in the object-oriented language, B#. Demonstrations run on a Renesas M16C platform using less than 32KB Flash, 2KB RAM.
|
|
Presented: 10/15/2008, 1:00 PM
Length: 60 Minutes
Course Material:
|