Memory efficiency is one of the major requirements for embedded applications. Since target embedded platforms often have limited performance and memory capabilities, developers need to know how to use available memory in the most efficient way.
Surprisingly, the most efficient way does not necessarily mean that the least amount of memory is used. Since embedded systems are specialized, developers know in advance which applications or components will be executed on the system. Saving memory in one application does not result in any gain unless another application running in the same system can use the extra memory. That is why the most important characteristic of memory management in embedded systems is determinism, or predictability. It is much more important to know that an application can use two megabytes of memory under any load than knowing an application...