Advertisement
Guest User

Arduino zrzut pamięci

a guest
Apr 24th, 2018
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void setup() {
  2.   Serial.begin(9600);
  3.  
  4.   // https://www.rapidtables.com/convert/number/ascii-to-hex.html za pomocą tego narzędzia rozkodujesz sobie heksadecymalne wartości z RAMu
  5.   String test = "Moj string";
  6.   //String test2 = "HAHA"; // 2. Potem odkomentuj to i zobacz co teraz stało się na stercie
  7.   //test += " :)"; // 1. Najpierw odkomentuj tę linię i zobacz jak zmieniła się sterta (heap)
  8.  
  9.   Serial.print(F("Free RAM = "));
  10.   Serial.println(freeRam(), DEC);  
  11.  
  12.   Serial.print(F("Stack Address = "));
  13.   int v = 300; // Sprawdź też co znajdziesz w pamięci pod adresem &v (Stack Address). Pamiętaj, że int zajmuje 2 bajty.
  14.   Serial.println((int)&v);
  15.  
  16.   Serial.print(F("Heap Address = "));
  17.   extern int* __brkval;
  18.   extern int __heap_start;
  19.   Serial.println((int)__brkval);
  20.  
  21.   Serial.print(F("Heap Start = "));
  22.   Serial.println((int)&__heap_start);
  23.  
  24.   Serial.println(F("\nMemory dump:"));
  25.   for(char * currentSramAddress = (char *) RAMEND; currentSramAddress >= &__heap_start; currentSramAddress--) {
  26.     Serial.print((int) currentSramAddress);
  27.     Serial.print(F("\t: "));
  28.     Serial.println(*currentSramAddress, HEX);
  29.   }
  30. }
  31.  
  32. void loop() {
  33.  
  34. }
  35.  
  36. int freeRam() {
  37.   extern int __heap_start, *__brkval;
  38.   int v;
  39.   return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement