4.3.1 Procesamiento de fichero hexadecimal PIC
Los CheckBox funcionan como un condicional
para grabar y además discriminar el procesamiento del fichero según su origen.
Es necesario tener uno marcado para proceder a la grabación.
El rotulado con “LDmicro” borra el primer bloque del
fichero, o, en otras palabras, borra las primeras dos líneas de datos del
archivo, se hace esto porque en el primer bloque de la memoria está almacenado
el salto hacia la estructura principal del bootloader
y para evitar problemas con los saltos en el programa.
El operador 28xx de un fichero hexadecimal para PIC de 8-bit es el encargado de indicar
los saltos. En la Figura 4.12 se observa un ejemplo de este operador.
Como se aprecia,
las “xx” son el valor hexadecimal de la parte baja de la dirección hacia dónde
se dirige el salto. En la parte izquierda de la figura se observa un salto que
se ejecuta de manera correcta. Del lado derecho se muestra un salto erróneo; que desde luego que al compilar en ASM direccionaría a 0x0010, pero,
este desplazamiento ocurre al usar el grabado de la memoria flash a través de un bootloader.
Como se mencionó,
la solución a este problema fue eliminar el primer bloque del fichero de LDmicro, ya que el encabezado para todos
sus archivos generados es el mismo, el cual no contiene configuraciones o
procesos del programa, sino que limpia la memoria RAM para poder ocuparla para variables generadas en el código de
programación, sin embargo, al ser una memoria volátil, el contenido de sus
celdas de uso general será el de fábrica [28], por lo que quitar este bloque
del fichero no perjudica a la ejecución del programa.
El segundo CheckBox rotulado con “Otro” indica que la grabación será genérica
y que solo deberá ejecutar la protección contra sobre escritura.
Por otra parte,
para iniciar el procesamiento del fichero y
grabar el programa dentro del PIC, es
necesario que la primera línea del fichero sea “:020000040000FA”, ya que
los archivos generados por LDmicro
incluyen esta línea, por lo que el procesamiento inicia con esta condicionante,
tanto en “LDmicro” como en “Otro”.
En las Figuras 4.13
y 4.14 se muestran los diagramas que representan el procesamiento de un fichero
hexadecimal pulsando el botón “Grabar”
de la interfaz. El procesamiento y transmisión se hace de la misma manera
usando la grabación a través de la barra de menús o los botones de la barra de
herramientas. Lo único que cambia es el condicionante de los CheckBox, ya que, dependiendo del tipo
de grabación que se elija, se ejecuta la sentencia de la condicionante que se muestra
en la Figura 4.13 pero de forma secuencial. Además, se han resaltado en color
rojo las protecciones contra sobre escritura del bootloader y en azul la protección de los fuses CONFIG.
Figura 4.14 Diagrama de botón “Grabar” .HEX (II).



No hay comentarios:
Publicar un comentario