STM32L031 no se ejecuta después de detener la depuración

1

Estoy usando un STM32L031 con Eclipse para mi aplicación. Cuando está en modo debug todo funciona bien. Pero cuando detengo el modo de depuración o apago y enciendo nuevamente, el STM32L031 deja de funcionar.

Esperaba que después de descargar el código en el chip, debería funcionar siempre que lo enciendo.

Y como no estoy usando una placa de evaluación, no hay un botón de reinicio, así que no puedo reiniciarlo.

¿Cómo resolver este problema? ¿O hay una manera de restablecer el chip sin requerir el hardware del botón de reinicio?

    
pregunta bienle

3 respuestas

1

Cuando se utiliza el depurador, el procesador está obligado a ejecutarse desde una determinada región.
En el reinicio de encendido, el gestor de arranque determina dónde debe comenzar. Algunos pines o ubicación flash proporcionan instrucciones al cargador de arranque.

    
respondido por el Jeroen3
0

Una cosa que puede impedir que se ejecute es si está utilizando semi-hosting. En las propiedades de su proyecto, intente eliminar los siguientes dos símbolos:

Tengo varios proyectos, y solo algunos de ellos requieren la eliminación de semi-hosting. Todavía no he descubierto por qué es necesario para algunos y no para otros ...

Ah, y si el ciclo de alimentación de la placa no funciona, tampoco lo haría un botón de reinicio.

    
respondido por el bitsmack
-1

El primer paso es eliminar la optimización en la compilación. Es posible que tenga alguna variable que desaparezca porque el compilador lo optimizó y dejó de existir. Si la desactivación funciona, repase el código y declare las variables sospechosas "volátiles"

Con la depuración en su lugar, es muy probable que no se hayan aplicado las optimizaciones de compilación, y luego, cuando desactiva la depuración, esas optimizaciones se realizan y cualquier problema con ellas se hace evidente.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas