由于常日我们利用串口作为调试工具,那么久意味着占用至少一个I/O口(常日只用Tx),并且还得存在一个COMS转TTL电平的模块,并且串口慢速,以是STM32供应了ITM。关于STM32的ITM,我也只是粗略的理解!以是在此对付它的观点不多废话!我只知道一件事,那便是利用它,可以通过SWO接口进行像串口一样的与PC机进行通信,实现UART/USART与PC机的串口助手功能,读写均可。
OK!干这件事,首先须要准备好如下几件东西!

1、ST-Link驱动,stsw-link009,但是常日有些童鞋的电脑安装ST-Link驱动是,只安装成功了ST-Link的驱动,而没有安装成功虚拟串口的驱动。特殊把稳:这两个驱动,必须都安装好,否则玩不了ITM。安装好的示意图如下:
如果不能安装成功的童鞋,请参看我的另一篇文章进行安装,常日来说,还没遇见弗成的!嘿嘿!地址:http://bbs.ickey.cn/group-topic-id-55579.html
2、ST-Link Utility ,ST-Link软件编号为stsw-link004。这是一个驱动也是一个工具,而ITM的利用,必须依赖于这个工具。
3、移植好程序代码。
OK!实在便是这么几点!首先呢,还是有必要先容这个ITM的利用来源的!首先我在STM32所有的内核文件中创造个事实,
在这里利用Cortex-M7内核的内核头文件core_cm7.h作举例,如下图:
呵呵!可以看到,Debug输入/输出函数。我去买还看到了声明输入的数组内存区。再看看函数:
从注释和函数名来看,基本上就已经确定了,这是一个输出函数!现在先不管它往哪里输出!在往下看:
呵呵呵!不用说,一眼就能看出它是一个输入函数,从外部读取数据到MCU。再往下看!
从注释和函数名基本上也能看出,这是一个校验函数,并且是校验输入的缓存空间的。这里也先不管!再往下看!呵呵!已经没有往下了,这已经是core_cm7.h文件的后一个内联函数了。那么久很明确一个事实了,关于ITM的函数只有3个,并且一个为输出,一个为输入,一个为校验。这绝对不是巧合,而是精心设计的。
通过从上图三个手册中理解,ITM是一种虚拟的串口,可以向串口一样进行将数据打印到指定输出设备上,但是必须知足一个条件,那便是它依赖于SWO引脚,常日我们利用J-Link或者ST-Link大略单纯模块进行多STM32程序的烧录,常日只须要两个端口,SW_CLK和SW_DIO,这种情形是不能利用ITM的,由于SWO引脚并没有接!
那么这个神秘的SWO引脚到底是什么引脚呢?呵呵!快的方法是在事理图当中找,如下图:
呵呵!这是从STM32F7-Discovery板卡的事理同中抠出来的!这个可以根据ST官方的威信确定它的精确性!哈哈!那么还有木有什么其他的证据了呢?实在这种根本的东西,可能是在F7的手册里找不到的,但是在入门型的MCU的手册了肯定是有的,以是我就在F103的参考手册中找到了如下图:
没错!便是上图了,不多说,证据已经充足!如果有兴趣,可以详细理解J-Link和ST-Link接口。
特殊把稳:在这里也供应了这种找资料的方法(实际上是由于我想把这种方法表述出来,以是才有以上的证明),当我们在玩高真个芯片是,有些比较根本的资料在详细芯片的手册上可能找不到,那么怎么办呢?常日的做法是,找到这个公司相应的入门级芯片的手册参考,可能会有须要的资料,这一点在玩三星的S3C6410时,参看协处理器寄存器,命令等,须要参考S3C2440的协处理器手册的情形表示的玲离尽致(但是到了Cortex-A系列,由于内核改动比较大,以是S5PV210等的协处理器手册和S3C2440的还是差别很大的,以是也要把稳等级)。
OK!废话了一大堆!还没讲咋利用ITM呢!实在没什么实现不实现的,人家已经供应打印函数了,咱就移植一下printf,方便调试打印即可!如下图:
没错!你看的没错!便是一行代码!直接调用内联函数__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch),在printf的预留接口调用即可!这样就可以打印了!关于输入,就不多说了!一样的道理!看如下的调用!
没错!你的眼睛没花!便是这样的大略!
4、利用ITM输出打印在PC端。
该如何利用这个ITM打印在PC端呢?普通的串口助手???这是弗成的!这便是前面为毛说必须装ST-Link Utility工具的缘故原由。便是得利用它!安装好ST-Link Utility工具后,在桌面上会看到:
这样的快捷办法!双击打开!有如下界面!
进行操作:ST-Link->Printf via SWO viewer得到如下界面:
进行如下步骤设置:
(1)在图中1位置设置系统是在频率,由于这块STM32F7-Discovery板卡目前运行的是216MHz,以是就填写216M了。
(2)点击图中位置2,Start,成功启动后,就可以看到图中3有字符串打印了!这么这就算是完事了。
嵌入式物联网须要学的东西真的非常多,千万不要学错了路线和内容,导致人为要不上去!
无偿分享大家一个资料包,
差不多150多G。里面学习内容、面经、项目都比较新也比较全!
某鱼上买估计至少要好几十。宓屽叆寮忕墿鑱旂綉瀛︿範璺緞鎬濈淮瀵煎浘棰嗗彇







