Anda di halaman 1dari 4

Un gestor de arranque o arrancador (bootloader) es un programa (software)

diseado exclusivamente para preparar todo lo que necesita el sistema


operativo para funcionar. Normalmente se utilizan los cargadores de arranque
multietapas, en los que varios programas pequeos se suman los unos a los
otros, hasta que el ltimo de ellos carga el sistema operativo.
El proceso de arranque comienza cuando la unidad central de procesamiento
ejecuta los programas contenidos en una memoria de slo lectura en una
direccin predefinida y se configura la unidad central para ejecutar este
programa, sin ayuda externa, al encender el ordenador.
Sistemas de computacin impulsados por un procesador central o un conjunto
de procesadores slo pueden ejecutar cdigo en la memoria de
funcionamiento, tambin conocido como sistemas de memoria, que pueden ser
implementados en varias tecnologas cubiertas en tipos generales de: memoria
de slo lectura o ROM, y memoria de acceso aleatorio o RAM. Modernos
sistemas operativos y aplicaciones de programacin de cdigo y datos estn
almacenados en dispositivos no voltiles de memoria perifrica o dispositivos
de almacenamiento masivo. Ejemplos tpicos de tales dispositivos de
almacenamiento no voltiles son: disco duro, CD-ROM, DVD, dispositivos de
memoria USB y disqueteras.
Gestor de arranque de segunda etapa.
Este programa contiene funcionalidades rudimentarias para buscar unidades
que se puedan seleccionar para participar en el arranque, y cargar un pequeo
programa desde una seccin especial de la unidad ms prometedora. El
pequeo programa no es, en s mismo, un sistema operativo sino,
simplemente, un cargador de arranque de segundo nivel, como Lilo o GNU
GRUB, que es capaz de cargar el sistema operativo propiamente dicho y,
finalmente, transferirle el control.
La mayora de los sistemas embebidos deben arrancar casi instantneamente,
por ejemplo, esperar un minuto para poder ver la televisin se considera
inaceptable. Por ello, tienen el sistema operativo en la ROM o memoria
flash, gracias a lo cual pueden ser ejecutados de forma casi
instantnea.
Gestor de arranque de memoria flash
Dentro de la memoria de programa Flash del microcontrolador incluido en las
placas Arduino viene pregrabado un pequeo programa llamado bootloader o
gestor de arranque que resulta imprescindible para un cmodo y fcil manejo
de la placa en cuestin. Este software (tambin llamado firmware, porque es
un tipo de software que raramente se modifica) ocupa, en la placa 512 bytes
de espacio en un apartado o seccin especial de la memoria Flash, el llamado
bootloader block, pero en otros modelos de placas Arduino puede ocupar
ms.
La funcin de este firmware es gestionar de forma automtica el proceso de
grabacin en la memoria flash del programa que queremos que el

microcontrolador ejecute. Lgicamente, el bootloader realizara esta grabacin


ms all del bootloader block para no sobrescribirse a s mismo.
El bootloader 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 el entorno de desarrollo para interpretarlas y
as realizar la correspondiente carga de un posible programa. Si esas
instrucciones no llegan pasado ese tiempo, el bootloader termina su ejecucin
e igualmente se empieza a procesar lo que haya en ese momento en la
memoria flash.
Si un micro no tiene bootloader, hay que incorporarle uno nosotros a
mano para hacer uso de l a partir de entonces, o bien no utilizar nunca
ningn 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 In System
Programmer) que debemos adquirir aparte. Este aparato de 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 a nuestro entorno de
desarrollo y la memoria flash del microcontrolador. Por lo tanto, podemos
resumir diciendo que el gestor de arranque es el elemento que permite
programar nuestro Arduino directamente con un cable USB y nada ms.
Por conveniencia, dentro del paquete instalador del entorno de desarrollo de
Arduino (descargable se su web oficial) se distribuyen adems copias exactas
bit a bit de los bootloaders oficiales que vienen grabados en los diferentes
microcontroladores Arduino. Estas copias exactas son ficheros con extensin
.hex que tienen un formato interno llamado Intel Hex Format. Para el uso
normal de nuestra placa no necesitamos para nada estos ficheros .hex, pero
si dispusiramos de un programador ISP y en algn momento tuviramos que
reponer un bootloader daado (o bien grabar un bootloader a algn
microcontrolador que no tuviera ninguno), Arduino nos ofrece estos ficheros
para cargarlos en la memoria flash de nuestro microcontrolador siempre que
queramos.
El formato Intel Hex Format es el utilizado por todos los chips AVR para
almacenar contenido en sus memorias Flash, por lo que hay que aclarar que no
solamente los bootloaders son alojados internamente de esta forma en la
memoria Flash, si no que todos nuestros propios programas que escribamos en
el entorno de desarrollo tambin sern alojados all en formato .hex.

Evidentemente, los bootloaders Arduino tambin son software libre, por lo que
al igual que ocurre con el entorno de programacin Arduino, siempre
tendremos disponible su cdigo fuente (escrito en leguaje C) para poder
conocer cmo funciona internamente e incluso para poderlo modificar, si as se
estima oportuno.

http://www.instructables.com/id/Extracting-the-Arduinos-Soul-Extrayendo-elAlma-de/step2/Un-poco-de-teor%C3%ADa-Bootloader-gestor-de-arranque/
3.4 Active Background Mode of the JM60 microcontroller
The active background mode functions are managed through the background
debug controller (BDC) in the HCS08 core. The BDC, together with the on-chip
in-circuit emulator (ICE) debug module (DBG), provides the means for analyzing
MCU operation during software development.
Active background mode is entered in any of five ways:
When the BKGD/MS pin is low at the rising edge of reset
When a BACKGROUND command isreceived through the BKGD pin
When a BGND instruction is executed
When encountering a BDC breakpoint
When encountering a DBG breakpoint
After entering active background mode, the CPU is held in a suspended state
waiting for serial background commands rather than executing instructions
from the user application program.
Background commands are of two types:
Non-intrusive commands, defined as commands that can be issued while the
user program is running. Non-intrusive commands can be issued through the
BKGD pin while the MCU is in run mode; non-intrusive commands can also be
executed when the MCU is in the active background mode. Non-intrusive
commands include:
Memory access commands
Memory-access-with-status commands
BDC register access commands
The BACKGROUND command
Active background commands, which can only be executed while the MCU is
in active background mode. Active background commands include commands
to:
Read or write CPU registers
Trace one user program instruction at a time
Leave active background mode to return to the user application program
(GO)
The active background mode is used to program a bootloader or user
application program into the flash program memory before the MCU is
operated in run mode for the first time. When the MC9S08JM60 series is

shipped from the Freescale factory, the flash program memory is erased by
default unless specifically noted, so there is no program that could be executed
in run mode until the flash memory is initially programmed. The active
background mode can also be used to erase and reprogram the flash memory
after it has been previously programmed.