[riot-devel] static vs. dynamic memory usage in RIOT
kaspar at schleiser.de
Fri Jan 17 11:42:26 CET 2014
On 01/16/2014 09:12 PM, Christian Mehlis wrote:
> Hope you guys and girls can add more points to the list.
- I think the first "pro" for static memory is confusing.
*accessing* the memory is always constant. *allocating* it is the
problem for dynamic memory regarding realtime properties.
- I'd add a distinction between stack and global scope static memory.
- Dynamic memory *cannot* be relied on. Failure to allocate must be
- The core is designed to be "malloc free" in order to stay real-time
- You already mention that there's no "free". Stress that point. It
means code using dynamic memory is not really portable. We support it
for simplicity reasons and because we can, but when we'll define a base
line of supported stuff that is supposed to be working on *all*
platforms, everything using malloc will be out.
The system *should* work even if all threads preallocate all the memory
they might maximally use. If you don't have enough memory then, you
could run into out-of-memory conditions at runtime which are not so easy
do deal with.
In short, try to avoid dynamic memory as much as possible.
More information about the devel