20 #ifndef __MemoryUsage_h__ 21 #define __MemoryUsage_h__ 108 extern uint8_t __stack;
109 extern uint8_t *__brkval;
110 extern uint8_t *__data_start;
111 extern uint8_t *__data_end;
112 extern uint8_t *__heap_start;
113 extern uint8_t *__heap_end;
114 extern uint8_t *__bss_start;
115 extern uint8_t *__bss_end;
122 #define MEMORY_PRINT_START { Serial.print(F("Data start:")); Serial.println((int) &__data_start); } 123 #define MEMORY_PRINT_HEAPSTART { Serial.print(F("Heap start:")); Serial.println((int)&__heap_start); } 125 #define MEMORY_PRINT_HEAPEND { Serial.print(F("Heap end:")); Serial.println(__brkval == 0 ? (int)&__heap_start : (int)__brkval); } 127 #define MEMORY_PRINT_STACKSTART { Serial.print(F("Stack start:")); Serial.println((int) SP); } 129 #define MEMORY_PRINT_END { Serial.print(F("Stack end:")); Serial.println((int) RAMEND); } 133 #define MEMORY_PRINT_HEAPSIZE { Serial.print(F("Heap size:")); Serial.println((int) (__brkval == 0 ? (int)&__heap_start : (int)__brkval) - (int)&__heap_start); } 134 #define MEMORY_PRINT_STACKSIZE { Serial.print(F("Stack size:")); Serial.println((int) RAMEND - (int)SP); } 136 #define MEMORY_PRINT_FREERAM { Serial.print(F("Free ram:")); Serial.println((int) SP - (int) (__brkval == 0 ? (int)&__heap_start : (int)__brkval) - (int)&__heap_start); } 138 #define MEMORY_PRINT_TOTALSIZE { Serial.print(F("SRAM size:")); Serial.println((int) RAMEND - (int) &__data_start); } 149 #define STACK_DECLARE unsigned int mu_stack_size = (RAMEND - SP); 152 #define STACK_COMPUTE { mu_stack_size = (RAMEND - SP) > mu_stack_size ? (RAMEND - SP) : mu_stack_size;} 155 #define STACK_PRINT_TEXT(text) { STACK_COMPUTE; Serial.print(text); Serial.println(mu_stack_size); } 158 #define STACK_PRINT STACK_PRINT_TEXT(F("Stack Maximum Size (Instrumentation method): ")); 165 #define FREERAM_PRINT_TEXT(text) Serial.print(text); Serial.println(mu_freeRam()); 168 #define FREERAM_PRINT FREERAM_PRINT_TEXT(F("Free Ram Size: ")); 181 #define STACKPAINT_PRINT_TEXT(text) { Serial.print(text); Serial.println(mu_StackCount()); } 184 #define STACKPAINT_PRINT STACKPAINT_PRINT_TEXT(F("Stack Maximum Size (Painting method): ")); uint16_t mu_StackCount(void)
Show the stack size on console.
int mu_freeRam(void)
Show the free Ram size on console.
void SRamDisplay(void)
Displays the 'map' of the current state of the Arduino's SRAM memory on the Serial conso...