你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用RealView MDK进行SW调试和实时跟踪

[复制链接]
qazwsx-19104 发布时间:2008-9-3 20:34
STM32有两个调试端口,即JTAG和SW。Keil 的ULINK2 USB-JATG接口适配器支持这两种调试接口。" _" D) k$ P% W) r
% Q- \' |6 Y6 }* c/ U3 w% x
本文描述了如何配置和使用SW接口来获取各种调试信息。5 x' L6 Z9 P+ i1 F

4 p" |0 S3 C2 L一、目标调试阶段的配置
" I; e; ~/ g& }% M6 s( t8 m
5 A4 T2 s/ ~) E8 t3 g: j* F1.调试器的选择
2 u9 R& }3 g$ O3 ]
* S- L" S& ?' p5 o- {5 k4 G选择μVision->Debug ->Options for Target –>Debug,并选择ULINK Cortex Debugger调试器。
# Q, p6 @3 }8 p$ F% [* l
0 h  ?4 v( N  J/ }, c) f' h- r8 t. U* r2 i* Q) W8 U& N6 Z+ ~
2.调试目标初始化文件+ U) A; Y5 S% ^( Q
8 |1 n5 y: M4 E2 P
按照路径\Keil\ARM\Startup\ST,将文件STM32DBG.ini拷贝到工程文件夹中。选择μVision->Debug -> Options for Target –>Debug,同时在Initialization File选项中选择该文件。
8 i# g! y' g/ }3 s  D! D
/ l9 U  Z1 U5 H# n! O  Q- S; z+ j' ^" c# t' o; F
3.Cortex-M 目标设备调试驱动配置
3 q! w" j8 t6 k! |: C: y' I0 {3 }& f7 u; p* ^
选择Options for Target – Debug – Settings,设置SWJ,端口选择SW。% R  x+ i8 l" [7 M% b: i

$ e, V9 ?8 D8 ^
% B7 M- _/ X5 g+ O* Z4.Trace功能的配置
* `+ r9 r4 M8 ]) @' A9 G( V7 O2 i. E# `# R) |/ D& |+ d7 ?9 g% P' W& O- {
Trace功能包括:Core Clock, Trace Port 以及定义TraceEvents 等。
. k+ g. {1 l* {% F+ }: n/ M
/ J) r2 E& [# p! u* z! Z, q- k# B! e3 I/ p; }  }
4 s/ `( C" D/ Z# F
二、实时跟踪
* ]# S% t# }* a; F8 W5 W  \6 ?
. T: D! X! p) p1.μVision的状态栏信息8 M9 \, R) `) f- d# A0 U- L
4 h5 h% S: }+ M, x7 M, c% P( f
在μVision的状态栏中显示了实时跟踪的状态信息。
# J3 F9 @* O7 r$ b. Z1 \* T' @& @8 z7 Q6 ^1 |) T* w
+ `/ x- d" K7 [. e0 i
2.实时跟踪窗口
3 ]+ M. d6 Y$ a4 W( T4 T' p1 F) M! T/ K3 z
调试时选择Peripherals – Trace。
! ?! N- r' N7 s, U
5 ?6 W  M) m) I5 n  e  g2 J& _. N# n' ^0 E
1)Trace Records窗口
$ n. n& {* A$ v
, y9 l) D9 m$ \$ H$ _. U该窗口显示了所有被捕获的跟踪记录,每一个跟踪记录都包含了详细的信息。可以选择Peripherals - Trace – Records来查看。& \6 e/ \' l9 c8 q# R  M
- ~) O5 X! I3 T' u7 g$ W
' }# M' m7 D+ y6 w' E. p. S
2)Exception Trace 窗口
. K' R9 T! r) O6 D$ h: A9 O% m' O  G9 w5 R3 V* s
该窗口显示了异常和中断的统计信息,这些信息是基于Trace Records中所捕获的跟踪记录的。可以选择Peripherals - Trace - Exceptions来查看。
" D% r& f3 `" c( v( ?/ z2 X( r: V2 [2 M1 [9 y/ \) ^

6 ]& q  j  W) y1 ^1 t' h& f% ]3)Event Counters窗口6 _; R5 G  W9 l, l$ C/ z

