mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
100 lines
2.0 KiB
C++
100 lines
2.0 KiB
C++
//
|
|
// FILE: heapdemo.ino
|
|
// AUTHOR: Rob Tillaart
|
|
// VERSION: 0.1.00
|
|
// PURPOSE: heapdemo
|
|
// DATE: 2015-10-25
|
|
// URL: https://github.com/RobTillaart/avrheap
|
|
//
|
|
|
|
|
|
#include "avrheap.h"
|
|
|
|
Avrheap myheap;
|
|
|
|
int *par[10];
|
|
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
Serial.print("Start ");
|
|
Serial.println(__FILE__);
|
|
Serial.println(AVRHEAP_LIB_VERSION);
|
|
|
|
/* works only with old version KEEP CI happy
|
|
|
|
Serial.println();
|
|
Serial.print("HEAP ADDR:\t");
|
|
Serial.println(myheap.startAddress());
|
|
Serial.println();
|
|
|
|
// allocate 10 chunks
|
|
Serial.println("ptr\taddr");
|
|
for (int i = 0; i < 10; i++)
|
|
{
|
|
par[i] = (int*) malloc(i * 3); // all different sizes
|
|
*par[i] = 0;
|
|
Serial.print(i);
|
|
Serial.print('\t');
|
|
Serial.println((int)par[i], DEC);
|
|
}
|
|
Serial.println();
|
|
Serial.println();
|
|
myheap.dump(80);
|
|
Serial.println("\nfollowHeap");
|
|
myheap.followHeap();
|
|
|
|
|
|
Serial.print("fragmented: ");
|
|
Serial.println(myheap.isFragmented() ? "True" : "False");
|
|
Serial.print("count: ");
|
|
Serial.println(myheap.freeListCount());
|
|
Serial.print("size: ");
|
|
Serial.println(myheap.freeListSize());
|
|
Serial.println("dump: ");
|
|
myheap.freeListDump();
|
|
|
|
Serial.println("free 3 pointers");
|
|
free(par[3]);
|
|
free(par[5]);
|
|
free(par[7]);
|
|
|
|
Serial.print("fragmented: ");
|
|
Serial.println(myheap.isFragmented() ? "True" : "False");
|
|
Serial.print("count: ");
|
|
Serial.println(myheap.freeListCount());
|
|
Serial.print("size: ");
|
|
Serial.println(myheap.freeListSize());
|
|
Serial.println("dump: ");
|
|
myheap.freeListDump();
|
|
|
|
Serial.println("1 malloc");
|
|
par[3] = (int*) malloc(10);
|
|
|
|
Serial.print("fragmented:\t");
|
|
Serial.println(myheap.isFragmented() ? "True" : "False");
|
|
Serial.print("count:\t");
|
|
Serial.println(myheap.freeListCount());
|
|
Serial.print("size:\t");
|
|
Serial.println(myheap.freeListSize());
|
|
Serial.println("dump: ");
|
|
myheap.freeListDump();
|
|
|
|
Serial.println();
|
|
myheap.dump(80);
|
|
Serial.println("\nfollowHeap");
|
|
myheap.followHeap();
|
|
*/
|
|
|
|
Serial.println("\ndone");
|
|
}
|
|
|
|
|
|
void loop()
|
|
{
|
|
}
|
|
|
|
|
|
// -- END OF FILE --
|