martes, 11 de mayo de 2021

 

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.

Figura 4.12 Ejemplos de operador 28xx.

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.13 Diagrama de botón “Grabar” .HEX (I).


     Figura 4.14 Diagrama de botón “Grabar” .HEX (II).

 Los tipos de datos o grabación indican al ordenador que proceso se va a realizar con la línea del fichero. Del tipo 0 indica que son datos por grabar, 1 fin del fichero y 4 complemento a 32-bit. El 4 no se implementará ya que el PIC usado es de 8-bit y no son necesarios complementos tan amplios. Además, los tipos 2 y 3 solo son usados por procesadores de 32-bit [42].

No hay comentarios:

Publicar un comentario