9 a; l4 Z- y. c这个窗口显示了特殊事件计数器的值,计数值是基于Trace Records中所捕获的跟踪记录的。 , n$ `3 Q7 I" D

9 z$ I6 c8 Z- c2 _& ]6 y4 N/ C% f$ x, h  D5 j: L6 `
3.ITM Viewer窗口
3 u4 i$ ~4 {1 V$ H7 b8 N$ U) B# d
" W$ H$ ~7 q. A% W可以通过ITM的激励端口0在ITM Viewer窗口上输出ASCII 或 Hex格式的数据,目前只有ITM 端口0可以在ITM Viewer窗口显示。要使用ITM Viewer窗口来显示调试跟踪的输出信息,需要进行以下的操作。
. Y2 R9 c+ ]- {: `) {: I" Q! @# u+ N, @3 \: {$ a, X
l   在源代码中添加ITM激励端口寄存器的定义。
6 i. x9 V, Z$ P4 B4 L* A
1 W1 U6 O, Q( |7 K8 B#define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000+4*n)))
$ ^- y  o  c, d' q#define ITM_Port16(n)   (*((volatile unsigned short*)(0xE0000000+4*n)))
4 p: u. Z, }( k' V4 }& m2 o0 D#define ITM_Port32(n)   (*((volatile unsigned long *)(0xE0000000+4*n)))
- y' g) d6 ^4 I. S! E#define DEMCR           (*((volatile unsigned long *)(0xE000EDFC))); \8 J* b9 Q, P" _  _5 r" d
#define TRCENA          0x01000000
2 v1 }! F( H  I2 k* Xl   在源代码中添加fputc函数,它向ITM的激励端口0寄存器写数据。如果有了fputc函数,则可以用printf函数做为调试输出。ITM的激励端口0与ITM Viewer窗口固定连接。
6 k+ y* d( S, k- _8 k3 I+ g7 x& \) q+ h
struct __FILE { int handle; /* Add whatever you need here */ };
' |5 H# b- q4 \9 @# h! z; X1 Y6 `FILE __stdout;
. n* |( z. H) Y+ HFILE __stdin;
: ], |" D3 |" {8 `0 B) Yint fputc(int ch, FILE *f) {
. O% c/ R: v+ C. {9 aif (DEMCR & TRCENA) {
8 c0 @. c* R8 E  Wwhile (ITM_Port32(0) == 0);: a" |; }6 E+ s0 z) Q- n
ITM_Port8(0) = ch;: Z( z! M2 X* ^% Y, z! Z
  }7 L( U/ ~( j% y7 F
return(ch);
0 t, p. J- P& L& l) B! F* _  Q9 M}
) p% \# T1 A2 i: \+ Q" n  _l   在源代码中添加printf函数来显示调试跟踪信息。
( j6 C7 E' V& c+ e! `0 m
# ?; b, `( e7 k' }  @% qprintf("Serial Wire Output Debug Trace message");  
$ G- c4 l6 L, ^+ `. Kl   在Cortex-M Target Driver Setup窗口中使能ITM激励端口0
' T' ^( J: w# T; b. k3 P8 j6 }, E6 Y
* o. X1 s* v7 A' p) H' m; b
l   在目标调试期,打开ITM Viewer窗口4 S/ g) ^( g' ]/ j4 C
8 ]% O4 J. F2 S8 E9 j# E
选择μVision-> View -> Serial Window -> ITM Viewer
9 b* C' L: {! T, y' o
$ l9 g5 ?' t  [* J. [* k: z1 b# q3 G. e% w% Q
完成这些步骤以后,可以在目标调试期通过ITM Viewer窗口查看到调试跟踪信息,例如显示AD转换的结果。) V7 e, r# [' Z8 a6 B

) y' y0 W" Y. N: q
7 ~& P- N6 R- BITM Viewer的功能类似串口打印调试信息,使用ITM更简单,而且不需要串口以及相关驱动程序。
/ C" D9 X4 c0 a& Z) e6 ]* i# p8 R+ s4 k& V+ k0 M
4.Logic Analyzer 窗口; b; L) k1 _* j. z  [

! E# Q0 o& s$ o, X1 |: r$ g在调试的时候,可以通过逻辑分析器观测至多4个变量值的变化。执行以下步骤来使用逻辑分析器。
# h5 h! n+ q. e+ {2 b/ O) S: h) W! I, K- B% E; }
· 在Cortex-M Target Driver Setup窗口使能Timestamps并选择合适的Prescaler值。
5 [0 ?0 ?, i' a& K& z& l, z' k: n8 W
0 L' ]# C" b# u% Q9 c- w# X7 K
要想在逻辑分析器的窗口中观测到精确的时间值,必须使能Timestamps。
; L8 `0 Z) ]0 c! b7 h+ X6 p% }, T3 U- ^6 y* X+ K8 a' q+ |1 I9 c
· 添加准备观测的变量到逻辑分析器中/ d8 p9 ~: t2 S: k- K
· 在调试过程中观测变量值的变化+ E* s/ l7 q% m) y3 K% q$ j4 F
1 H* F/ K' X; I4 w

