Dos partes:
-
¿Es posible escribir un Arduino Bootloader para un AVR Tiny?
-
¿Vale la pena escribir un Arduino Bootloader para un AVR Tiny? (más subjetivo, contingente a 1)
Saludos, Vic
Dos partes:
¿Es posible escribir un Arduino Bootloader para un AVR Tiny?
¿Vale la pena escribir un Arduino Bootloader para un AVR Tiny? (más subjetivo, contingente a 1)
Saludos, Vic
No vale la pena escribir uno nuevo. Hay un montón de cargadores de arranque en serie existentes para el AVR Tiny y sería bastante trivial portar el Arduino real gestor de arranque. Ni siquiera es necesario hablar el mismo protocolo para trabajar con el entorno Arduino. El IDE de Arduino se puede configurar para cargar en cualquier programador compatible con avrdude.
Yo diría que vale la pena si no fuera por otra razón como experiencia educativa. El hecho de que un chip tenga un cargador de arranque predeterminado o popular no lo hace bueno o significa que tiene que usarlo. Si nunca ha escrito uno, lo recomendaría altamente, si nada más modificara el existente / popular.
Ahora diciendo eso, es mejor hacer esto en una plataforma donde tenga una ruta de recuperación. Por lo tanto, se prefieren las tarjetas / dispositivos en los que tiene una interfaz jtag y la experiencia de usar 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 en el problema que no obtendrá, y esa es la inicialización del chip, y eso puede ser difícil de resolver y requiere muchas iteraciones (y la mayoría de esas iteraciones dan como resultado un gestor de arranque no funcional que requiere la ruta de recuperación de puerta trasera) .
El arduino en particular sufrió la transición de 32 a 64 bits (en el servidor) por un tiempo, así que la elección fue cambiar mis hábitos del día a día para este tablero, o salir de la caja de arena y hacer los míos. cosa con este tablero? Encuentras esto muy a menudo en el microcontrolador o en el mundo de la placa de evaluación, las cajas de arena enlatadas suelen ser primero ventanas, luego mac y luego a veces linux. Incluso hoy en día, las versiones previas o previas a Windows 7 funcionan, pero es posible que no tenga acceso a las personas que están 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 compatible, por lo que a menudo me encuentro escribiendo un gestor de arranque, usando Windows o lo que sea brevemente, para cargarlo, entonces puedo trabajar en un entorno en el que me siento más cómodo para continuar usando o evaluando el producto. En el caso del 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 de 32 bits más antiguo. 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. De todos modos, esto es parte del proceso de desarrollo del gestor de arranque, así que aquí una vez más una experiencia educativa y, a veces, una solución práctica.
El corolario de su pregunta es: ¿Estoy obligado a usar el IDE / sandbox que se proporciona con una placa de desarrolladores o de evaluación, o puedo usar otras herramientas o crear las mías? ¿Tengo que usar tal o cual biblioteca para hacer algo o puedo escribir y usar la mía?
No hay necesidad de usar un IDE como arduino, para usar avr's. mira avr-gcc + isp. puede programar el avr en c como arduino, pero sin la sobrecarga y la necesidad de un cargador de arranque.
Lea otras preguntas en las etiquetas arduino avr attiny bootloader