智能车制作

 找回密码
 注册

扫一扫,访问微社区

STM32论坛
查看: 9435|回复: 8
打印 上一主题 下一主题

ARM新的调试技术-trace

  [复制链接]

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85932

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56988
贡献
17374
兑换币
13144
注册时间
2007-6-8
在线时间
5785 小时
跳转到指定楼层
1#
发表于 2010-9-16 10:05:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

STM32有两个调试端口,即JTAGSWKeil ULINK2 USB-JATG接口适配器支持这两种调试接口。

本文描述了如何配置和使用SW接口来获取各种调试信息。

一、目标调试阶段的配置

1.
调试器的选择

选择μVision->Debug ->Options for Target –>Debug,并选择ULINK Cortex Debugger调试器。

2.
调试目标初始化文件

按照路径\Keil\ARM\Startup\ST,将文件STM32DBG.ini拷贝到工程文件夹中。选择μVision->Debug -> Options for Target –>Debug,同时在Initialization File选项中选择该文件




3.
Cortex-M
目标设备调试驱动配置

选择Options for Target – Debug – Settings设置SWJ,端口选择SW




4.
Trace功能的配置

Trace功能包括:Core Clock, Trace Port 以及定义TraceEvents




二、实时跟踪

1.
μVision的状态栏信息

μVision的状态栏中显示了实时跟踪的状态信息。




2.
实时跟踪窗口

调试时选择Peripherals – Trace




1)
Trace Records窗口

该窗口显示了所有被捕获的跟踪记录,每一个跟踪记录都包含了详细的信息。可以选择Peripherals - Trace – Records来查看。




2)
Exception Trace 窗口

该窗口显示了异常和中断的统计信息,这些信息是基于Trace Records中所捕获的跟踪记录的。可以选择Peripherals - Trace - Exceptions来查看。




3)
Event Counters窗口

这个窗口显示了特殊事件计数器的值,计数值是基于Trace Records中所捕获的跟踪记录的。




3.
ITM Viewer窗口

可以通过ITM的激励端口0ITM Viewer窗口上输出ASCII Hex格式的数据,目前只有ITM 端口0可以在ITM Viewer窗口显示。要使用ITM Viewer窗口来显示调试跟踪的输出信息,需要进行以下的操作。

l
在源代码中添加ITM激励端口寄存器的定义。

#define ITM_Port8(n)
(*((volatile unsigned char *)(0xE0000000+4*n)))
#define ITM_Port16(n)
(*((volatile unsigned short*)(0xE0000000+4*n)))
#define ITM_Port32(n)
(*((volatile unsigned long *)(0xE0000000+4*n)))
#define DEMCR
(*((volatile unsigned long *)(0xE000EDFC)))
#define TRCENA
0x01000000

l
在源代码中添加fputc函数,它向ITM的激励端口0寄存器写数据。如果有了fputc函数,则可以用printf函数做为调试输出。ITM的激励端口0ITM Viewer窗口固定连接。

struct __FILE { int handle; /* Add whatever you need here */ };FILE __stdout;FILE __stdin;int fputc(int ch, FILE *f) {if (DEMCR & TRCENA) {while (ITM_Port32(0) == 0);ITM_Port8(0) = ch;
}
return(ch);}

l
在源代码中添加printf函数来显示调试跟踪信息。

printf("Serial Wire Output Debug Trace message");

l
Cortex-M Target Driver Setup窗口中使能ITM激励端口0




l
在目标调试期,打开ITM Viewer窗口

选择μVision-> View -> Serial Window -> ITM Viewer




完成这些步骤以后,可以在目标调试期通过ITM Viewer窗口查看到调试跟踪信息,例如显示AD转换的结果。




ITM Viewer的功能类似串口打印调试信息,使用ITM更简单,而且不需要串口以及相关驱动程序。

4.
Logic Analyzer 窗口

在调试的时候,可以通过逻辑分析器观测至多4个变量值的变化。执行以下步骤来使用逻辑分析器。

l
Cortex-M Target Driver Setup窗口使能Timestamps并选择合适的Prescaler值。




要想在逻辑分析器的窗口中观测到精确的时间值,必须使能Timestamps

0

主题

1

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
224
威望
186
贡献
36
兑换币
10
注册时间
2010-9-17
在线时间
1 小时
2#
发表于 2010-9-17 16:41:06 | 只看该作者
楼主真的很牛啊

现在市面上有一种非常好的 跟trace32一样的仿真器   很便宜啊   叫super trace32

网站是:http://www.chinatrace32.com

一个朋友公司在用这家的产品,跟我说功能完全是一样的.但我在北京,不方便自己去测试,不测试又不放心,对方在深圳 ,有深圳的朋友能不能去看看?
回复 支持 反对

使用道具 举报

3

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
QQ
威望
306
贡献
78
兑换币
0
注册时间
2010-4-1
在线时间
57 小时
3#
发表于 2010-11-13 11:57:34 | 只看该作者
这个很NB,先记下,以后看看。
回复 支持 反对

使用道具 举报

26

主题

75

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2402
QQ
威望
368
贡献
2012
兑换币
0
注册时间
2011-4-1
在线时间
11 小时
4#
发表于 2011-4-2 21:42:03 | 只看该作者
看看
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
107
威望
171
贡献
26
兑换币
0
注册时间
2011-7-28
在线时间
0 小时
5#
发表于 2011-7-28 10:31:34 | 只看该作者
楼主:
你好,请问用ITM这种调试手段在Cortex的FGPA镜像上跑,可以实现么?
回复 支持 反对

使用道具 举报

7

主题

297

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6172

论坛元老奖章

威望
1226
贡献
4724
兑换币
274
注册时间
2010-4-17
在线时间
111 小时
6#
发表于 2012-9-6 10:10:12 | 只看该作者
谢谢您,顶
回复 支持 反对

使用道具 举报

7

主题

297

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6172

论坛元老奖章

威望
1226
贡献
4724
兑换币
274
注册时间
2010-4-17
在线时间
111 小时
7#
发表于 2012-12-10 16:06:15 | 只看该作者
就是喜欢你的帖子 没办法
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 17:13 , Processed in 0.068847 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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