Introducción



¿Qué es un BootLoader?

Un BootLoader para Microcontroladores se puede definir como un programa residente en el Microcontrolador (en este caso un PIC) que facilita la carga de los programas del usuario.

El BootLoader hay que programarlo en el PIC de forma convencional a través de un programador externo como el ICD-U64, ICD3, PICkit 3, etc. Una vez programado el BootLoader la carga de los programas de usuario se hacen directamente a través de un canal de comunicación, este canal puede ser el puerto serie, paralelo o USB de nuestro ordenador, en este caso el archivo .HEX se transfiere al PIC a través de una pequeña aplicación de escritorio que hace de interfaz entre el PC y el firmware del Microcontrolador, pero también se suelen utilizar otros buses de comunicación como el bus CAM, SPI, I2C, etc.
Bootloader en el PIC
Mediante un bootloader podemos actualizar el programa o firmware de un PIC sin necesidad de utilizar un programador específico, a través de la conexión de un puerto del PC con un puerto del PIC (puerto serie RS232 o USB).
Para lograrlo, ademas de disponer de un software adecuado en el PC, se debe programar previamente al PIC cargándole un programa bootloader que permita por si mismo modificar la memoria de programa, manejar el flujo de información entre el PC y el PIC y finalmente lanzar la aplicación principal del PIC.

Siempre queda que es necesario programar el PIC la primera vez para cargar el bootloader mediante un programador hardware. Por tanto el bootloader es útil para actualizar el programa de aplicación del microcontrolador no para programar un PIC virgen o borrado.
 
Lógicamente el bootloader consume un cierto porcentaje de flash y RAM y no todos los PIC lo soportan. Hay que utilizar un modelo con suficiente memoria, donde el programa pueda modificarse a sí mismo y que cuente con puertos hardware serie RS232 o USB. El PIC16F84A no cumple con estos requisitos . Si lo hace, por ejemplo, el PIC16F876A o el PIC16F886, donde típicamente ocupa unos 256 bytes de memoria.

Bootloader y boostrap. Funcionamiento típico

Para evitar confusiones, a partir de ahora llamaremos bootloader al sistema de cargador de arranque en general y al programa en el PC en particular. Llamaremosboostrap al programa que implementa el cargador de arranque en el PIC.

Una vez programado el boostrap en el PIC, se trata de transferir o después actualizar, el programa de aplicación principal .hex desde el PC hasta el PIC, por ejemplo a través el puerto serie o el usb y así directamente el PIC se entiende con el PC sin necesidad de utilizar un programador específico.

En la mayoría de los tipos, el boostrap se carga al final de la memoria de programa, dejando libre lo anterior para el programa principal

El boostrap dirije el flujo de información según el estado en que se encuentra el PIC al inicio (esto es, tras un reset). Si al iniciarse el PIC están conectados PIC y PC y activo el bootloader del PC, estonces se graba el programa que entra en las primeras posiciones de la memoria de programa, del PIC sobreescribiendo lo que hubiese, por supuesto sin llegar a la posición donde está el boostrap. Después cede el control a la aplicación principal que funcionará normalmente. Si al inicio no se dan las condiciones anteriores, el boostrap, después de un tiempo (por ejemplo 0,2 segundos) lee el contenido de la memoria: si esta contiene un programa le cede el control y se ejecutará normalmente, si está vacía no hará nada.

En definitiva el bootloader es ideal para la programación in-circuit, sin tener que retirar el PIC de la aplicación ni complicarnos con la programación ICSP con programadores específicos.

1 comentario:

  1. Harrah's Cherokee Casino & Hotel - Mapyro
    Get directions, reviews and information 남양주 출장샵 for Harrah's 제주도 출장샵 Cherokee Casino & 광양 출장마사지 Hotel in Cherokee, NC. 동두천 출장마사지 Harrah's Cherokee Casino Hotel, Cherokee 청주 출장마사지 NC

    ResponderEliminar