autoprogramación AVR

7

Según la hoja de datos, el ATMega168 solo puede ejecutar instrucciones de programación automática cuando se ejecuta código desde el bloque del cargador de arranque.

Una vez que el gestor de arranque está completo y la aplicación se inicia, ¿puede la aplicación saltar a una subrutina en el bloque del gestor de arranque y escribirla en la memoria flash?

O, ¿es el caso que una vez que el programa abandona el bloque de arranque no puede autoprogramarse hasta que se reinicie?

    
pregunta Toby Jaffey

3 respuestas

6

bueno ... siempre puede ejecutar un reinicio iniciado por software para explotar el temporizador de vigilancia ... y poner los datos en eeprom para comunicarse con el código de su cargador de arranque en cuanto a lo que quería hacer ...

enlace

Mirando la página 272 del manual de ATMega168 (sección 6: Ingreso al programa del cargador de arranque), la primera línea indica:

  

La entrada en el gestor de arranque tiene lugar   Por un salto o llamada desde la aplicación.   programa. Esto puede ser iniciado por un   disparador, como un comando recibido a través de   USART, o interfaz SPI.

Por lo tanto, me parece que definitivamente puede y debe ser capaz de llamar a las funciones del gestor de arranque desde el código de la aplicación. Mientras esté ejecutando el código que reside en la sección de la memoria del cargador de arranque, las instrucciones de SPM se pueden ejecutar y, por lo tanto, debería poder auto-programar cada vez que su programa de aplicación salte al código del cargador de arranque.

    
respondido por el vicatcu
2

Puedes saltar al bloque del gestor de arranque y todo debería estar bien. (recuerde mover los vectores de interrupción también)

    
respondido por el jpc
0

Usted puede saltar al cargador de arranque y comenzar a reprogramar la parte de la aplicación, pero probablemente sea un mal diseño. Considere qué sucede si una actualización falla o se interrumpe: ahora el área de su aplicación está en la papelera, y dado que la mitad de su gestor de arranque vive efectivamente allí, probablemente también esté en la papelera. Así que efectivamente has bloqueado el dispositivo.

Desea estructurar el gestor de arranque como un programa independiente.

Vea estas preguntas frecuentes:

enlace

    
respondido por el Britton Kerin

Lea otras preguntas en las etiquetas