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

使用 STM32 的 DWT 单元监控内存

[复制链接]
STMCU小助手 发布时间:2023-2-14 14:32
1. 前言关于 DWT(Data watchpoint and trace unit),相信有很多工程师都知道,其可用于 us级别的延时。3 H& z8 ?$ r% P' M; `, D
今天想和大家分享的是,通过 DWT 检测特定内存变量或函数,当其被修改或被调用时时,可以触发中断,通过这样的方式,实现一些特殊的调试手段。
( C2 a% h% B' U$ x
. U0 s! M9 G) I' J1 B

' y. K5 V0 Z& H( S+ L+ e2. DWT 介绍
* `, F( O& A: }* y4 Q4 C( k( IU5 的 DWT comparator 有以下特性:: }) ?" E) q( }" |, e7 @
1) 用作指令地址匹配或数据地址匹配的单一比较器。
. g# }( j0 [- h& s1 p' |" A) C% Q2) 在链接组中使用相关的地址范围匹配或数据地址范围匹配。& j7 J3 G1 h+ ]
当 comparator 被匹配时,可以生成以下事件:
! q; K' x" W) `* i5 f! X3 u1) 调试事件,导致 PE 或者进入调试状态;或者,如果执行主扩展则要进行DebugMonitor 异常。
' O; v+ ^8 b3 I. k2) 如果实现,将与 ETM 匹配。
. g5 X, A9 j  v: x3) 向另一个外部资源发送匹配。
0 D- K8 w: t# H6 aDWT 由 function 和 comparator 寄存器组成,其定义是在 Armv8-M Architecture Reference Manual 文档中。
- U6 h% I% B( G) r7 W1 kDWT_COMPn:存放比较值
- b# p( P* Q  N* A/ L/ ~: z: ADWT_FUNCTIONn:定义 comparator 的操作 % f! \9 B% _9 e4 Y  `- z. M

( K, k+ {; v5 V! }" ~0 r: ]

) x8 y7 P" C7 d' l! C0 c ON(VNPV2BQP6P@$]2(0XYLU.png 7 J2 Y2 f' z' O. N  N
G{MHUSS6TXE1[3K@Q3`8Z[M.png
8 v  X/ G$ M) @- }& [3 R6 D" g- ]3 ~+ y6 k  c  C
' T; i9 d  F' l+ D" _9 r
3. 实验
2 m9 l! E5 b1 @: f+ R, o* f9 M' O刚好我手中有块 STM32U575 的 Nucleo 板子,可以拿过来进行功能验证。
* v5 S; l  A8 n$ r7 _  a首先我们通过 STM32CubeMX 实现了基本的串口输出打印的工程,然后在此工程中,按照以下步骤,添加 DWT 的配置 :+ X* I- m) ~, p; X0 U% O8 j
1, 使能 tracing 功能;# E9 e* x* y; C. @6 _1 T
2, 使能调试中断功能;
- C9 x- I0 y1 P# ~4 [8 m9 J7 o3, 配置 comparator 寄存器;
; }2 ^) e* u. Y  v$ W8 b4 E4, 配置 function 寄存器
, T, V6 l4 A; l# y" u* O具体代码如图 1:
$ d/ z4 y& N; V+ s' M/ H  g" {" b4 u2 H+ _( V0 _+ p

' q& T( n& H9 }" d0 o
' r! Z, V4 t: c7 r/ h/ N4 d
& E$ P& S3 R1 `4 W

: }6 d- ?2 p5 B1 P* P' c这里我们配置了两个 comparator,COMP0 监控 test_var 变量的写操作, COMP1 监控 HAL_Delay 函数的调用,一旦发生 test_var 变量的写动作,或者 HAL_Delay 函数被调用,都将产生 DebugMonitor 中断事件,并且我们可以在 Debug_Mon_Handler 中断中区分这两个 comparator 事件。
& y2 l4 L% l2 E3 }9 h* I/ j
0 Z3 R+ n+ e" L8 N; {

. r( n: r. K1 S) a完整版请查看:附件 用STM32的DWT单元监控内存_v1.0.pdf (380.17 KB, 下载次数: 39)
收藏 评论0 发布时间:2023-2-14 14:32

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版