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

【经验分享】MDK Logic Analyzer 功能在 STM32 中的实现问题

[复制链接]
STMCU小助手 发布时间:2022-3-1 12:01
问题:8 ?. T; f( s, q" g7 R
某客户工程师在某型号新产品的设计中,使用了 STM32F407VGT6。据其工程师讲述:他想使用 MDK 自带的 Logic Analyzer 功能,在软件仿真的情况下是正常的,但是用仿真器仿真的时候,该功能出现了问题,尝试了很多种配置都没有成功。0 z2 m3 \8 c3 J
7 @( E- b- n5 R$ _, d$ ?# J' E% G
调研:9 V3 ]7 [5 J8 y
MDK 自带的帮助文档中有针对如何使用 Logic Analyzer 功能的讲解,其基本前提条件就是需要开启仿真器的 Trace 功能,而在完全软件仿真的时候是不需要有此操作的。客户的重点问题是如何在硬件仿真中实现 Logic Analyzer.
) N& Z8 {; H7 k3 F6 F# {
% N$ X) O, s# W
. y2 j% ~& S/ {+ b结论:9 {- t6 X$ F+ u
硬件仿真实现 Logic Analyzer 功能是有条件限制的,根据不同的仿真器和不同的 MCU 都有相关的设置。例如使用 Jlink 就需要使用 ETM 接口(详细设置参见 MDK 的帮助文档)。使用 ST-Link/V2 只需要简单的 SWD 接口就可以实现此功能。目前 MDK 的帮助文档中还没有针对 ST-Link 的设置做相关阐述。所以造成有些工程师不了解 ST-Link/V2 在程序仿真时的优势。
; D1 E4 c7 E* p1 n1 J1 b  A9 k
6 }% W$ J( p' q! C
6 I, P/ U2 ~. M$ A2 J/ J+ @7 [! }处理:
+ p% X) r* N( Q- y/ V硬件平台:STM32F4DISCOVERY6 h& e" {5 T  p6 B1 K& e
MDK 版本:MDK V4.7.3 32K 限制版本5 V9 L; z& b+ H) X" G
首先在 MDK 中按照如下步骤进行设置。0 r! F# d; y5 U  D1 X3 X! _
1/选择 Target Option 或者 Alt+F7。
  p: _" a) J5 f: d5 q) E, D5 H# t0 }$ s  ?: ^4 X
RYM`9`_PO_%B_2E@[5M$)9K.png
9 D& y" v; z) V" L4 j4 I4 n  L( `0 h. L
2/选择 Debug 选项
; [  W% W6 O' ^& k7 k2 U, s; \6 G+ _$ `4 o
B}SW[7I8GU_XS8U(I~%$BQF.png 6 |/ L9 U0 B& W0 f& V
+ n) \: |& D( G( l0 p  i7 X
3/选择 ST-Link Debugger) B; |4 h$ H* Z" ~% c( Y

0 h$ K, {5 r7 S/ I# j+ i' Q4 \ YE7CCL`N9`_5Z}@}7DIA.png
* f5 y4 }1 i/ O8 n2 K. R* n; z1 A9 h1 b1 x
4/选择 Setting
# d- {3 I/ B2 d. ~; s1 x( U
  E) C2 H$ g# x+ D {F2U~H9}2DU9O]MHUNQ3WMD.png
) |6 x3 ]" {* d% `
% J; s" G" ]- C" Y/ e1 R5/选择 SW 端口(注意,此时需要连接上 ST-Link/V2)
- q' @5 s" w: _
8 s& E' i( W) d# ]+ a4 C3 U4 [6 d$ e: W( }  e% m. P; {4 c
]4J[B26H]5UPWQCHV39EM{9.png
1 x+ e+ O# R) u
2 n+ O* T9 E' L7 W; b* H% t6/选择 Trace,使能 Trace 功能,禁止 Periodic 和 EXCTRC 功能.其他的配置按照下图设置.
8 w# K) D( y! d* w% h7 e4 r& x% a4 Z0 G, K5 r- W' B& R
$ u! w/ k) `$ U& J
%M6V9]4B]Z7]4LYPIBYDQ.png
; b& q7 U1 `# i4 n  X. f9 _! \
7/点击 OK,返回到 debug 界面,在 Initialization File 中添加“STM32_SWO.ini”文件.该文件的路径如下:“C:\Keil\ARM\Boards\Keil\MCBSTM32C\Blinky_Ulp”(备注:本文提供的例程已经包含了这个文件,所以使用该例程无需再次添加此文件)
: `) n; k6 g& K: T4 W) e
2 V" y% @; h- x- z4 T8 K6 u4 M 6(7@6@F[F{WG[%ANIWHXQ{8.png 6 y7 K, f; Q; @9 ?( S' ]  M3 Q: B7 [

# q3 X5 T! O7 N- l; z9 V8/点击 OK,之后我们的设置就完成了,直接编译仿真即可。  Q7 _& D* H$ D8 ]% C! \& ]
0 l9 J; R; b  [3 ]9 f9 z
! h% N6 K; L% q* @' S8 T- G
P$~]A9MZO]SV4NXCH_7[3PO.png , o) v, N8 M# i

3 V1 \) z+ D. r& q' E9/尝试一个简单的闪灯程序进行测试.该测试程序在 Logic Analyzer 中看变量 temp_adc 的变化所产生的波形。
( U: ?' `, z$ E! n7 M, g备注:添加变量到 Logic Analyzer 中很简单,只需要点击右键 Add: |4 A2 F3 k& @
7 t' D! |3 o8 d* a. ?
& O. ~4 j  W' O# A0 z
@~5KCDDJNK97QF(1QC5PL`G.png 3 ]7 U2 \( D& h- o+ ?

' A$ B$ t0 U1 |5 N4 m建议:- W! D9 L; g6 `& W: X" R
1/MDK 的这个 Logic Analyzer 是一个简单易用的评估工具,对于低速信号或者简单的变量可以很直观的显示出来,对于早期评估很有帮助。; H, ]9 A8 Q( c
2/ST-Link 在针对 STM32 的仿真支持的非常好,建议在使用 STM32 的情况下,优先考虑该仿真器。# V* e% M' d: Z! c0 o6 F5 Z
3/如果想真实的反馈外设的逻辑状态,那么还是需要真正的逻辑分析仪的0 v% M7 d: v% U4 b& \, X* |: ]6 s
$ F+ V2 G7 O' x
赞 收藏 评论0 发布时间:2022-3-1 12:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版