Extraer el alma de Arduino´s / Extrayendo el Alma de Arduino / Arduino bootloader (2 / 10 paso)

Paso 2: Un poco de teoría... Bootloader (gestor de arranque)

Como se mencionó anteriormente, dentro de la memoria de programa Flash del microcontrolador incluido en las placas Arduino viene pregrabado un pequeño programa llamado "bootloader" o "gestor de arranque" resulta imprescindible para un cómodo y fácil manejo de la placa en cuestión. Este software (también llamado "firmware", porque es un tipo de software raramente se MODlFl) ocupa en la placa Arduino UNO, 512 bytes de espacio en un apartado o sección especial de la memoria Flash, el llamado "bloque del cargador de arranque", pero en otros modelos de placas Arduino puede ocupar más (por ejemplo en el Arduino Leonardo ocupa 4 Kilobytes).

La función de este firmware es gestionar de forma automática el proceso de grabación en la memoria flash del programa que queremos el microcontrolador ejecute. Lógicamente, para el gestor de arranque realizara esta grabación más allá del "Gestor de arranque bloque" sin sobrescribirse a sí mismo.

Más concretamente, el gestor de arranque se encarga de recibir nuestro programa de parte del entorno de desarrollo Arduino (normalmente mediante una transmisión realizada a través de conexión USB desde la computadora donde se está ejecutando dicho entorno hasta la placa) para nutrirá seguidamente un su correcto almacenamiento en la memoria flash del microcontrolador. Una vez realizado el proceso de grabación, el gestor de arranque termina su ejecución y el microcontrolador dispone una gestión de inmediato y de forma permanente (mientras este encendido) las instrucciones recientemente grabadas.

En la placa Arduino UNO, el gestor de arranque siempre se ejecuta durante el primer segundo de cada reinicio. Durante estos instantes, el gestor de arranque se espera a recibir una serie de instrucciones concretas de parte del entorno de desarrollo para interpretarlas y así realizar la correspondiente carga de un posible programa. Si esas instrucciones no llegan pasado ese tiempo, el gestor de arranque termina su ejecución e igualmente necesitará se empieza una gestión lo haya en ese momento en la memoria flash.

