Está en la página 1de 1

Zona de memoria de almacenamiento del Bootloader

Al utilizar el bootloader cargado en la zona baja, será necesario que todos los programas a crear
especifiquen al programa linker que debe reservar una zona de memoria mediante el comando:
codeoffset = 0x400h, esta instrucción reserva 1KB de memoria de programa para el bootloader,
evitando que al momento de la programación el firmware sobreescriba al bootloader.

Entrada a modo Bootloader

En el bootloader HID, se requiere que una entrada del microcontrolador sea utilizada para
especificar (mediante su activación en bajo) que se debe ingresar al modo bootloader. Por
defecto, la entrada utilizada es RB4, aunque se puede cambiar modificando la definición en la línea
105 del archivo de configuración io_cfg.h Para ingresar a modo bootloader, es necesario que esta
entrada permanezca en bajo después de un reset del sistema y que la aplicación de comunicación
se encuentre en modo de espera.

Reserva de memoria de programa. Por defecto, el bootloader HID, se carga en la zona baja de la
memoria de programa. Es necesario entonces, indicarle al programa linker que I. II. nuestros
programas se cargarán a partir de la posición 0x1000h por medio del comando codeoffset y extend
address

por ejemplo: si utilizamos un Microcontrolador que implementa el módulo necesario para


una conexión USB como el PIC18F4550 y queremos que el bootloader utilice ese canal de
comunicación para cargar el programa de usuario, el firmware del Bootloader debe de
incluir el «stack» correspondiente a la comunicación USB. Por lo tanto un Bootloader que
utilice como canal de comunicación un puerto USB siempre ocupara mas memoria ROM que
otro que utilice un puerto COMM serie.

Protección por software: cuando la protección es por software es el propio firmware del
BootLoader el que se tiene que encargar antes de escribir en la memoria flash un nuevo
programa de usuario que las direcciones implicadas en la operación de escritura no
pertenezcan a las direcciones donde está guardado el propio BootLoader.

Protección por Hardware: algunos dispositivos pertenecientes a la familia PIC18 como el


PIC18F46J11 y otros, permiten la protección contra escritura de un número determinado de
registros de la parte baja de la memoria flash a través de los fusibles de configuración del
PIC. Sin embargo la mayoría de dispositivos solo permiten la protección de escritura de los
registros del principio de la memoria Flash. Si queremos utilizar la protección por hardware
para estos dispositivos deberemos ubicar el BootLoader al principio de la flash, por contra si
utilizamos la parte alta de la memoria para cargar el bootloader tendremos el
inconveniente  de tener que re direccionar el vector o vectores de interrupciones, con el
incremento en la latencia que ello implica.

También podría gustarte