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单片机】欢迎添加关注!文章转载请注明出处。


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

    关注

    6002

    文章

    43990

    浏览量

    620972
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348872

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

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

收藏 人收藏

    评论

    相关推荐

    请问STM32G071如何通过DWT实现us精准定时?

    STM32G071怎样通过DWT实现us精准定时?,各位大佬有实现的吗?
    发表于 03-20 06:59

    RISC-V开源架构ARM架构什么区别?

    很多公司觉得ARM收费太高,决定一起搞RISC-V架构,是不是这种开源的是不是不收费的;那和ARM有啥区别,能发展起来吗
    发表于 10-30 06:38

    有适合自动识别是risc-v架构还是arm架构的烧录器吗?

    目前市面上有自动能识别出被烧录MCU是risc-v架构Arm架构的烧录器吗?无需用户手动切换模式,能够自动识别到被烧录MCU的内核架构
    发表于 09-14 17:40

    STM32H7- ARM内核产品介绍

    Protection Unit (MPU)• 单 和 双 精度 Floating Point Unit (FPU) 包含STM32H7使用的 ARM Cortex®-M7
    发表于 09-11 08:28

    STM32L5系列微控制器和TrustZone开发入门

    本文档为使用 EWARM 和 MDKARM 软件工具链在 STM32L5 系列微控制器上进行应用开发提供参考。本应用笔记提供了为 Arm® Cortex®- m33(Armv8_
    发表于 09-07 08:15

    ARM定制说明:在ARM上实现创新和更大的灵活性

    。 2021年,Cortex-M55处理器上将启用ARM定制指令。 在这种情况下,ARM定制说明旨在: 让您能够在久经考验的ARM
    发表于 08-23 08:19

    ARM Cortex-M1技术参考手册

    该处理器适用于需要集成到FPGA中的小型处理器的深度嵌入式应用。 该处理器包含: ·处理器核心。 这是一款低门数内核,具有以下特点: -ARM架构v6-M。 Thumb®指令集体系结构(ISA),还
    发表于 08-17 08:21

    Arm CoreSight™ ETM-M85技术参考手册

    85包含可用于控制指令跟踪的资源逻辑。 该资源逻辑包括一个缩减的功能计数器。 有关提供精简功能计数器的更多信息,请参阅ARM®嵌入式跟踪宏单元架构规范ETMv4。 ETM-
    发表于 08-17 08:11

    Arm CoreSight ETM-M33技术参考手册

    。 有关CoreSight的更多信息,请参阅ARM®CoreSight™架构规范v2.0和ARM®CoreSight™技术系统设计指南。 有关ETM
    发表于 08-17 06:24

    Cortex-M7 MPCore处理器循环模型9.6.0版用户指南

    Cortex-M7硬件的以下功能在Cortex-M7循环模型中完全实现: ·Cortex-M7整型内核·NVIC嵌套矢量化中断控制器·WIC-唤醒中断控制器接口支持(仅支持接口)。 ·AXI4
    发表于 08-12 07:01

    Arm Neoverse V1 PMU指南

    事件之一时计数发生。 2.1范围 本文档提供了Neoverse V1 PMU事件的高级描述。有参考资料体系结构行为和Neoverse V1微观体系结构行为事件描述。有关Arm
    发表于 08-09 07:30

    DWT跟踪组件调试

    DWT跟踪组件 跟踪组件:数据观察点与跟踪(DWT) DWT 中有剩余的计数器,它们典型地用于程序代码的“性能速写”(profiling)。通过编程它们,就可以让它们在
    的头像 发表于 06-22 14:24 621次阅读
    <b class='flag-5'>DWT</b>跟踪组件调试

    两大架构RISC-VARM 的各种关系

    一、RISC-VARM 的相似之处 RISC-VARM 基本上都是 RISC(精简指令集计算机)。RISC-V
    发表于 06-21 20:31

    在 IAR Embedded Workbench中进行ARM+RISC-V多核调试

    在之前的文章中,我们介绍了如何在IAR Embedded Workbench for Arm进行多核调试,其中所有的CPU内核都是基于ARM架构。近些年来,随着RISC-
    发表于 06-14 16:55

    设备仿真模拟软件 QEMU 8.0 发布:改进对 ARM / RISC-V 架构支持

    和 Cortex-R52 的 CPU 仿真,支持新的 Olimex STM32 H405 设备类型,以及支持 M-profile 系统寄存器的 gdbstub 等。 对于 RISC-V 架构
    发表于 05-05 09:48