[Tinyos-help] dynamic memory allocation in TinyOS

Aurélien Francillon aurelien.francillon at inrialpes.fr
Sun Feb 22 04:44:41 PST 2009


Kevin Klues a écrit :
> take a look at the TosMallocC component in tinyos-2.x/tos/lib/tosthreads/system
> 

The major problem with dynamic memory management on platforms without
virtual memory (avr,msp...) and limited memory is the risk of memory
fragmentation. Contiki has a nice trick with double pointers to access
dynamically allocated memory. The drawback is that every access must be
performed through a macro that performs double dereference, additionally
no "intermediate pointer" should be saved, those could be corrupted at
anytime if memory defragmentation occurs.
There is are a few blog posts here that gives a good explanation of the
problem and the solution in Contiki:
http://freaklabs.org/index.php/Blog/FreakZ/DevJournal-Non-Fragmenting-Dynamic-Memory-Allocation.html
http://freaklabs.org/index.php/Blog/FreakZ/DevJournal-Finished-the-switch-to-dynamic-allocation-and-managed-memory.html
http://freaklabs.org/index.php/Blog/FreakZ/DevJournal-Ok-Really...the-dynamic-allocation-and-managed-memory-is-implemented.html

The main advantage is that the actual memory blocks can be reorganized
without corrupting references to those memory regions.
It seems that there is no support for this kind of feature in TinyOS
yet, I guess that this could be implemented in the nesc compiler in
order to provide transparent memory access, instead of using macros?
Would this be feasible ?


Best,
Aurélien





More information about the Tinyos-help mailing list