Se me indicó que "grabe el gestor de arranque" en mi Arduino para corregir un error que estaba recibiendo. ¿Cómo puedo hacer esto? (¿Y qué es exactamente el gestor de arranque?)
bootloader
El chico con el sombrero
fuente
fuente
Respuestas:
El gestor de arranque es un pequeño programa que (casi) siempre está en un Arduino. Gestiona la carga y el inicio de los bocetos que realiza, y parpadea el LED del pin 13 cada vez que se restablece la placa.
Para grabar el gestor de arranque:
Tools ► Board ►
en el IDE. Vuelva a verificar esto incluso si pudiera cargar programas correctamente; cargar no siempre requiere el tablero correcto.Tools ► Programmer ►
.Tools ► Burn Bootloader
y espera. No debería tomar más de un minuto y, a menudo, solo toma unos segundos.Fuentes:
fuente
{line 1} or other dedicated ISP programmer.
¿Qué es un gestor de arranque?
El gestor de arranque es un pequeño fragmento de código que reside en la parte "alta" de la memoria del programa. Normalmente no se borra cuando carga nuevos bocetos. Su propósito es que se active inmediatamente después de un reinicio (los fusibles están configurados para comenzar el código en la dirección del cargador de arranque en lugar de la dirección 0x0000). El gestor de arranque esperará un corto tiempo (como un segundo) para ver si los datos de "programación" están llegando al puerto serie.
Si es así, lee esos datos y los decodifica para reprogramar el resto de la memoria flash. Trabajando en conjunto con el programa de carga (normalmente avrdude), el nuevo boceto se envía a través del puerto serie. El gestor de arranque borra las páginas de la memoria flash y las reemplaza con el nuevo código. Una vez hecho esto, ejecuta el nuevo código.
Si no llegan instrucciones, el gestor de arranque salta a la dirección 0x0000 para ejecutar el boceto existente en el tablero.
Cómo reemplazar el gestor de arranque
Un método alternativo para programar un gestor de arranque es usar un boceto que escribí hace un tiempo que se ejecuta en un:
La placa de "programación" ejecuta el boceto que tiene cargadores de arranque para varias placas codificadas. Conecta la placa de programación a la placa de destino (la placa que quiere el cargador de arranque) con 6 cables de conexión como se muestra.
Esa foto en particular ilustra uno Uno programando otro.
Ejecutas el boceto (operando a través del Monitor de serie para darle comandos). Primero identifica el chip objetivo:
Luego presionas G para programarlo.
Para un Uno, esto lleva un segundo. Programar un Mega2560 toma 3 segundos.
Instrucciones detalladas en el programador del gestor de arranque Atmega
El código se puede descargar desde Github: nickgammon / arduino_sketches
fuente