Cypress MCU strucks en Hard Fault Handler [cerrado]

1

Comencé a usar Cypress MCU Cortex M0 +, pero veo que el Depurador siempre es golpeado en el controlador de fallas. El comportamiento es aleatorio, a veces entra en el manejador de fallas al inicio de la ejecución del código y, a veces, después de ejecutar el código medio / completo. ¿Alguna idea, cual podría ser el problema? Lo que todo lo que puedo comprobar. Además, si puedo dudar sobre el hardware o el firmware es el culpable?

    
pregunta anandamu16

1 respuesta

2

Una parte de tu código definitivamente ayudaría. Necesitas un manejador de fallas que te explique lo que sucedió. Siga esta guía .

La mayoría de las veces, las fallas duras son causadas por:

  • Acceder a una dirección incorrecta en la memoria (p. ej., escribir en flash o leer una dirección inexistente): técnicamente, esto es un fallo del bus y tiene un controlador independiente, pero se escala a un fallo grave cuando no se maneja. Esto puede ser causado por su código o su secuencia de comandos de vinculador
  • Intentando ejecutar datos como código (punteros salvajes, punteros de funciones no válidas, desbordamiento de pila)
  • Accediendo a un periférico que tiene su reloj deshabilitado

Un RTOS también puede causar algunos problemas de memoria funky.

Al mirar el controlador, la variable más importante es el contador de programas apilados (PC). Le indica la instrucción exacta que causó el problema en un Cortex-M0 (M4 puede necesitar deshabilitar el búfer de escritura de la memoria, de lo contrario la falla puede ser imprecisa).

    
respondido por el filo

Lea otras preguntas en las etiquetas