0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

STM32单片机 来源:未知 2023-10-27 19:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

关键词: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 所示:

wKgaomU7o-uAFvEBAAMON4eEeOw782.png

图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所示:

wKgaomU7o-yAHAtFAAQ0_D3Xvx4077.png

图2.core_cm7.h 文件

示例(如下):使用 DWT 测量代码执行所用的时钟 cycle 数。

wKgaomU7o-yAFfp-AADGznw4wco909.pngwKgaomU7o-yAJmavAAAR-B25Ao0705.png

04

小结

在使用 ARMv7-M 架构的 STM32 时,对 DWT 配置之前应确保 DEMCR 中的 bit[24]已经被配置(使能 DWT),然后才能使用 DWT。

更多内容,欢迎点击下方“阅读原文”,下载完整文档。

wKgaomU7o-yAbeqbAAHiBpzEGaQ583.png

完整内容请点击“阅读原文”下载原文档。


原文标题:Arm®v7-M 架构的 STM32 如何启用 DWT进行计数

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45351

    浏览量

    663915
  • STM32
    +关注

    关注

    2305

    文章

    11124

    浏览量

    371243

原文标题:Arm®v7-M 架构的 STM32 如何启用 DWT进行计数

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据观察点及跟踪DWT

    Cortex®-M0+DWT 提供了两个观察点寄存器组。实现如下功能: •设置数据监视点数据或者外设的地址可以被标记为监视变量,对该地址的访问会产生调试事件,会暂停程序执行。 •ARMv6-M
    发表于 12-11 07:58

    Cortex-M内核中的精确延时的方法

    Cortex-M3权威指南中的一句话——“DWT 中有剩余的计数器,它们典型地用于程序代码的“性能速写”(profiling)。通过编程它们,就可以让它们在计数器溢出时发出事件(以跟踪
    发表于 11-21 07:51

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?
    发表于 11-20 06:21

    STM32C031x4/x6:面向主流应用的Arm® Cortex®-M0+ 微控制器

    STMicroelectronics的STM32C0x Arm^® ^Cortex ^®^ -M0+ 32位MCU安装了高性能Arm Cortex-
    的头像 发表于 10-27 15:05 379次阅读
    <b class='flag-5'>STM32</b>C031x4/x6:面向主流应用的<b class='flag-5'>Arm</b>® Cortex®-<b class='flag-5'>M</b>0+ 微控制器

    STM32H7S78-DK探索套件深度解析与技术应用指南

    STMicroelectronics STM32H7S78-DK探索套件用于演示和开发基于Arm® Cortex®-M7内核的STM32H7S7L8H6H微控制器
    的头像 发表于 10-20 15:34 512次阅读
    <b class='flag-5'>STM32H7</b>S78-DK探索套件深度解析与技术应用指南

    一文了解Arm神经超级采样 (Arm Neural Super Sampling, Arm NSS) 深入探索架构、训练和推理

    本文将从训练、网络架构到后处理和推理等方面,深入探讨 Arm 神经超级采样 (Arm Neural Super Sampling, Arm NSS) 的工作原理,希望为机器学习 (ML
    的头像 发表于 08-14 16:11 2520次阅读

    同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?

    ARM 架构与 RISC-V 架构的 MCU 在同一性能水平下的运行速度对比,需从架构设计原点、指令集特性及实际测试数据展开剖析。以
    的头像 发表于 07-02 10:29 1229次阅读
    同一水平的 RISC-<b class='flag-5'>V</b> <b class='flag-5'>架构</b>的 MCU,和 <b class='flag-5'>ARM</b> <b class='flag-5'>架构</b>的 MCU 相比,运行速度如何?

    RISC-VARM有何区别?

    在微处理器架构领域,ARM与RISC-V是两个备受关注的体系。ZLG致远电子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心
    的头像 发表于 06-24 11:38 1739次阅读
    RISC-<b class='flag-5'>V</b>和<b class='flag-5'>ARM</b>有何区别?

    Arm架构何以成为现代计算的基础

    2025 年 4 月,Arm 架构迎来了问世 40 周年。这个始于英国剑桥一隅、怀揣雄心壮志的项目,如今已成为全球广泛采用的计算架构。从传感器、智能手机、笔记本电脑,到汽车、数据中心等诸多领域,有数十亿设备如今运行在
    的头像 发表于 05-20 10:02 959次阅读

    使用STM32CubeIDE对STM32H7进行开发和调试,CM4始终报\"Failed to read ROM table via AP 3\"错误怎么解决?

    ID : Rev V Device name : STM32H7xx Flash size: 2 MBytes Device type : MCU Device CPU: Cortex-M7/
    发表于 05-14 06:20

    Arm助力开发者加速迁移至Arm架构云平台 Arm云迁移资源分享

    随着基于 Arm 架构的云实例日益扩展,越来越多的用户正从传统平台迁移至 Arm 平台上。
    的头像 发表于 04-09 18:23 1034次阅读

    stm32G431用DWT外设用来计时,DWT-&gt;CYCCNT的值一直固定不变,程序里面都使能了,还有别的寄存器要打开吗?

    stm32G431 用DWT外设用来计时,DWT->CYCCNT的值一直固定不变,程序里面都使能了。还有别的寄存器要打开吗?
    发表于 03-13 07:20

    Arm与RISC-V架构的优劣势比较

    关于Arm与RISC-V的讨论涉及多个层面。虽然多种因素共同作用于这些架构的整体性能,但每种架构都有其最适合的几类主要应用场景。 Arm
    发表于 02-01 22:30

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】DWT定时器的使用

    DWTARM Cortex-M系列微控制器中的一个内置外设,它的全名是“Data Watchpoint and Trace”单元,但从其名字中我们并不能直接看出它与定时器的关系。实际上,DW
    发表于 12-18 13:16

    RISC-V架构及MRS开发环境回顾

    。RISC-V是一种特定指令集架构。RISC-V指令集类似于INTEL的X86、ARM指令集,是一个被CPU读取到内存后,指导计算机运行的指令集合。使用该指令集的CPU,能执行指令集中
    发表于 12-16 23:08