I once had to implement a dynamic memory manager in C for an embedded project. This wasn’t an easy task because we also wanted to optimize memory usage. So I went to it, I analized another framework we had in our hands and saw what we needed and what we didn’t.
The solution I got is explained here. Feel free to leave any comment, doubt or suggetion here 😉