1、ITM的硬件环境
ITM可以理解为一个可以提供调试数据结果的MCU内部的东东,他首先是一个硬件存在,在Cortex-M3,M4,M7上都支持(很遗憾,性价比很高的M0,M0+是不支持的),在代码调试过程中,他与ST-LINK(或其他debugger设备)结合,可以实时查看MCU中变量的数值(其实ITM功能很强大,能显示时间戳、记录中断的进出等,本文不详述了),既然是实时的,就免不了有额外的硬件开销,使用ST-LINK打断点调试时,“信号”通路上只需要两根线:SWDIO和SWCLK,一个是双向的数据,一个是时钟信号。ITM则不同,除了这两根线,还需要额外的一个叫做SWO的信号线来传输Trace数据。也就是说,目标板MCU上会有一个pin跟ST-LINK的某一个pin连接,以ST官方的开发板NUCLEO-F411RE为例,其电路原理图如下,其中PB3用作了调试输出管脚SWO:
|