Seguimiento del cargador de arranque Arduino

Dos partes:

  1. ¿Es posible escribir un Arduino Bootloader para un Tiny AVR?

  2. ¿Vale la pena escribir un Arduino Bootloader para un Tiny AVR? (más subjetivo, dependiente de 1)

Saludos, Vic

Bootloader para ATtiny13 (usa cerca del 25% de FLASH): jps.hut2.ru/free_avr_loader_en.html

Respuestas (3)

No vale la pena escribir uno nuevo. Hay muchos cargadores de arranque en serie existentes para el Tiny AVR y sería bastante trivial portar el cargador de arranque real de Arduino. Ni siquiera es necesario hablar el mismo protocolo para trabajar con el entorno Arduino. El IDE de Arduino se puede configurar para cargarlo en cualquier programador compatible con avrdude.

Diría que vale la pena, aunque no sea por otra razón, como una experiencia educativa. El hecho de que un chip tenga un cargador de arranque predeterminado o popular no lo hace bueno ni significa que tenga que usarlo. Si nunca ha escrito uno, lo recomendaría encarecidamente, si nada más modifica el existente/popular.

Ahora que dice eso, es mejor hacer esto en una plataforma donde tenga una ruta de recuperación. Por lo tanto, se prefieren las placas/dispositivos en los que tiene una interfaz jtag y experiencia en el uso de ese jtag. O simplemente para inventar/usar un protocolo, haga que el cargador de arranque predeterminado inicie su cargador de arranque (secundario) y trabaje a través de la experiencia del cargador de arranque/programador (usando el cargador de arranque original como su ruta de recuperación). Pero hay otra mitad del problema que no obtendrá, y esa es la inicialización del chip, y eso puede ser difícil de corregir y requiere muchas iteraciones (y la mayoría de esas iteraciones dan como resultado un cargador de arranque no funcional que requiere la ruta de recuperación de la puerta trasera) .

El arduino en particular sufrió la transición de 32 a 64 bits (en el host) durante un tiempo, por lo que la elección fue cambiar mis hábitos diarios para esta placa, o salir de la caja de arena y hacer lo mío con esto. ¿junta? Usted encuentra esto muy a menudo en el mundo de los microcontroladores o tableros de evaluación, las cajas de arena enlatadas generalmente son Windows primero, luego tal vez Mac y luego, a veces, Linux. Incluso hoy en día, pre-vista o pre windows 7 funciona, pero es posible que no tenga acceso a ellos en su máquina de desarrollo, es posible que no quiera o no pueda comprar una copia solo para jugar con un juguete de $ 20. Linux suele ser el último entorno de host admitido, por lo que a menudo me encuentro escribiendo un cargador de arranque, usando Windows o lo que sea brevemente, para cargarlo y luego puedo trabajar en un entorno con el que me siento más cómodo para continuar usando o evaluando el producto. En el caso de arduino, era más fácil escribir un programador que trabajara con el cargador de arranque existente en el Linux actual que escribir un cargador de arranque nuevo o modificado usando un Linux o Windows más antiguo o de 32 bits. Para los dispositivos que tienen cargadores de arranque integrados bien diseñados, ya sea en hardware o en un flash protegido, a menudo es mejor reemplazar el programador que el cargador de arranque. Lo cual es parte del proceso de desarrollo del cargador de arranque de todos modos, así que aquí nuevamente una experiencia educativa y, a veces, una solución práctica. a menudo es mejor reemplazar el programador que el gestor de arranque. Lo cual es parte del proceso de desarrollo del cargador de arranque de todos modos, así que aquí nuevamente una experiencia educativa y, a veces, una solución práctica. a menudo es mejor reemplazar el programador que el gestor de arranque. Lo cual es parte del proceso de desarrollo del cargador de arranque de todos modos, así que aquí nuevamente una experiencia educativa y, a veces, una solución práctica.

El corolario de su pregunta es ¿Estoy obligado a usar el IDE/sandbox proporcionado con una placa de evaluación o desarrollador, o puedo usar otras herramientas o crear una propia? ¿Tengo que usar tal o cual biblioteca para hacer algo o puedo escribir y usar la mía?

Eh... como usuario de Mac, según mi experiencia, es Windows primero, Linux segundo y Mac tercero (si alguna vez).

No hay necesidad de usar un IDE como arduino, para usar avr. mire avr-gcc + isp. puede programar el avr en c como arduino, pero sin la sobrecarga y sin la necesidad de un cargador de arranque.