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

如何基于Arm®v7-M 架构的 STM32 启用 DWT进行计数

[复制链接]
STMCU小助手 发布时间:2023-10-30 15:53
01前言
& U. D; S0 C0 r; S  m. ~客户在使用 STM32H7 的时候,想要使用 DWT 计数来测量代码执行时间,评估执行效率。客户发现在重新上电或 reset 后,无法启用 DWT 进行计数。7 z: u" O& n! ]6 x% _6 Z; D% z1 K

* U0 R5 h+ R" f9 h, k02调研

  l: f& s" _7 ?在 ARMv7-M 架构中有个 DEMCR 寄存器,这个寄存器可以控制 DWT 的使能。在power-on reset 后这个寄存器所有位的值都为 0。而当 bit[24]为 0 时,DWT 和 ITM 模块都是 disabled 的。所以为了启用 DWT 模块,必须将 DEMCR 的 bit[24]置为 1。如图 1 所示:# S4 T2 W; @* N9 C/ L. m' ]/ l
' P: V5 a( m" N3 i( q3 R6 a
微信图片_20231030155307.png

! D, l. Q7 ]' X; Z. I3 h2 W
图1.DEMCR 寄存器
8 x8 r; a; T' S3 {* ~) _  x" W; Y# t

/ M- l. k; t) ^/ {: {

4 k8 p) w; o9 x
03启用 DWT 进行计数
! D6 d) [, ~1 F: v4 dSTM32H7 基于 Arm Cortex-M7 内核,而 Cortex-M7 是 ARMv7-M 架构,所以 H7 在配置 DWT 模块之前需要将 DEMCR 的 bit[24]置位。在基于 Cortex-M7 的芯片中,需要使用DWT-LAR 来解锁 DWT(其他核可能不需要,应具体分析),然后对 DWT_CTRL 进行相应使能即可。 * I1 W4 n1 A  N; }! F' y

0 l. Y) Z) j! G" u, I- h
在 CMSIS 文件中已经提供了相关寄存器的宏定义(例如在“core_cm7.h”文件中包提供了 DWT 和 DEMCR 的宏定义),我们可以使用这些宏定义方便的进行配置,如图 2所示:5 o) I$ J4 }( |

: J  k* S. Q+ o% L
微信图片_20231030155302.png

" N, v3 d3 k, k! A1 S" r" z
图2.core_cm7.h 文件
) ?- B0 ?: V; B3 I) Z) x
, m2 q8 Z0 e2 S+ s+ ~
示例(如下):使用 DWT 测量代码执行所用的时钟 cycle 数。& p, s1 Q+ W, v* F, D5 q% R" C

! N; K9 k3 o& m3 t% U3 d
微信图片_20231030155521.png
2 G4 R8 D7 L1 }. k/ T% O
) F! |% u4 s& g& s; ~8 n7 _* R
: a, _8 w$ [" D& }: F/ G
微信图片_20231030155534.png
( V7 }/ S) ]  Y3 K5 b+ |% I/ ?3 y

5 E+ i* d+ {. d/ n2 s- o( e$ G+ e
5 U5 b% P: @/ n
04小结
, j) ~$ l7 J4 w* W  }2 U2 {( @$ X在使用 ARMv7-M 架构的 STM32 时,对 DWT 配置之前应确保 DEMCR 中的 bit[24]已经被配置(使能 DWT),然后才能使用 DWT。
# y+ `, @. |2 j
# I" K% s6 s8 r& T$ i# S$ V  C1 {
3 H1 Y7 Z! w4 H% C$ [转载自: STM32单片机
& \; M% Q/ M- q* R1 n- t如有侵权请联系删除. o$ i# p7 t( f

% F& J& j7 s0 Q% k( A. \
( \" D5 j0 o1 R/ j7 a5 b0 z# _3 o+ ~
收藏 评论2 发布时间:2023-10-30 15:53

举报

2个回答
杨小杨 回答时间:2023-10-31 13:59:58

学习学习

xu@xupt 回答时间:2023-11-2 14:58:14

学习啦~~~

所属标签

相似技术帖

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