关键词:dwt, demcr
目录预览
1、前言
2、调研
3、启用 dwt 进行计数
4、小结
01
前言
客户在使用 stm32h7 的时候,想要使用 dwt 计数来测量代码执行时间,评估执行效率。客户发现在重新上电或 reset 后,无法启用 dwt 进行计数。
02
调研
在 armv7-m 架构中有个 demcr 寄存器,这个寄存器可以控制 dwt 的使能。在power-on reset 后这个寄存器所有位的值都为 0。而当 bit[24]为 0 时,dwt 和 itm 模块都是 disabled 的。所以为了启用 dwt 模块,必须将 demcr 的 bit[24]置为 1。如图 1 所示:
图1.demcr 寄存器
03
启用 dwt 进行计数
stm32h7 基于 arm cortex-m7 内核,而 cortex-m7 是 armv7-m 架构,所以 h7 在配置 dwt 模块之前需要将 demcr 的 bit[24]置位。在基于 cortex-m7 的芯片中,需要使用dwt-lar 来解锁 dwt(其他核可能不需要,应具体分析),然后对 dwt_ctrl 进行相应使能即可。
在 cmsis 文件中已经提供了相关寄存器的宏定义(例如在“core_cm7.h”文件中包提供了 dwt 和 demcr 的宏定义),我们可以使用这些宏定义方便的进行配置,如图 2所示:
图2.core_cm7.h 文件
示例(如下):使用 dwt 测量代码执行所用的时钟 cycle 数。
04
小结
在使用 armv7-m 架构的 stm32 时,对 dwt 配置之前应确保 demcr 中的 bit[24]已经被配置(使能 dwt),然后才能使用 dwt。
更多内容,欢迎点击下方“阅读原文”,下载完整文档。
完整内容请点击“阅读原文”下载原文档。
原文标题:arm®v7-m 架构的 stm32 如何启用 dwt进行计数
文章出处:【微信公众号:stm32单片机】欢迎添加关注!文章转载请注明出处。
三相自动交流稳压器没有输出电压?出现这种情况可能是什么原因呢?
珞石机器人完成1.6亿元B轮融资
小型密封铅蓄电池的构造,使用与维修
HTC One X10曝光:定位中端配MTK芯片
四维图新与华为云达成战略合作 引领中国汽车产业智能化升级
Arm®v7-M 架构的 STM32 如何启用 DWT进行计数
4G泛在定位卡,助力物业人员管理精细化
三星S8最新曝光: 你想知道的都在这了
Linux是什么?这种操作系统为何如此流行?
英国用无人机来保护皇家空军阿克罗蒂里基地
D-Wave即将发布下一代量子计算机系统Advantage2正式版
GMY001 0-100%PWM转±10V输出模块
如何生成精确的调频载波和线性调频脉冲雷达测试信号?(一)
怎样借助RFID技术来管理消防器材
反相输入放大器的输入阻抗很低这个缺点是怎么产生的?
LED无缝拼接视频墙的需求正在显着增长
工业物联网将为制造业带来翻天覆地的变化
自动驾驶系统架构状态和配置介绍
PICO-V2K4 搭载AMD Ryzen™嵌入式V2000系列处理器,超强运算与图形显示能力
华为Mate40 Pro手机仍缺货严重