[应用相关] STM32的ITM跟踪调试功能介绍及实现(二)IAR篇

[复制链接]
1265|17
 楼主| deadtime 发表于 2020-6-21 11:55 | 显示全部楼层 |阅读模式
在上一篇**中,介绍了STM32的ITM跟踪调试功能在KEIL中的应用,本文介绍IAR中如何使用ITM。
与在KEIL中类似,在main.c文件中,增加一行测试ITM的输出语句:
    ITM_SendChar('A');
编译、链接,下载到目标板。



作者:海东青电子
链接:https://www.jianshu.com/p/2cbbaca05da9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 楼主| deadtime 发表于 2020-6-21 11:56 | 显示全部楼层
在IAR中启动debug,进入debug状态,先调出ITM输出数据的观察窗口(只能在IAR的debug状态下操作,代码编辑状态下是不行的,下同):
477875eeeda69b1be0.png
 楼主| deadtime 发表于 2020-6-21 11:57 | 显示全部楼层
弹出 Terminal I/O 窗口,ITM的输出将在这个窗口中显示。

工具栏中,点击SWO图标,选 SWO Configuration... :
334695eeedaa00f81d.png
923635eeedaad4c598.png
 楼主| deadtime 发表于 2020-6-21 11:58 | 显示全部楼层
在上图中的两个0的位置打勾,使能ITM的port0端口。然后全速运行程序,但 Terminal I/O 窗口中并没有我们希望的字符‘A’出现,注意,此时IAR工具栏上 SWO 图标是这样的:
53375eeedad8a38dc.png
 楼主| deadtime 发表于 2020-6-21 11:59 | 显示全部楼层
说明SWO没有真正跑起来,这是因为还有一项最重要的配置步骤没有完成 -- 在IAR中“激活”TIM。暂停debug,然后点击菜单条中的 ST-Link :
402485eeedb0d2576a.png
 楼主| deadtime 发表于 2020-6-21 12:00 | 显示全部楼层
如下图、打勾:
139245eeedb489ed04.png
 楼主| deadtime 发表于 2020-6-21 12:01 | 显示全部楼层
工具栏中的 SWO 由灰色变成绿色(表示有效!)了:
809955eeedb74c1c64.png
 楼主| deadtime 发表于 2020-6-21 12:01 | 显示全部楼层
此时继续debug,可以看到ITM的跟踪输出数据了(字符‘A’):
410075eeedb98997c0.png
 楼主| deadtime 发表于 2020-6-21 12:02 | 显示全部楼层
补充说明:上面的实验是基于 IAR 8.20.1 的,网上很多资料把ITM不能输出的原因归于下图中未对SWO做正确配置:
659425eeedbbf2495a.png
 楼主| deadtime 发表于 2020-6-21 12:02 | 显示全部楼层
但经过测试,上图中 Via SWO 是可以不用打勾的,甚至都不必打勾Semihosted, 即如下图所示的配置也是没问题的(ITM跟半主机模式Semihosted是不同的概念,使用ITM不必配置半主机是合逻辑的):

837765eeedbe72abbf.png
 楼主| deadtime 发表于 2020-6-21 12:03 | 显示全部楼层
这样配置ITM照样可以正确输出。但是,要特别注意一点:在IAR中每次启动debug时,都必须检查一下上面图三中,两个0的地方是否是打勾的状态!这两个地方必须打勾!本人在测试时就遇到了某次启动debug后,上面两个地方之前打的勾不见了,自然导致在观察窗口中看不到输出。难道IAR没有记录ITM端口的配置状态?目前仍不知是何原因。

 楼主| deadtime 发表于 2020-6-21 12:04 | 显示全部楼层
小结:

IAR中ITM的应用,需特别注意 ST-Link 菜单中对SWO的配置;并且,每次debug时,都需要先检查ITM的端口0是否打勾了(激活、并输出到观察窗口)。

本文结束,请见下一篇:ITM在ST-LINK V2客户端上的实现。

 楼主| deadtime 发表于 2020-6-21 12:04 | 显示全部楼层

作者:海东青电子
链接:https://www.jianshu.com/p/2cbbaca05da9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
晓伍 发表于 2020-7-9 14:59 | 显示全部楼层
非常感谢楼主分享
八层楼 发表于 2020-7-9 14:59 | 显示全部楼层
我还是喜欢用iar
观海 发表于 2020-7-9 15:00 | 显示全部楼层
楼主辛苦啦 资料还不错
guanjiaer 发表于 2020-7-9 15:00 | 显示全部楼层
介绍的很详细
heimaojingzhang 发表于 2020-7-9 15:00 | 显示全部楼层
以前都没有用过这个功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

470

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部