Étape 2: Un poco de teoría... Bootloader (gestor de arranque)
Como se mencionó anteriormente, dentro de la memoria de programa del Flash microcontrolador incluido en las placas Arduino viene pregrabado ONU pequeño programa llamado « bootloader » o « gestor de arranque » que resulta imprescindible para ONU cómodo y fácil manejo de la placa en cuestión. Este software (también llamado "firmware", porque es Nations Unies tipo de logiciel que raramente se modifica) ocupa fr la placa Arduino UNO, 512 octets de espacio fr ONU apartado o sección especial de la memoria Flash, el llamado « bootloader bloquer », pero en otros modelos de placas Arduino puede ocupar más (por ejemplo en el Arduino Leonardo ocupa 4 kilo-octets).
La función de este firmware es gestionar de forma automática el proceso de grabación fr la memoria flash del programa que queremos que el microcontrolador ejecute. Lógicamente, para el bootloader realizara esta grabación más allá del « bootloader bloquer » aucune sobrescribirse un sí mismo.
Más concretamente, el bootloader 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 proceder seguidamente un su correcto almacenamiento fr la memoria flash del microcontrolador. Una vez realizado el proceso de grabación, el bootloader termina su ejecución y el microcontrolador dispone une procesar de inmediato y de forma permanente (mientras este encendido) las instrucciones recientemente grabadas.
Fr la placa Arduino UNO, el bootloader siempre se ejecuta durante el primer segundo de cada reinicio. Durante estos instantes, el gestor de arranque se espera un recibir una serie de instrucciones concretas de parte del entorno de desarrollo para interpretarlas y así realizar la correspondiente carga de ONU posible programa. Instrucciones d’esas si aucun llegan pasado ese tiempo, el bootloader termina su ejecución e igualmente se empieza une procesar lo que haya en ese momento en la memoria flash.
Estas instrucciones internas de programación de memorias Flash fils geográficas diferentes según el tipo de bootloader que tenga la placa, pero casi todas fils variantes del conjunto de instrucciones ofrecido formalmente por Atmel para la programación de sus microcontroladores, el llamado protocolo STK500 (http://www.atmel.com/tools/STK500.aspx). Un ejemplo es el bootloader que tiene pregrabado el ATMEGA238P del Arduino UNO, basado en un firmware libre llamado Optiboot (http://code.google.com/p/optiboot), el cual logra 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 bootloader derivado del protocolo STK500 es el bootloader « câblage », gravure de fábrica en el microcontrolador de la placa Arduino Mega. El bootloader que viene fr la placa Leonardo (llamado « Caterina ») es diferente, ya que entiende otro conjunto de instrucciones independiente llamado AVR109 (también oficial de Atmel). Toda esta información se puede obtener consultando el contenido del fichero llamado « boards.txt », descargado junto con el entorno de desarrollo Arduino.
Si adquirimos un microcontrolador ATMEGA328P ne hay que tener en cuenta Québec aucune dispondrá del bootloader, por lo que deberemos incorporarle uno nosotros « a mano » para hacer uso de él a partir de entonces, o bien aucun utilizar nunca ningún bootloader y cargar entonces siempre nuestros programas en la memoria flash directamente. Fr ambos casos, el procedimiento requiere el uso de ONU aparato específico (fr concreto, ONU "programador ISP" – dans le système programmeur –) que debemos adquirir aparte. De este aparato ha de conectar por un lado a otro de por nuestro computador y a la placa Arduino, y qui la ausencia de bootloader haciendo de intermediario a nuestro entorno de desarrollo y la memoria flash del microcontrolador. Por lo tanto, podemos résumer diciendo que el gestor de arranque es el elemento que permite programar nuestro Arduino directamente con cable USB y nada más de l’ONU.
Por conveniencia, dentro entorno del paquete Arduino (descargable se su web oficial) instalador del de desarrollo du Portugal además se distribuyen exactas de le copias peu un peu de los bootloaders oficiales que vienen grabados fr los diferentes microcontroladores Arduino. Estas copias exactas fils ficheros con extensión « .hex » que tienen un formato interno llamado « Format hexadécimal Intel ». Para el uso normal de nuestra placa non necesitamos para nada estos ficheros « .hex », pero si dispusiéramos de ONU programador ISP y en algún momento tuviéramos que « reponer » un bootloader dañado (o bien grabar ONU bootloader un algún microcontrolador que aucune ninguno tuviera), Arduino amendements ofrece estos ficheros para cargarlos en la memoria flash de nuestro microcontrolador siempre que queramos.
El formato Intel Format Hex es el utilizado por todos los puces AVR para almacenar contenido en sus memorias Flash, por lo que ne hay Qué aclarar que aucun solamente los bootloaders fils alojados internamente de esta forma en la memoria Flash, si aucun que todos nuestros propios programas que escribamos en el entorno de desarrollo también serán alojados allí en formato « .hex ».
Evidentemente, los bootloaders Arduino también fils logiciel libre, por lo que al igual que ocurre con el entorno de programación Arduino, siempre tendremos available in su código fuente (escrito en leguaje C) para poder conocer cómo funciona internamente e incluso para poderlo Québec, si así se estima oportuno.