cargador de arranque Arduino "más rápido"

7

El gestor de arranque Arduino tiene un tiempo de espera para facilitar la carga de "bocetos" (código); esto causa un retraso de un par de segundos antes del inicio del código principal.

Me gustaría modificar el archivo del cargador de arranque (específicamente para Arduino Mega) para reducir este tiempo a menos de 1000 milisegundos como máximo.

No estoy seguro de cómo empezar con esto. ¿Alguien podría indicarme la dirección correcta?

(Nota: soy consciente de que, en cambio, puedo cargar directamente solo el archivo hex correspondiente a mi firmware, pero en este caso, me gustaría mantener el cargador de arranque).

    
pregunta boardbite

1 respuesta

6

Para obtener una descripción general del cargador de arranque, eche un vistazo a la página Desarrollo del cargador de arranque .

El código fuente real está disponible y se puede consultar aquí . Para modificar el tiempo de espera (o el comportamiento de la espera), eche un vistazo a ATmegaBOOT.c .

En la línea 91 está MAX_ERROR_COUNT definido y se utiliza para determinar cuándo iniciar la aplicación real en su arduino. Para disminuir el tiempo de espera, comenzaría estableciendo MAX_ERROR_COUNT a un valor más bajo.

Después de que hayas publicado tu comentario, eché otro vistazo al código fuente.

En la línea 433, el "bucle para siempre" se inicia y en la línea 436 se llama a la función getch() . En esta función hay otro bucle, que busca un carácter recibido. Si no se recibe ningún carácter dentro de un período de tiempo determinado, se llama al código de la aplicación. La duración del intervalo de tiempo está determinada por MAX_TIME_COUNT .

Por lo tanto, cambiar MAX_TIME_COUNT parece ser más adecuado que cambiar MAX_ERROR_COUNT .

    
respondido por el PetPaulsen

Lea otras preguntas en las etiquetas