Código que se ejecuta desde el depurador pero no sin él

Estoy usando WindRiver JTAG Debugger para depurar mi código. Cada vez que ejecuto el código con el depurador conectado, el código funciona correctamente, pero si lo desconecto, ¡ni siquiera se inicia!

¿Alguien ha enfrentado este tipo de problemas?

No puede esperar que nadie le ayude a menos que proporcione suficiente información, como qué procesador es para empezar...
@mikeselectricstuff: ¡Estoy usando el procesador MFC5253 con WindRiver Debugger!

Respuestas (4)

Mi depurador para Coldfire inicializa el controlador SDRAM y otros registros de bajo nivel que normalmente realiza el cargador de arranque. Verifique cómo su depurador inicializa el chip.

Estas son las razones por las que he visto ocurrir este caso:

  1. He visto a estudiantes que no colocan resistencias pull up en sus pines MCLR en PIC. Cuando se conecta al depurador, el depurador lo activa por ellos, pero una vez que lo desconectan, nada funciona.
  2. Un mal terreno. Esto es un poco más difícil de entender. Pero he visto un caso en el que el programador pudo proporcionar una mejor conexión a tierra que cuando se apagó de una fuente de alimentación o batería.
  3. ¿Su configuración proporciona energía a través de su conexión JTAG? He visto un caso recientemente en el que el microcontrolador entraba en un estado de apagón porque la energía no podía establecerse lo suficientemente rápido antes de que el micro comenzara a intentar encender las cosas. Cuando se conectó a un depurador, se aplicó energía mucho antes de iniciar el código, por lo que nunca se vio.

En general, ese problema se debe a que el programa no se inicia correctamente desde un reinicio cuando se ejecuta sin el depurador. Por ejemplo, con las herramientas ARM de Rowley CrossWorks, se debe definir STARTUP_FROM_RESET para el preprocesador.

¿Quizás está usando la versión de depuración cuando compila con el dispositivo JTAG conectado, pero usa Release cuando compila sin él? Además, si está utilizando diferentes versiones de depuración y lanzamiento, asegúrese de tener las mismas optimizaciones para ambas variantes.

Parece que has publicado demasiado pronto. Es posible que desee comprobar su publicación.
@Kellenjb Blame Internet Exploder, que tengo que usar aquí en la universidad :(. Parece cancelar las transacciones al azar.