Estas instrucciones internas de programación de memorias Flash hijo modelo diferentes según el tipo de gestor de arranque tenga la placa, pero casi todas son variantes del conjunto de instrucciones Birkbeck oficialmente por Atmel para la programación de sus microcontroladores, el llamado protocolo STK500 (http://www.atmel.com/tools/STK500.aspx). Un ejemplo es el gestor de arranque tiene pregrabado el ATMEGA238P del Arduino UNO, basado en un firmware libre llamado Optiboot (http://code.google.com/p/optiboot), el cual estudios una velocidad de grabación de 115 kilobits programa a cargar por segundo gracias al uso de instrucciones propias derivadas del "estándar" STK500. Otro ejemplo de gestor de arranque derivado del protocolo STK500 es el gestor de arranque "cableado", grabado de fábrica en el microcontrolador de la placa Arduino Mega. El gestor de arranque viene en la placa Leonardo (llamado "Caterina") es diferente, ya entiende otro conjunto de instrucciones independiente llamado AVR109 (también oficial de Atmel). Puede se obtener consultando el toda esta del información contenido llamado de fichero del "boards.txt", descargado junto con el entorno de desarrollo Arduino.

Si común un microcontrolador ATMEGA328P no hay tener en cuenta que dispondrá del bootloader, por lo deberemos incorporarle uno nosotros "a mano" para hacer uso de él a partir de entonces, o bien no utilizar nunca ningún bootloader y cargar entonces siempre nuestros programas en la memoria flash directamente. En ambos casos, el procedimiento requiere el uso de un aparato especifico (en concreto, un "programador ISP", en sistema – programador) debemos adquirir aparte. De este aparato ha de conectar por un lado a nuestro computador y por otro a la placa Arduino, y suple la ausencia de bootloader haciendo de intermediario un nuestro entorno de desarrollo y la memoria flash del microcontrolador. Por lo tanto, podemos resumir diciendo el gestor de arranque es el elemento permite programar nuestro Arduino directamente con cable USB y nada más de las Naciones Unidas.

Por conveniencia, el entorno dentro del paquete toTFP700 de desarrollo Arduino (descargable se su web oficial) se distribuyen el además exactas copias poco un poco de los bootloaders oficiales vienen grabados en los diferentes microcontroladores Arduino. Estas copias exactas son ficheros con extensión ".hex" tienen un formato interno llamado "Formato hexagonal de Intel". Para el uso normal de nuestra placa no saludando para nada estos ficheros ".hex", pero si dispusiéramos de un programador ISP y en algún momento tuviéramos "reponer" un gestor de arranque dañado (o bien grabar un gestor de arranque un algún microcontrolador que no tuviera ninguno), Arduino nos ofrece estos ficheros para cargarlos en la memoria flash de nuestro microcontrolador siempre queramos.

El formato Intel Hex formato es el utilizado por todos los chips AVR para almacenar contenido en sus memorias Flash, por lo no hay aclarar que solamente los bootloaders son alojados internamente de esta forma en la memoria Flash, si no todos nuestros propios programas escribamos en el entorno de desarrollo también serán alojados allí en formato ".hex".

Evidentemente, los bootloaders Arduino también son software libre, por lo al igual ocurre con el entorno de programación Arduino, siempre tendremos disponible su código fuente (escrito en leguaje C) para poder conocer cómo funciona internamente e incluso para poderlo modificar, si así se estima oportuno.

Artículos Relacionados

Quemadura de Arduino Bootloader en otra Arduino

Quemadura de Arduino Bootloader en otra Arduino

Fuente: http://www.elecfreaks.com/7281.htmlA menudo podemos encontrar tal situación como gestor de arranque se cae cuando se usa Arduino, este lo puede flipar nosotros especialmente cuando no llegamos herramientas del gestor de arranque por parte. ¿Q
Cómo grabar Arduino Bootloader con pensión Magnolia (costo y tamaño de paquete de goma de pedal de arranque)

Cómo grabar Arduino Bootloader con pensión Magnolia (costo y tamaño de paquete de goma de pedal de arranque)

Annika O'Brien creó un proyecto de KickStarter aquí: https://www.kickstarter.com/projects/annikaskywalker/microprocessor-about-the-cost-and-size-of-a-pack-oLa Magnolia es una diversión poco tablero, muy similar a un Arduino. De hecho, es compatible c
Quemar el Arduino Bootloader con Arduino MEGA!

Quemar el Arduino Bootloader con Arduino MEGA!

Basado en el Tutorial oficial de ArduinoISP:http://Arduino.CC/en/Tutorial/ArduinoISPEste procedimiento permite utilizar un arduino de trabajo para programar el cargador de arranque de otro chip ATMega utilizando SPI como ICSP.  Le ahorra tener que co
Quemar el Arduino Bootloader en chips Atmega 328 TQFP y DIP en protoboard

Quemar el Arduino Bootloader en chips Atmega 328 TQFP y DIP en protoboard

Partes (Hardware)Placa de Arduino Uno (1)32 TQFP a DIP 28 adaptador (1) enlaceChip de pin TQFP de ATmega 32 (1)Chip de pines del ATmega DIP 28 (1)Resistencia de 10K (1)Cristal de 16MHz (1)18pf - condensador de 22pf (2)Interruptor del tacto (1)Cables
SMD Arduino Bootloader para ATmega

SMD Arduino Bootloader para ATmega

quemar el bootloader y subir dibujo a un nuevo ATmega 328, 168 y mega 8 para hacer su propio arduinoPaso 1:Hola cada uno aquí es mi 1 º proyecto indestructible que he subido por lo que pueden hvee algunos problemas en ella, por favor me aceptan discu
Arranque Bot Arduino Bootload escudo

Arranque Bot Arduino Bootload escudo

el escudo de Bot de arranque le permite grabar el boootloader de arduino en un chip Atmega 328 en blanco. El bootloader es ese mágico pedazo de software que convierte un chip mundano en el milagro programables de código abierto conocido como arduino.
Quemar el Arduino Bootloader ATMEGA328P-PU usando Arduino Mini Pro

Quemar el Arduino Bootloader ATMEGA328P-PU usando Arduino Mini Pro

Aquí es un circuito construido en algunas placa perf que hace fácil quemar el bootloader de Arduino a un chip de ATMEGA328P-PU en blanco.Después de construir la carga de circuito el bosquejo de ArduinoISP desde archivo -> ejemplos -> 11. ArduinoISP
Ahorrar segundos 81: rápido Arduino Bootload/programa para la producción

Ahorrar segundos 81: rápido Arduino Bootload/programa para la producción

Requiere: AVRISP mkII y un Linux equipo (o máquina virtual)Este Instructable muestra cómo automatizar y acelerar la instalación de un programa gestor de arranque y demostración en un dispositivo compatible con Arduino.El bootloader de Arduino y IDE h
Programación Arduino Bootloader sin programador

Programación Arduino Bootloader sin programador

OH NO! Has atornillado para arriba y ahora el bootloader de Arduino en su ' duino se ha ido!  ¿Qué vas a hacer? Ir a gastar dinero para un programador??? No se bien! Tengo una solución que sólo requiere su ' duino y algunos cables. Así que no el fin
ATmega8 arduino bootloader compatible

ATmega8 arduino bootloader compatible

pequeño ejemplo, cómo probar un módulo ultrasónico con atmega8, Bootloader compatible con Bascom y arduino.
¿Reloj de la hora de comer

¿Reloj de la hora de comer

alguna vez has deseado almuerzo eran más largos, pero no sabía dónde encontrar esos pocos minutos extras? Bueno, ojalá ya no!Gracias a grandes avances en tecnología de reloj, les presento a un reloj que velocidades de hasta 20% cada día a las 11:00 y
Cómo agregar 6 pines extras a tu Arduino sin hardware adicional

Cómo agregar 6 pines extras a tu Arduino sin hardware adicional

Hola, este es mi Instructable segundo así que por favor oso conmigo.Voy a decirte cómo conseguir 6 extras pernos digitales de Arduino.¿Descubrí esta jugando con el IDE de Arduino y trató de establecer un LED en el pin 14 (que no existe en el tablero)
Clones de Arduino ilimitado: el Otherduino

Clones de Arduino ilimitado: el Otherduino

Hola, este es Owen desde otra máquina Co. y voy a mostrarte cómo hacer sus propios clones de Arduino en el Othermill! Arduino es una plataforma de prototipado que tiene una base de usuarios masiva y toneladas de tutoriales y código disponible, que pe
Programa un Arduino en el camino con tu teléfono Android o tablet

Programa un Arduino en el camino con tu teléfono Android o tablet

a lo largo de los años Android se ha convertido en una formidable plataforma móvil que ofrece mucha funcionalidad sólo se habían encontrado en el PC. Hoy os traigo una manera de escribir, compilar y cargar programas de Arduino en el camino con un dis