¿ST-LINK es posible la comunicación serial?

Estoy usando la placa de descubrimiento STM32F4 y Atollic TrueStudio para ARM Lite 3

Me gustaría pasar algunos datos de depuración a la PC usando printf y no puedo encontrar la manera de hacerlo a través de STLink. ¿Es posible? Parece una característica esencial para cualquier proceso de depuración.

Editar: necesito usar Serial Wire Viewer, pero aún no tuve suerte para que funcione.

Si esto funcionó, ¿podría publicar un ejemplo? Tengo el mismo problema y no he tenido suerte. Escribí mi propia función printf que usa la función _write en el archivo syscall base.

Respuestas (4)

OK, la forma de lograr la comunicación en Atollic TrueStudio para ARM Lite (sí, funciona bajo lite wersion desde 3.0):

  1. Habilitar Serial Wire Viewer en la configuración de depuración activa
  2. Mostrar consola SWV (en perspectiva de depuración)
  3. Abra la configuración del visor de cables en serie (primer botón en la ventana de la consola SWV)
  4. Habilitar puerto de estímulo ITM 0
  5. Habilitar el botón Iniciar/Detener seguimiento en la Consola SWV (segundo botón)
  6. Usar la función ITM_SendChar
  7. ¡Disfruta depurando cadenas!
Esto también funciona en Keil uCVision con toda la familia ulink jtag.

Está usando Crossworks.. En crossworks, usamos dbg_printf pero es lento, tenga cuidado.

Para todos los usuarios de CrossWorks: el semihosting funciona pero es lento. Esto se debe a que los trabajos cruzados no pasan datos de impresión a través de SWO sino a través de la interfaz JTAG/SWD. Detiene uC y lee los datos de registro para mostrarlos. Tenga en cuenta que uC se detiene cuando está utilizando la función printf y el depurador está desconectado.

Aquí hay una guía completa para STM32F3-DISCOVERY usando la depuración SWD:

http://controlsoft.nmmu.ac.za/STM32F3-Discovery-Board/Example-programs/Serial-Wire-Viewer-%28SWV%29

Lo probé en mi stm32-discovery y funcionó.