Aiuto per compilazione STK500boot.c

Scusate ma qual'è l'obbiettivo?

Rendere sordo il bootloader per tot tempo?
Con sordo intendo che anche se gli arrivano dati esso non li prende in considerazione per x secondi.

Questo è il codice originale che ho io.
ps. non so se è lo stesso che avete voi.

// siamo nel main
// Non ho idea se BLINK_LED_WHILE_WAITING è definito sulla riga di comando di GCC, 
// ma supponiamo che boot_timeout è 20000
#ifdef BLINK_LED_WHILE_WAITING
	boot_timeout	=	 20000;		//*	should be about 1 second
//	boot_timeout	=	170000;
#else
	boot_timeout	=	3500000; // 7 seconds , approx 2us per step when optimize "s"
#endif	

        // boot_state deve essere 0 per rimanere intrappolato qui
        while (boot_state==0)        
	{
		while ((!(Serial_Available())) && (boot_state == 0))  cicla fintanto che boot_state è zero && non cè niente nel serial buffer 
		{
			_delay_ms(0.001);      // per eseguire questa istruzione ci vuole 1us
			boot_timer++;
			if (boot_timer > boot_timeout)
			{
				boot_state	=	1; // (after ++ -> boot_state=2 bootloader timeout, jump to main 0x00000 )
			}
		#ifdef BLINK_LED_WHILE_WAITING
			if ((boot_timer % 7000) == 0)
			{
				//*	toggle the LED
				PROGLED_PORT	^=	(1<<PROGLED_PIN);	// turn LED ON
			}
		#endif
		}
		_delay_ms(1000);  // non originale: aspetta 1 secondo prima di incrementare boot_state
                boot_state++; // ( if boot_state=1 bootloader received byte from UART, enter bootloader mode)
	}


	if (boot_state==1)
	{
		//*	main loop

Si esce dal ciclo sulla seriale solo se arriva un dato, allora aspetta 1 secondo circa e incrementa boot_state che comporta l'uscita
dal primo while. Purtroppo si deve aumentare anche il boot_timeout che deve essere maggiore di un secondo o comunque superiore a valore impostato qui _delay_ms(1000); // non originale: aspetta 1 secondo prima di incrementare boot_state.

mmm... non funge neanche così perchè rimangono dati nel buffer e alla fine il risultato è che parte il bootloader ma con ritardo, ma parte comunque.

Ciao.