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

使用 STM32 的 DWT 单元监控内存

[复制链接]
STMCU小助手 发布时间:2023-2-14 14:32
1. 前言关于 DWT(Data watchpoint and trace unit),相信有很多工程师都知道,其可用于 us级别的延时。3 X3 n* e; W# H( j  F/ h) D/ M
今天想和大家分享的是,通过 DWT 检测特定内存变量或函数,当其被修改或被调用时时,可以触发中断,通过这样的方式,实现一些特殊的调试手段。
5 A; z1 J$ W, b& ^  v3 [8 q( P. Y* ]5 C7 {9 z
4 t2 k3 T1 K& _/ B& B. j7 Y+ W
2. DWT 介绍
- A+ _1 H3 L6 J' \& f  n* M. z% \  EU5 的 DWT comparator 有以下特性:5 B9 _* j* l0 W, A# D
1) 用作指令地址匹配或数据地址匹配的单一比较器。1 D+ Q3 m( B' C1 n9 K
2) 在链接组中使用相关的地址范围匹配或数据地址范围匹配。; n5 w/ q) p% _' h5 E5 ~
当 comparator 被匹配时,可以生成以下事件:. C1 V3 N1 _6 D5 N- s! J7 G
1) 调试事件,导致 PE 或者进入调试状态;或者,如果执行主扩展则要进行DebugMonitor 异常。
  \, }7 z% Y* B: [- k2) 如果实现,将与 ETM 匹配。
. U' T' w2 ~% D& ?( U( H$ [, p! M3) 向另一个外部资源发送匹配。
) l: T1 ~# Q) }" z/ _2 d1 _( @DWT 由 function 和 comparator 寄存器组成,其定义是在 Armv8-M Architecture Reference Manual 文档中。0 X, C  ^* w' t  R
DWT_COMPn:存放比较值, M* ^* }2 [5 w" `7 }& \7 k
DWT_FUNCTIONn:定义 comparator 的操作 9 q5 g* Q+ H- w1 {# ~
2 S0 ]# @6 W" {2 ~! X) f  Q2 P. }

) k0 \; Z: a+ u& S7 f ON(VNPV2BQP6P@$]2(0XYLU.png - E  W$ L2 ?# ]5 }- j* B
G{MHUSS6TXE1[3K@Q3`8Z[M.png
7 |4 z1 J4 @2 W+ u* R! I
" w7 U1 j: s+ j7 @9 V
& p0 M+ m3 ^7 D& X6 e8 j  e$ N3 e
3. 实验
, W5 v# c, Q2 k7 V2 Q/ D刚好我手中有块 STM32U575 的 Nucleo 板子,可以拿过来进行功能验证。% \3 `2 b' B) C
首先我们通过 STM32CubeMX 实现了基本的串口输出打印的工程,然后在此工程中,按照以下步骤,添加 DWT 的配置 :
- q4 D1 E- [! }1, 使能 tracing 功能;) I7 @$ n9 O. f
2, 使能调试中断功能;
' d1 I  _; r3 n( P' m/ O3, 配置 comparator 寄存器;+ @& r; D$ G0 n+ p3 e* W5 \
4, 配置 function 寄存器
! [9 [8 @7 y7 _$ Z具体代码如图 1:$ V5 {: h: p) q8 `7 @2 _- E

* J( k* W- N% E8 W* K3 l
! l9 b( M' P/ r  A+ ^

4 Z# s  K$ V& c7 Z) N% w6 q& \
# D1 e6 Q0 I$ M- K, k& A

0 f  P6 @3 @, ~# }这里我们配置了两个 comparator,COMP0 监控 test_var 变量的写操作, COMP1 监控 HAL_Delay 函数的调用,一旦发生 test_var 变量的写动作,或者 HAL_Delay 函数被调用,都将产生 DebugMonitor 中断事件,并且我们可以在 Debug_Mon_Handler 中断中区分这两个 comparator 事件。
1 B+ i) p! Y3 F6 a/ ]6 |2 B
% y: Q% Y, b" \5 ^; J6 x

$ p) w! e0 Y( s* f0 H; `0 l完整版请查看:附件 用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 手机版