En otros ambitos, como por ejemplo los receptores de satelite, los bootloaders son generalmente utilizados, ya que facilitan la actualizacion del firmware del receptor. Permiten dicha actualizacion por los distintos puertos estandard que tenga el receptor, como suele ser RS232 y USB.
El bootloader no es sino, como su propio nombre indica, un gestor de arranque y carga, que permite en cualquier caso, incluso cuando el firmware se corrompe, recuperar el equipo en cuestion mediante la carga de un nuevo firmware y sin necesidad de manipular en su interior ni conectar ningun hardware auxiliar para la programacion.
En el caso concreto de los PIC's, es bastante practico en el proceso de diseño y desarrollo, ya que nos permite reprogramarlo sin necesidad del PicKit o similar, basta con una conexion RS232 o USB. Tambien en el proceso de produccion, si se preveen cambios frecuentes en el programa. Aunque el uso del ICSP no es demasiado engorroso, siempre es mas practico utilizar un interface estandard que no requiere hardware adicional.
-El PIC mantiene TODAS sus funciones exactamente igual que si no tuviera bootloader?
Claro, el bootloader tan solo es una rutina que ocupa un pequeño segmento de la flash y se dedica a ir depositando en el resto de la flash el programa que recibe por RS232 o USB. Tienen un "control" para saber si arrancamos en modo bootloader, o sea programacion o en modo normal o de trabajo. En el primer caso arranca la rutina del bootloader y hace su trabajo, en el segundo caso, directamente se "puentea" el bootloader, saltando a la primera posicion del programa y ejecutandolo como si no existiese el bootloader.
-Como modifico los fuses del bootloader?
No entiendo muy bien tu pregunta, los fuses creo que son los mismos que para el programa principal, salvo ese "control" que mencionaba antes.
-Alguna consideracion a tener en cienta a la hora de diseñar el software o hardware?
En cuanto al hardware, nada especial. El software, simplemente debe tener en cuenta que va a trabajar con cierto offset, pero creo que eso lo implementa ya el propio bootloader, realizando unas comprobaciones en el momento del arranque y saltando a la primera posicion del programa, si no se trata de entrar en programacion.
-Que ventajas me aporta los pines DTS y RTS?
Eso son lineas de control del protocolo RS232, no tienen nada que ver directamente con el bootloader, aunque pueden ser utilizadas por aquel.
-Supongo que habra que crear un bootloader para cada tipo de PIC, y ademas, para cada configuracion diferente dentro del mismo PIC.
Como ya dije antes, la mision del bootloader es simplemente copiar a la flash el programa que recibe por RS232 o USB, por tanto creo que sea comun para todos los PIC's, salvo en lo que concierne a tamaño de la flash, ancho de la palabra y algunos otros parametros. Entre proyectos del mismo PIC no hay cambios en el bootloader.