¿Es posible redirigir los flujos de impresión al depurador en el sistema Atmel?

1

¿Es posible configurar stderr y / o stdout para que sea tal que cuando se llama a printf() la cadena se muestra en la consola de depuración en Atmel Studio?

Sé que es posible configurar todo para que printf() use el UART o un LCD o algo más.

He visto indicios de que esto había sido posible con los chips AVR32 y los depuradores JTAGICE2, pero eso fue cuando AVR studio y AVR32 Studio eran IDE's, cadenas de herramientas, hardware de depuración, etc. Por razones de especificidad, lo haría desea hacer esto con un chip AVR de 8 bits y un depurador ATMEL ICE (el sucesor del JTAGICE3). Estoy trabajando con PDI, pero un protocolo de comunicación alternativo (como JTAG) también sería aceptable.

    
pregunta Brendan Simpson

1 respuesta

4

Puede enviar mensajes y valores a la ventana de salida con Atmel Studio 7 (puede funcionar con otras versiones, pero estoy ejecutando la versión 7.0.1006 y uso Atmel ICE) haciendo esto:

  1. Cree un punto de interrupción normal donde desee la salida.
  2. Haga clic con el botón derecho en el punto de interrupción y seleccione "Acciones".
  3. Se mostrará una ventana debajo de la línea de punto de interrupción, si la casilla de verificación "Acciones" aún no está marcada, marque la casilla haciendo clic en la casilla de verificación, pero debería hacerlo debido al paso 2.
  4. Hay un cuadro de texto con la etiqueta "Registrar un mensaje en la ventana de salida", escriba lo que quiera enviar. Esto funciona con texto sin formato si solo desea mostrar algo como "función ingresada a" o simplemente poner el valor que desee entre corchetes. Un ejemplo de generar un valor de variable: "El valor de x es {x}", donde x es el nombre de la variable.
  5. Si no desea que la ejecución se detenga, marque "Continuar ejecución" y el programa no se detendrá en el punto de interrupción (como lo haría normalmente).

También, ¡cuidado con la optimización! Es posible que deba desactivarlo completamente para que su compilación de depuración vea ciertos valores o estados.

    
respondido por el DigitalNinja

Lea otras preguntas en las etiquetas