Ejecucion setup

Hola.

Según esto: http://arduino.cc/es/Reference/Setup
El setup se ejecuta una sola vez cuando arranca un sketch. Entiendo que cuando cargas un nuevo sketch desde el entorno de programación, se ejecuta el setup y ya no se vuelve a ejecutar hasta que se restea o cargas un nuevo programa.

Pero resulta que no. He hecho un programa para monitorizar el arduino:

Monitorizacion:

gint leer,cont;
gboolean acabo_sn;
gchar buf[128];   

gint fd; //el puerto serie

fd = iniciar_puerto_serie("/dev/ttyACM0",115200);
usleep(10000); //No estoy seguro de que esto tenga que ir aquí... 

tcflush(fd,TCIFLUSH); //despues de leer se flushea el buffer del serie

for(leer=0;leer < 128;leer++) buf[leer] = 0x00;

acabo_sn = FALSE;
cont = 0;

while(!acabo_sn)  {   
     leer = read(fd,buf,128);

     if(leer > 0 AND leer < 128)  {       
         
        //printf("leer=%d buf->\n\n%s",leer,buf);
        printf("%s",buf);
        
        for(leer=0;leer < 128;leer++) buf[leer] = 0x00;
        leer = 0;
        
        
        tcflush(fd,TCIFLUSH); //despues de leer se flushea el buffer del serie
        
        if (cont++ > 20) acabo_sn = TRUE;
        }
     
     }

Este programa simplemente muestra lo que el arduino envía por el serie.

Y este es el programa del arduino.

void setup()
{


  Serial.begin(115200); // abre el puerto serie, y le asigna la velocidad de 115200 bps


  
  Serial.println("SEEEEEEEETUUUUUUUUUUUP");
  delay (1000);


}


void loop()
{
  
  Serial.println("Estoy vivo");
  
  delay(1000);
  
}

Pues bien, cuando arranca el programa del ordenador, cada vez lo primero que veo en la pantalla es :
SEEEEEEEETUUUUUUUUUUUP

Es decir que cada vez que ejecuto ele programa del ordenador el arduino se resetea o de alguna manera la ejecución pasa por la función setup().
Entiendo que no debería.
¿O es que me falta configurar algo?.

Huuuuuum... pues que bien. Ya he encontrado la solución aunque todavía no la puedo aplicar.
Hay que poner una resistencia entre el +5 y reset y así no se auto-resetea.

Había buscado por todo menos por auto-reset.

Perdón...

Pues se soluciona en el arduino Uno con un condensador de u10 entre gnd y reset. Eso si, luego no carga programas y hay que quitar y poner...

Gracias por la información Laremi!!!!

Un saludo