【Arm】MDK查看语句的执行累积时间和次数

1、 文档目标

在嵌入式开发过程中,调试阶段需要对代码运行效率进行分析,以便优化程序性能。本文档旨在指导开发者如何利用Keil MDK(Microcontroller Development Kit)中的Execution Profiler功能,在Debug模式下精确地查看工程中某条语句或某段代码的执行累积时间和执行次数。通过该工具,开发者可以快速定位性能瓶颈,避免传统方法(如串口打印或手动计数)带来的额外开销和复杂性。

2、 问题场景

在实际开发中,尤其是针对实时性要求较高的嵌入式系统,开发者常常需要了解某些关键条件判断语句或循环体的执行频率和耗时情况。例如:

● 某个条件分支是否被频繁触发?

● 某段代码的执行时间是否符合预期?

● 是否存在不必要的重复计算或冗余操作?

传统做法是通过插入调试信息(如串口打印)或增加全局变量进行手动统计,但这些方法往往会影响程序的实际运行效率,甚至引入新的错误。此外,手动统计的方式也难以提供准确的时间和频率数据。

为解决上述问题,Keil MDK提供了Execution Profiler功能。该功能允许开发者在Debug模式下直接获取代码的执行时间和调用次数,无需修改代码逻辑,从而大幅提高调试效率和准确性。

3、软硬件环境

1)、软件版本:MDK 5.38a

2)、电脑环境:Windows 11

3)、外设硬件:ULINK pro

4、解决方法

1)、想要使用Execution Profiler功能,有两种方式:

a、选择使用Simulator模式进入Debug模式,使用Execution Profiler功能。(如图4-1-1)

图4-1-1

b、使用ULINK pro仿真器,配置Trace功能,使用Execution Profiler功能。(关于如何配置Trace功能,请查看技术文档中的:Keil MDK Trace功能配置)。

2)、进入到Debug模式下后。找到Debug->Execution Profiling。根据需求选择Show Time(显示执行指令的累积时间)还是Show Calls(显示一条指令执行的频率)。(如图4-2)

图4-2

3)、选择好后,在代码编译窗口和汇编窗口就可以看见相关的信息。如图4-3中显示的就是对应语句的执行累积时间。当鼠标移动到对于数据上面还会直接显示出Time(语句执行的累计时间)、Calls(语句的执行次数)、Average(语句的平均执行时间)。

图4-3


​ 版权声明:本文为亿道电子技术有限公司原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

相关推荐
智购科技无人售货机工厂4 小时前
2026自动售货机防拆机物理安全设计:从安全螺丝到结构互锁的工程实践~YH
android·网络·驱动开发·python·单片机·安全·云原生
jufeng13075 小时前
STM32F103 定时器输入捕获实战:测频测周、编码器测速、红外解码全流程拆解
stm32·输入捕获·定时器·编码器
RedJACK~5 小时前
Windows11一级右键菜单添加Alacritty教程
单片机·嵌入式硬件
智闲电子设计5 小时前
STM32 DAC 实战:用 DMA 把定时器表变成波形,自制信号发生器
stm32·单片机·嵌入式硬件
zcmodeltech5 小时前
反应装置模型控制系统设计与实现:多设备协同联动方案
java·网络·数据库·stm32·嵌入式硬件·能源·制造
一条破秋裤6 小时前
STM32 学习笔记:STM32 简介与学习路线
笔记·stm32·学习
louis.D.6 小时前
CMake + VS Code + J-Link
单片机
电子元器件选型哥7 小时前
组串电流检测和MPPT电流检测,到底有什么区别?
单片机·嵌入式硬件·硬件工程师·电子元器件·器件选型
Freak嵌入式7 小时前
树莓派 Pico GPIO 深度解析:从 MCU 架构到寄存器控制,底层原理与实践指南
java·开发语言·科技·单片机·嵌入式硬件·架构
Freak嵌入式7 小时前
实战对比:用 mpremote/Putty/MobaXterm 连接树莓派 Pico REPL,谁更省心?
java·大数据·开发语言·科技·单片机·嵌入式硬件