1 ~2 k! N# `. m6 L2 D5.RTX  Kernel Event Viewer 窗口
8 v2 G, l8 n; |. ]$ q# Y# T
5 y% Z6 B: D% o+ e1 O' \* v4 B) W当运行RTX系统时,RTX Kernel Event Viewer 窗口中显示了任务的切换过程,任务切换信息通过专门的ITM激励端口31来传输。
+ T2 }" [& J* x0 r$ }/ I
' u# A; a8 Z# R5 K$ |执行以下步骤来使能RTX Kernel Event Viewer。
1 N9 W3 C1 [' h) h; g+ Q· 在Cortex-M Target Driver Setup窗口使能ITM 激励端口31/ W4 M9 _8 r" Z4 U
5 [0 C3 R+ c$ q' u. O
& i' n" ]- A2 ]: T4 u. {
· 选择Trace Enable,设置正确的Core Clock。
. [1 G2 `" E9 t% d8 ~+ `& e: h! e# w7 d9 V/ v/ t$ l5 h2 e/ D

- V  L1 o4 K' {. q1 I. |· 核查Timestamps为enabled.
' `/ g3 Z& e2 v3 o* v5 P+ c% U8 y' \: U; S5 b# K+ ]0 r! Z
- W4 ?3 X1 k. D4 C
· 在目标调试过程中打开RTX Kernel窗口
) z  ^- C5 y& |) F3 A7 J' Y$ E
选择Peripherals -> RTX Kernel
9 A/ h3 D' ?# T* k' U, p$ q2 ^
, @2 t1 C% e( ]& L( [7 I& ]) @$ y0 F2 P6 a; P* e# l/ f" y3 ^5 f
· 在RTX内核窗口选择Event Viewer标签  " Z+ z: q  d% w
2 ?5 e0 A" C5 `/ W8 W# w1 Y6 A4 k* J6 A
% l) ^* [% O8 k7 r8 j- S9 ?% I5 }
在窗口中更新了每个任务转换过程。选择in或者out按钮放大或缩小窗口。点击all按钮可以显示所有事件记录。% S8 ?* L( c, Q5 e  Z
' t. F8 j! R$ ?1 c- u' q
出处:小野狼
收藏 评论3 发布时间:2008-9-3 20:34

举报

3个回答
yuying-66519 回答时间:2008-10-6 12:40:59

回复:使用RealView MDK进行SW调试和实时跟踪

顶一下
simage 回答时间:2008-12-8 20:31:53

RE:使用RealView MDK进行SW调试和实时跟踪

ST的工具做的很强大嘛,呵呵
ddllxxrr 回答时间:2009-3-15 09:35:17

RE:使用RealView MDK进行SW调试和实时跟踪

小锒,这个我浏览过,我的问题是,只用两条线,能不能象HJTAG那样简便点,

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版