STM32CubeIDE + ITM SWV实现printf调试信息的打印
STM32开发时,使用printf函数来打印信息是一种方便的调试方法。不需要像使用断点来中断程序运行即可方便地查看想要的信息。一般,可以通过串口输出调试信息,或将printf重定向到串口输出上,但是这样就占用了串口的硬件资源,而且接线上比较麻烦。而ITM就是一种特别方便用于调试诊断的工具,不需要占用额外的硬件资源即可方便地实现跟踪监控。
什么是ITM
ITM是cortex中的一种硬件设计,Cortex M3、M4、M7系列内核的芯片都支持该接口(M0系列内核不支持)。ITM仅支持SWD调试接口,不支持JTAG接口。相较于传统SWD接口的SWCLK和SWDIO两根数据线,使用ITM功能时还需要增加一根额外的线连接到SWO接口。
硬件连接
- 使用ITM调试功能时,使用的线比SWD接口多一条SWO线,某宝上的非官方版本的ST-link V2调试器大多不支持SWO接口。我最后选购了