IAR\ST-Link调试程序查看STM32单片机某段代码运行时间

本文介绍三种方法查看代码运行时间,一种是使用单片机内部的数据观察器和Trace (Data Watchpoint and Trace)。通过引脚跳变,用示波器观察。另一种是通过stlink调试器。我觉得最精确的是第一种。操作方法如下

一、数据观察器和Trace

        

DWT->CYCCNT是在ARM Cortex-M微控制器中的一个寄存器,用于测量程序执行的周期数。DWT代表数据观察器和Trace (Data Watchpoint and Trace),CYCCNT表示Cycle Count(周期计数)。

DWT->CYCCNT寄存器可以用于实现精确的程序执行时间测量、性能分析和调试。通过读取CYCCNT寄存器的值,可以确定程序在不同部分花费的CPU周期数。这对于优化性能、检测瓶颈和调试时间相关问题都非常有用。

使用DWT->CYCCNT寄存器进行精确的时间测量通常需要以下步骤:

  1. 启用DWT单元:在使用DWT之前,需要先启用DWT单元。可以通过写入特定值到DEMCR寄存器的相应位来实现。

  2. 启用CYCCNT计数器:需要将DWT->CYCCNT寄存器清零,并启用CYCCNT计数器。可以通过将特定值加载到DWT->CTRL寄存器来实现。

  3. 计数器读取:通过读取DWT->CYCCNT寄存器的值,可以获取当前的周期计数。、

以下是使用DWT->CYCCNT寄存器进行时间测量的伪代码示例:

// 启用DWT单元
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;

// 启用CYCCNT计数器
DWT->CYCCNT = 0;
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;

// 测量开始时间
uint32_t start = DWT->CYCCNT;

// 执行需要测量时间的代码

// 测量结束时间
uint32_t end = DWT->CYCCNT;

// 计算执行时间
uint32_t cycles = end - start;

对于STM32F103系列微控制器,系统时钟配置为72 MHz。在这种情况下,DWT->CYCCNT寄存器的数值对应的时间计算如下:

计算CPU时钟周期的时间:
CPU时钟周期 = 1 / CPU时钟频率
= 1 / 72 MHz
≈ 13.89 纳秒

转换CYCCNT数值为时间:
假设CYCCNT的数值为5000:
时间(秒) = CYCCNT数值 * CPU时钟周期
= 5000 * 13.89 纳秒
≈ 69.45 微秒

因此,在STM32F103上,当CYCCNT寄存器的数值为5000时,大约对应69.45微秒的时间。

请注意,这是一个近似计算,实际的结果可能会受微控制器的精度和浮点数运算误差的影响。如果需要更精确的时间测量,建议使用定时器来测量较长的时间间隔,或者结合其他外部时钟源进行更精确的时间测量。

二、硬件方法:

1:在测量起始点,反转电平
2:在测量结束点,再次反转电平

使用示波器查看间隔时间。如果时间过短只有几微秒的情况下不建议使用。ms级别应该没问题。

三、软件方法:

这里用到的开发环境是IAR

1、在测量起始点和测量结束点设置断点

2、进入调试模式,点击工具栏ST-Link→Data Log Summary→弹出的窗口右键Enable。

3、运行程序到达测量起始点,会显示运行时间,再全速运行至结束点,时间差即为测量出的运行时间。

没有验证过精度,要求不高的可以使用这种方法。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: ST-Link官方驱动是由STMicroelectronics公司开发的一款用于驱动ST-Link调试器的软件。该驱动可用于Windows、Linux和macOS等多种操作系统平台,它能够让用户通过USB接口来连接开发板和计算机,实现软件编程和调试的功能。 ST-Link官方驱动带有各种工具和软件,例如Flash编程器、GDB调试器、追踪程序等,为用户提供了一个完整的开发环境。该驱动还支持多种语言,包括C和C++等,可以满足不同开发人员的需求。 此外,ST-Link官方驱动还提供了丰富的文档和示例,方便用户快速上手。在使用过程中,用户可以通过该驱动来修改和烧写代码,以及进行调试。 总而言之,ST-Link官方驱动是一款可靠的开发工具,它能够提高用户的编程和调试效率,使用户更加便捷地进行嵌入式开发工作。 ### 回答2: ST-Link官方驱动是针对ST-Link调试器开发的一个驱动程序,用于让计算机能够识别、连接和控制ST-Link调试器,从而进行单片机的编程、调试和下载等操作。这个驱动程序由ST公司官方提供,支持多种操作系统,包括Windows、Linux和Mac OS等,用户可以根据自己计算机系统的配置和需要选择相应的版本进行下载和安装。 ST-Link调试器是STM32系列微控制器官方推出的一款调试工具,内置了调试接口和硬件调试逻辑,可以将计算机和STM32系列微控制器连接起来,实现调试和下载等操作。ST-Link官方驱动是和ST-Link调试器紧密相关的,它可以让计算机和ST-Link调试器之间建立可靠的通讯连接,并提供必要的控制命令和数据传输功能,保证了调试器的正常工作。 ST-Link官方驱动的特点包括:安全、稳定、易用、兼容性好等。用户只需要按照官方的安装指南,将驱动程序安装到计算机上,就可以开始使用ST-Link调试器进行单片机的编程、调试和下载等操作。此外,ST-Link官方驱动还支持多种编程软件和集成开发环境(IDE),方便了用户的开发工作。 需要注意的是,由于ST-Link官方驱动是基于ST公司的专有协议进行设计和开发的,所以不同的ST-Link调试器或者版本,可能需要使用不同的驱动程序。因此,用户在选择和使用ST-Link官方驱动时,需要仔细阅读官方文档,并选择与自己使用的ST-Link调试器相对应的驱动程序,以保证调试器的正常工作。 ### 回答3: ST-Link官方驱动是STMicroelectronics公司提供的USB驱动程序,主要用于连接ST-Link调试器和MCU进行调试和编程。驱动包括了USB驱动程序和调试器的固件更新程序两部分,通过这些程序可以实现与各种不同型号和系列的STMicroelectronics微控制器的连接,包括STM8、STM32等系列。 ST-Link调试器是一种高效的编程工具,可以支持多种MCU的调试需求,同时与多种开发环境兼容。除此之外,ST-Link官方驱动还支持多种操作系统,包括Windows、Linux和MAC OS等,易于使用和维护。 通过安装官方驱动,用户可以实现与ST-Link调试器的连接,便于进行程序的调试和编程工作。同时,官方驱动还支持各种开发环境,包括IAR、Keil、Eclipse等,方便用户使用所熟悉的编程环境进行调试工作。 总体来说,ST-Link官方驱动是一种高效、稳定的USB驱动程序,为STMicroelectronics微控制器的调试和编程提供了强大的支持。无论是各种型号和系列的MCU还是各种开发环境,都可以通过ST-Link官方驱动轻松实现连接和调试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值