GY-63_MS5611/libraries/AvrHeap/examples/heapdemo/heapdemo.ino
2021-05-28 13:20:16 +02:00

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 --