4.3.2 Protección contra sobre escritura
Como se pudo
observar en la Figura 4.13, se protege el bloque donde se almacena el salto al bootloader con “Dirección +16” y “Borrar
primer bloque”. La protección del arrancador se lleva a cabo con “¿Dirección
límite +1?”, esta toma de decisión revisa que no se grabe sobre el bootloader
ya que la dirección límite es un bloque anterior al que se almacena.
El sumar 16 a la
dirección es básicamente el mismo principio que el de eliminar el primer bloque
del fichero, solo que en vez de ignorar las primeras dos líneas, el sumar 16
las recorre. Si se desea ocupar el grabado genérico hay que tener en cuenta
que:
·
El
desplazamiento de la grabación puede ocasionar que los saltos no se realicen
correctamente.
·
Los fuses CONFIG no pueden ser modificados.
·
La
configuración del fuse del oscilador
es HS.
El desplazamiento
puede ser solucionado con la función NOP
en el caso de ASM, o haciendo el
desplazamiento desde el entorno de programación para que los saltos se realicen
correctamente.
Los fuses CONFIG no pueden ser
modificados para mantener la integridad del bootloader,
por lo que el pin 1 será RESET y el
oscilador funcionará en HS, como se
mencionó, además no se podrá incluir WatchDog
ya que este está desactivado.
4.3.3 Transmisión de bytes.
El protocolo de escritura del PIC toma un tiempo considerable, por lo
que la aplicación también requiere esperar para
transmitir el siguiente valor.
Tomando en cuenta que el PIC ocupa cuatro ciclos de reloj por cada instrucción y se ocupa un oscilador de 20Mhz, el tiempo de ejecución por cada instrucción es de 200ns [21].
Teniendo en cuenta
que el proceso de grabación y su regreso a la espera de un dato recibido es de
36 instrucciones, el tiempo que deberá esperar la aplicación para transmitir
cada byte es de 7.2ms, sin embargo, se programó con un tiempo de espera de 10ms
mediante el método Sleep de la clase Thread la cual permite retardos sin
necesidad de saturar al procesador con saltos [24].
No hay comentarios:
Publicar un comentario