#define DEBUG 1
extern "C"
{
#include "memdebug.h"
}
const int NUMBER_OF_ELEMENTS = 10;
typedef struct {
char description [12];
} description_t;
const description_t descriptions [NUMBER_OF_ELEMENTS] PROGMEM = {
{ "Furnace on" },
{ "Furnace off" },
{ "Set clock" },
{ "Pump on" },
{ "Pump off" },
{ "Password:" },
{ "Accepted" },
{ "Rejected" },
{ "Fault" },
{ "Service rqd" },
};
const char formdata[] PROGMEM = "%04u %04u %04u : used/free/large";
//const char* const formdata = {"%04u %04u %04u : used/free/large"};
void showmem()
{
char buffer[100];
sprintf(buffer, /*(const char*)*/pgm_read_word(&(formdata[0]))/*"%04u %04u %04u : used/free/large"*/,
//sprintf(buffer, formdata /*"%04u %04u %04u : used/free/large"*/,
getMemoryUsed(),
getFreeMemory(),
getLargestAvailableMemoryBlock());
Serial.println(buffer);
}
void setup ()
{
Serial.begin (115200);
Serial.println ();
Serial.print (F("Free memory = "));
Serial.println (getFreeMemory ());
showmem();
for (int i = 0; i < NUMBER_OF_ELEMENTS; i++)
{
// make a copy of the current one
description_t oneItem;
memcpy_P (&oneItem, &descriptions [i], sizeof oneItem);
Serial.println (oneItem.description);
} // end of for loop
Serial.print (F("Free memory = "));
Serial.println (getFreeMemory ());
showmem();
dumpRAM((uint16_t)&__data_start ,dataBssCount());
//dumpRAM((uint16_t)&__data_start ,0x800);
Serial.print (F("Free memory = "));
Serial.println (getFreeMemory ());
showmem();
} // end of setup
void loop () { }