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

使用 STM32 的 DWT 单元监控内存

[复制链接]
STMCU小助手 发布时间:2023-2-14 14:32
1. 前言关于 DWT(Data watchpoint and trace unit),相信有很多工程师都知道,其可用于 us级别的延时。' S9 p& R/ \+ D) B
今天想和大家分享的是,通过 DWT 检测特定内存变量或函数,当其被修改或被调用时时,可以触发中断,通过这样的方式,实现一些特殊的调试手段。
0 w. A1 s5 M! @) f  s" T
( P  u$ \; G& c
4 u" w" k2 I5 }% m, V
2. DWT 介绍: k$ i) e' j4 M- g* d+ b2 E) f
U5 的 DWT comparator 有以下特性:6 Y, z9 R/ r4 P4 ~$ K  F5 a) W
1) 用作指令地址匹配或数据地址匹配的单一比较器。
9 H' W7 r+ [' ?' _$ U2) 在链接组中使用相关的地址范围匹配或数据地址范围匹配。
) Q. E# y, |0 X+ I+ J8 H当 comparator 被匹配时,可以生成以下事件:& z0 T8 ^- p. v8 s0 f: ?
1) 调试事件,导致 PE 或者进入调试状态;或者,如果执行主扩展则要进行DebugMonitor 异常。
2 M# X- z& {0 J0 X* D2 P2) 如果实现,将与 ETM 匹配。
) ]- q* G, m5 W% a/ I/ [3) 向另一个外部资源发送匹配。
3 X. _% T" t$ _& fDWT 由 function 和 comparator 寄存器组成,其定义是在 Armv8-M Architecture Reference Manual 文档中。% g) h, o4 c4 j5 T/ @
DWT_COMPn:存放比较值7 s+ k2 F" {8 A4 g
DWT_FUNCTIONn:定义 comparator 的操作
! H1 G" B9 X) D2 V" D. V0 Y4 N( D. M/ d* I( B- X- `

- I6 d, v% i5 x4 {, ^' [$ i) ~: n ON(VNPV2BQP6P@$]2(0XYLU.png ( J8 n6 u# a1 @+ o: j
G{MHUSS6TXE1[3K@Q3`8Z[M.png
% g# v1 P. X( P  A+ o, Z* H7 C" m4 j+ W, J9 Y

7 g. J) y5 Q  z+ O2 }" h2 b5 V! e 3. 实验
; Y9 q: ^+ k) J9 d刚好我手中有块 STM32U575 的 Nucleo 板子,可以拿过来进行功能验证。
- [0 Q2 J/ B( [0 ?首先我们通过 STM32CubeMX 实现了基本的串口输出打印的工程,然后在此工程中,按照以下步骤,添加 DWT 的配置 :  k6 s! S4 G7 o, r4 z, o
1, 使能 tracing 功能;
2 V* f- Y' A" R! i$ n( c* k( @! b2, 使能调试中断功能;
4 B$ K4 w* ?! d3, 配置 comparator 寄存器;; x  u; m2 `( Z* k8 g7 b* j
4, 配置 function 寄存器8 G3 y4 _; L! c/ J4 G% L& i
具体代码如图 1:5 a- l8 ^" `* D$ w' j9 ]3 L

9 N- o0 V# w$ `. r# U1 h
* q7 G4 j& T8 @- V2 X
% [0 j) N; g* T+ k
0 X: v$ ?/ }/ V" ^  I

& ]/ \: }$ D9 c. n5 L, u$ Q6 N  o这里我们配置了两个 comparator,COMP0 监控 test_var 变量的写操作, COMP1 监控 HAL_Delay 函数的调用,一旦发生 test_var 变量的写动作,或者 HAL_Delay 函数被调用,都将产生 DebugMonitor 中断事件,并且我们可以在 Debug_Mon_Handler 中断中区分这两个 comparator 事件。
9 C( x0 O7 C" b& |
5 ^/ l; n& T6 @/ c% @
' w9 G0 f4 p; D5 r
完整版请查看:附件 用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 手机版