On general purpose applications, the memory manager generally uses a first-fit algorithm that works well when time and space constraints are non-issues. In an embedded system environment, such algorithm may be unacceptable because it can lead to severe memory fragmentation. This paper presents a practical memory manager suitable for small footprint embedded systems. This memory manager is deterministic in preallocating partitions in order to diminish fragmentation by routing and localizing the search of a free block in its appropriate partition.