Arduino Bootloader

7

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

¿Puede alguien explicarme el uso del cargador de arranque Arduino? Quiero que Arduino realice algunos cálculos matemáticos simples utilizando algunos componentes adicionales que se deben colocar en el chip.

¿Necesito necesariamente un gestor de arranque?

    
pregunta Johnny

3 respuestas

10

El Arduino es básicamente un microcontrolador AVR de Atmel, con suficiente electrónica de soporte para que funcione. El AVR tiene un flash incorporado que le permite mantener los programas apagados, pero para programar un chip AVR directamente, necesita una herramienta como la 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 está en el chip. Esto permite que la aplicación del lado del PC transfiera sus programas al dispositivo y, en esencia, lo haga flashear.

Por lo tanto, en el fondo, si obtienes un Arduino, el cargador de arranque ya está allí y hace su trabajo automáticamente. Codificas tu programa en la PC, presionas el botón 'subir' en el IDE, y en unos momentos tu programa se ejecuta en el Arduino. El cargador de arranque hace su trabajo de forma 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 pasar por alto el cargador de arranque del Arduino.

    
respondido por el JustJeff
5

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

Si compras un Arduino, vendrá con el cargador de arranque ya grabado en el chip AVR. Solo debes preocuparte si estás construyendo tu propio tablero.

Esto debería ayudar: No obtengo el concepto Arduino

    
respondido por el Toby Jaffey
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 tiene permiso para ejecutar instrucciones de autoprogramación, lo que hace posible 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 Programación de alto voltaje HVP) como el STK500 o AVRISP mkII.

En principio, la Rutina del Servicio de Interrupción de Datos de Recibo de UART (ISR) realiza 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. En el inicio, cualquier programa que esté en el chip comienza a ejecutarse, pero si se reciben los datos en serie formados de manera adecuada, el AVR entra en una especie de modo de autoprogramación. Existe alguna lógica en el ISR de UART que solo difiere al 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 Bocetos de Arduino (programas), y descargarlos en el AVR así, a través de USB no menos gracias al pequeño chip FTDI IC integrado en la placa Arduino.

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas