Arduino Bootloader

9

Soy muy nuevo en el mundo incrustado. Hasta ahora había estado trabajando solo en S / W

¿Alguien puede explicarme el uso del Arduino Bootloader? Quiero que Arduino realice algunas matemáticas simples usando algunos componentes adicionales que se deben poner en el chip.

¿Necesito necesariamente un gestor de arranque?

Johnny
fuente

Respuestas:

10

El Arduino es básicamente un microcontrolador Atmel AVR, con la electrónica de soporte suficiente para que funcione. El AVR tiene flash incorporado para permitirle mantener programas con la alimentación apagada, pero para programar un chip AVR directamente necesita una herramienta como el STK-500 para hacer el trabajo. El Arduino supera esto al tener también una pequeña interfaz USB en la placa y el código del cargador de arranque Arduino ya en el chip. Esto permite que la aplicación del lado de la PC transfiera sus programas al dispositivo y, en esencia, lo haga flashear.

Entonces, en resumen, si obtienes un Arduino, el gestor de arranque ya está allí y hace su trabajo automáticamente. Codifica su programa en la PC, presiona el botón 'cargar' en el IDE, y en unos momentos su programa se está ejecutando en el Arduino. El gestor de arranque hace su trabajo de manera completamente transparente.

fwiw, personalmente tengo un Arduino 2009 y un STK-500 y puedo hacer programación en el metal en AVR, pero no he encontrado la necesidad de eludir el gestor de arranque del Arduino.

JustJeff
fuente
Me encantaría ver más información sobre el uso de un Arduino para programar un AVR.
Greg
@ Greg realmente hay un boceto compatible con arduino para que duemilanove muestre el gestor de arranque en un atmega328 desnudo. Obviamente, esta funcionalidad podría extenderse para flashear cualquier programa en un atmega328 desnudo. No necesita un conector ISP. Básicamente, convierte su micro arduino en un ISP.
NickHalden
5

El Arduino necesita un gestor de arranque para programar sus bocetos en serie / USB. Sin ella, necesita un AVR In-System-Programmer (ISP) para programar la memoria flash directamente en el chip AVR.

Si compra un Arduino, vendrá con el gestor de arranque ya quemado en el chip AVR. Solo necesita preocuparse si está construyendo su propio tablero.

Esto debería ayudar: no entiendo el concepto Arduino

Toby Jaffey
fuente
4

Daré una respuesta un poco más teórica; Las otras respuestas son bastante buenas desde una perspectiva práctica. Un gestor de arranque es un código que reside en un segmento especial de memoria flash. El código que reside en ese segmento puede ejecutar instrucciones de autoprogramación, lo que permite modificar la memoria flash (es decir, donde reside el código de usuario) sin un programador convencional (es decir, ISP de programación en el sistema o HVP de programación de alto voltaje) como el STK500 o AVRISP mkII.

En principio, la Rutina de servicio de interrupción de datos (ISR) de UART recibe una llamada de función al código del cargador de arranque que copia la imagen del programa que se envía en serie al espacio del programa del usuario en la memoria flash. Al inicio, cualquier programa que esté en el chip comienza a ejecutarse, pero si los datos seriales formados adecuadamente se reciben desde el principio, el AVR entra en una especie de modo de auto-programación. Hay cierta lógica en el UART ISR que solo difiere en el código del cargador de arranque durante un corto período de tiempo durante el inicio. Los detalles son un poco más complicados que eso, pero esa es la idea básica.

Lo bueno de esto es que puedes comprar un Arduino, y nada más, descargar el Entorno de Desarrollo Integrado (IDE) gratuito, y comenzar a escribir Arduino Sketches (programas), y descargarlos en el AVR así, por USB no menos gracias al elegante y pequeño chip FTDI IC que está integrado en la placa Arduino.

vicatcu
fuente