Cómo utilizar el gestor de arranque para depurar el microcontrolador pic
Entre la serie de microcontroladores PIC, solo la serie de microcontroladores PIC18 y PIC16F87X tienen la función IAP y pueden utilizar la función BootLoader. A continuación solo se presenta el BootLoader de PIC18. El BootLoader de PIC16F87X es similar a él.
1 Cómo funciona el programa BootLoader
BootLoader es un programa de arranque que se ejecuta antes que el programa de usuario después de encender/restablecer el microcontrolador. Después de ejecutarlo, determine si es necesario ingresar al estado de actualización. Si no es necesario actualizar, simplemente ejecute el programa original en Flash directamente; si es necesario actualizar, primero borre el programa antiguo, luego reciba el programa de usuario del puerto serie y escríbalo en Flash al mismo tiempo. Al recibir datos, se debe realizar una verificación para garantizar que los datos recibidos sean correctos y evitar escribir programas incorrectos en el chip.
El microcontrolador PIC18 tiene solo un Flash y puede borrar y escribir en cualquier parte del Flash (incluso el propio BootLoader se puede borrar mientras que el microcontrolador 51 generalmente tiene dos Flashes y solo puede borrar y escribir desde un Flash); al otro. Un fragmento de Flash no puede borrarse ni escribirse a sí mismo.
En principio, el programa BootLoader se puede colocar en cualquier lugar de todo el espacio del programa. Sin embargo, por simplicidad, conveniencia, versatilidad y para minimizar el impacto en los programas del usuario, se utiliza una sección del espacio del programa que comienza desde 0x00. .
El programa BootLoader puede obtener datos de varias formas, incluido el puerto serie, el puerto paralelo, I2C, SPI, USB, etc., pero desde la perspectiva del uso real, usar el puerto serie es sin duda la mejor opción; lo más conveniente.
Para permitir que el programa de usuario obtenga el máximo espacio de programa, el programa BootLoader debe ser lo más corto posible. En este caso, tanto Microchip como HI-TECH diseñan el programa BootLoader para que tenga menos de 200 H bytes (100 H palabras). Otra razón importante para utilizar el área 0x00~0x1FF es que este espacio de direcciones tiene características especiales de protección contra escritura.
Aunque el microcontrolador PIC18 tiene múltiples fuentes de interrupción, solo admite interrupciones de dos niveles. Hay dos vectores de interrupción, ubicados en 0x08 y 0x18 respectivamente, y el programa BootLoader ocupa el espacio de 0x00 a 0x1FF; significa Reposicionar el vector de interrupción de modo que el nuevo vector de interrupción apunte al programa de interrupción del usuario, a fin de garantizar el funcionamiento normal del programa de interrupción del programa de usuario.
2 Cómo utilizar el programa
(1) Programa BootLoader de HI-TECH
En la carpeta de ejemplos del compilador PICC18 de HI-TECH, hay A Bootldr La subcarpeta contiene el programa BootLoader de HI-TECH. Este es un programa completo que se puede compilar directamente y el HEX compilado se puede descargar al chip mediante un programador.
(2) Requisitos del sistema del usuario
Si necesita utilizar BootLoader, el sistema del usuario debe tener un puerto serie RS232 que pueda comunicarse con la computadora.
(3) Configuración del programa
Los siguientes son los parámetros principales del programa. Si se configuran incorrectamente, afectará el uso del programa.
VERB0: Modo redundante, con más indicaciones, pero ocupará más espacio en el programa, por lo que no se recomienda.
BOOT_TIMEOUT: tiempo de espera para el tiempo de espera, 0 ~ 9 s (ya no tiene sentido), el valor predeterminado es 5 s.
BAUD: La velocidad en baudios de la comunicación en serie, el valor predeterminado es 9 600.
FOSC: La frecuencia de reloj del sistema del usuario, el valor predeterminado es 4 MHz.
NUEVE: si se utiliza el noveno bit de datos para la comunicación, no se utiliza de forma predeterminada.
?
FILL_BYTE: datos de relleno utilizados cuando se borra el espacio del programa. El valor predeterminado es 0xFF.
PROG_START: La posición inicial del programa de usuario, el valor predeterminado es 0x200. ?
Otros parámetros se pueden dejar solos y modificar cuando sea necesario. No afectarán la comunicación ni la descarga.
(4) Compilación del programa
Hay dos formas de compilar el programa BootLoader:
① Método de línea de comando. Cuando se utiliza la línea de comando, el uso típico es:
picc18 -8f452 bootldr.c -o -zg -noerrata?
El último parámetro anterior -noerrata es requerido por la serie PIC18Fxx2. de microcontroladores, si se trata de otros modelos, no es necesario agregarlo y el parámetro -18f452 especifica el modelo del microcontrolador, si se trata de otros modelos, cámbielo al modelo real utilizado.
② Utilice MPLAB IDE. Cuando utilice MPLAB IDE, primero cree un nuevo archivo de proyecto de la forma habitual, seleccione el directorio del archivo del proyecto y luego agregue los archivos bootldr.c y bootldr.h en el directorio Samples\Bootldr de HI-TECH. Al crear el archivo del proyecto, seleccione el modelo MCU como el modelo real utilizado y seleccione el compilador C como el compilador PICC18 de HI-TECH.