Hola, quería compartir con ustedes un problema que estoy teniendo. A mi parecer está relacionado con falta de memoria en tiempo de ejecución.
Me está pasando que al momento de arrancar el programa se cuelga / resetea.
Puse unos flags en la función setup para hacer algo de debuging pero... seguía interrumpiéndose.
¿Qué fue lo que hice?... mucho je desde probar aisladamente las funciones del setup hasta comentar mucho código (esto último me dio una pista)
El .ino tiene muchos includes, muchas funciones propias y llega a tener unas 500 líneas. Probé de comentar la mayoría de las funciones declaradas en el .ino dejando las pocas que se llamaban desde la función setup y... FUNCIONÓ !!!
UPS, creo que estoy en problemas.
Para una mejor explicación les ejemplifico con este codigo:
Antes:
(esto no funciona ya que no muestra las banderas de debug)
void functionA()
{
// aca configuro el serial
// y pongo las banderas de debuging
....
}
void functionB()
{
....
}
void functionC()
{
....
}
void functionD()
{
....
}
void setup()
{
functionA();
}
void loop()
{
}
Después:
(Funciona, dejo solo la funcionA, el resto está comentado, empiezo a tener respuesta del debugin por Serial en la pc)
void functionA()
{
// aca configuro el serial
// y pongo las banderas de debuging
....
}
/*
void functionB()
{
....
}
void functionC()
{
....
}
void functionD()
{
....
}
*/
void setup()
{
functionA();
}
void loop()
{
}
Hice exactamente eso, comenté funciones del programa que nunca se llamaban ya que no tenía nada en el loop() y tampoco eran llamadas por la funcionA() que está en el setup.
Estuve leyendo sobre PROGMEM con el objetivo de usar la memoria flash y liberar un poco la SRAM, pero tengo miedo de solucionar parcialmente el problema y que luego de estar corriendo el programa por unas minutos/horas comience a resetearse por problemas de memoria.
¿Alguien me podría orientar en esto? ¿Por qué de este comportamiento?
¿Voy a tener que rediseñar/remodelar las clases que definí en mi programa? Posiblemente ¿no?
¿Como podría confirmar que es un problema de memoria?