Depurando un PIC16 con MPLAB X

0

Estoy teniendo problemas con el depurador MPLAB X (aunque la versión de lanzamiento funciona bien). Se comporta muy raro con mi PICKIT3 basado en PIC16LF1937. Específicamente:

  • Se atrapa en bucles infinitos al azar
  • La función paso a paso no funciona la mayor parte del tiempo
  • Solo parece depurar las primeras instrucciones
  • Establecer un punto de interrupción en una instrucción tardía hará que el PIC se congele antes de tiempo

¿Qué podría estar haciendo mal? ¿Qué cosas debo revisar?

    
pregunta Randomblue

1 respuesta

2

Cuestiono la estabilidad de tu versión de lanzamiento si no puedes depurarlo en absoluto.

La creación para la depuración agrega algo de carne adicional a su archivo HEX, lo que significa que las cosas no siempre están en la misma memoria RAM y las ubicaciones flash que están en una compilación de producción. Esto (para mí) a veces ha mostrado algunos errores de software que no vi en el modo de producción (por ejemplo, creo que encontré un error en la biblioteca de cadenas XC16 donde sscanf está lanzando errores de dirección cuando se trata de caracteres, que solo se muestran después de que comencé a depurar y un char se movió a una ubicación RAM diferente)

Si está depurando y tiene WDT habilitado, desactívelo: el WDT no funciona bien con el tiempo de congelación del depurador al detener el micro.

Antes de agregar puntos de interrupción y otras cosas, simplemente ejecute el programa tal como está en el modo de depuración; no hay pasos simples, simplemente ejecute. El código debería simplemente 'funcionar'.

Para obtener ayuda detallada, deberá publicar un ejemplo de código mínimo que funcione bien en el modo de producción, pero que cuelgue al depurar. (Este ejercicio puede mostrarle un código con errores que no sabía que tenía).

    
respondido por el Adam Lawrence

Lea otras preguntas en las etiquetas