OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8903|回复: 6

cortex-m3的ITM功能:调试信息格式化输出(SWD调试时的SWO引脚输出调试信息,JTAGSWOViewer.exe接收数据)

[复制链接]

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-9-25
在线时间
4 小时
发表于 2015-9-25 17:14:49 | 显示全部楼层 |阅读模式
附件中是调试信息格式化输出的驱动文件

用户只需要先在cm3_fw_self_config.h中配置好调试组件的功能,再调用void cm3_debug_init(void)函数和void ITM_init(void)来初始化cm3的调试组件后,就可以使用void debug_printf(uint32_t port_n, uint8_t *p_string, ...)函数来将数据输出到ITM的任意激励端口(0~31)
debug_printf()函数和printf()函数的用法完全一样,仅是多出了uint32_t port_n这个选择端口的参数


用法:
1. 在cm3_fw_self_config.h中配置调试组件
2. 初始化cm3调试组件
    cm3_debug_init();   //初始化halt_debug和monitor_debug
    ITM_init();    //初始化ITM的格式化输出功能
3. 打开JLinkSWOViewer.exe 做如下修改
    


    


4. 格式化输出
    debug_printf(10,"ITM test : %d  %u  %c  %s \n",13243,56745,'A',&string[0]);

附件中是源代码

说明: 这是我项目中的一个功能,可能与其他文件有部分关联,但稍作调整就能使用


cm3_fw_self_config.h

3.82 KB, 下载次数: 110

cm3_debug.h

2.78 KB, 下载次数: 100

cm3_debug.c

11.12 KB, 下载次数: 120

供大家参考,希望和同行交流经验
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-9-25
在线时间
4 小时
 楼主| 发表于 2015-9-26 06:07:48 | 显示全部楼层
回复【2楼】正点原子:
-------------------------
恩,类似,只是比串口好用,区别在于
串口是片上外设资源,若是换了MCU,则需要重写串口的驱动;ITM是cm3核内资源,所有使用了cm3的MCU都通用
串口至少需要2个pin(Tx,Rx),并只能输出数据到一个端口(Tx);ITM只需要一个端口(SWD调试模式时的SWO引脚)就可以向32个端口分别输出数据,相当于有了32个串口

JTAG-V8有2个调试协议:JTAG,SWD.这两个协议只是接口不同而已,到了cm3内核调试命令和数据的格式又调整成了一样.就像不论使用USB,SPI,CAN都可以传输同样的数据.
MDK本身就有接收ITM发出的数据的功能,只是只能接收端口0,所以不太好用; 在target options->debug->选择j-link/j-trace->点击setting->在debug栏中选择SW模式->在trace栏中勾选enable,auto detect max SWO clk,port_0,在core clock中填入你的目标系统的HCLK频率.就完成了设置.  在项目代码中重定向fputc()到ITM的port_0.  在调试模式时,在view->serial window->debug(printf)viewer中打即可使用

我们都使用JTAG-V8,是因为其功能相对强大,价格便宜.  其实还有JTRACE,只是太贵了(2000多?,我也买不起);JTAG只能实现停机调试,而JTRACE能够实现实时调试;cm3核只是部分实现了trace的功能, ITM,ETM都是trace的功能,我们仔细翻阅STM32F103XX的手册(100pin一下的没有trace功能引脚)就会发现有traceswo,traceck,trace0~3引脚只是我们的JTAG中内置的SWD调试协议只能支持traceswo功能,其余的要靠JTRACE.

这些内容都在cortex-m3的手册中,<<cortex-m3权威指南>>是中文版的,容易读懂. 我也只了解了这么多,还有好多其他的我也不懂,希望精通cm3核的高手遇到了,能够不吝赐教
供大家参考,希望和同行交流经验
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-25 20:55:13 | 显示全部楼层
感觉高大上.
楼主这个就是相当于一个串口吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

180

帖子

1

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2015-6-29
在线时间
101 小时
发表于 2015-9-27 10:33:08 | 显示全部楼层
不错,有空试试
我是菜鸟
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-28 22:48:34 | 显示全部楼层
回复【3楼】kinkun:
---------------------------------
谢谢
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-4-24
在线时间
4 小时
发表于 2019-4-24 14:09:39 | 显示全部楼层
下载学习一下,多谢楼主分享。嘻嘻嘻
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-7-25
在线时间
22 小时
发表于 2020-2-27 15:44:17 | 显示全部楼层
楼主高人,这个是否支持STlink
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-25 22:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表