Waspmote's microcontroller includes an 8 kB SRAM which is shared between initialized and uninitialized variables, the dynamic memory allocator, and the stack that is used for calling subroutines and storing local variables.
  • It is a good practice to delete variables which have already been used. This will avoid confusion, like "is this old or new?".
  • Also, once a vector has been used, it is good to delete all the fields in this vector, by writing 0's or voids, for example.
  • Avoid using strings so as to save memory. When printing debug messages use the Flash memory to allocate those messages:
USB.println("This is a message"); //WRONG
USB.println(F("This is a message")); //OK
  • Avoid using dynamic memory allocation in order to prevent memory fragmentation. It is preferable to use controlled static variables.
  • It is possible to get the free memory by calling the function freeMemory:
USB.print(F("Free Memory:"));
Last modified 2yr ago