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

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

3天内不再提示

如何实现工业伺服系统应用中实时性能的可视化与评估

瑞萨嵌入式小百科 来源:瑞萨嵌入式小百科 2026-05-22 14:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在工业伺服系统中,控制环路对确定性、实时性和执行效率有极高要求。RZ/T2M采用的Arm Cortex‑R52内核集成了PMU(性能监控单元),可实现伺服应用中实时性能的可视化与评估。本文介绍如何通过IAR I-jet和IAR Embedded Workbench for Arm(C-SPY)的Performance Monitoring功能,利用PMU在不影响系统实时性的情况下采集硬件级性能数据,并对方案性能进行分析和调试。本文以Renesas RZ/T2M(Cortex-R52)为例,给出使用环境、配置要点与典型的测量流程,同时提供与Profiling、Trace其它调试工具的选型建议,便于用户快速展开性能评估与优化的工作。

在Arm MPU的嵌入式系统里,“能跑”只是及格线;工业控制与实时系统更关心的是“跑得稳不稳、跑得快不快、关键时刻会不会掉链子”。因此除了功能正确,工程上还需要量化评估程序执行时间、CPU资源利用率,以及关键实时路径是否满足时序约束。把问题说得更直白一点:当客户问“为什么这版感觉更慢?”时,我们需要的不是“感觉”,而是可以复现、可对比的数字。通常重点会落在:

程序执行时间是否可预测

CPU资源是否被高效利用

实时路径是否满足时序约束

IAR I-jet的Performance Monitoring功能基于Arm内核内置的PMU(Performance Monitoring Unit,性能监控单元)。它更像一块“硬件级计步器”:不需要在代码里插桩,也尽量不改变程序的步伐,就能给出CPU周期与关键事件计数等量化数据。通过C-SPY的Performance Monitoring窗口,工程师可以快速完成测量与对比分析,为调试和优化提供依据。

1. 功能概述:基于PMU的性能监控

性能监控功能利用Arm内核内部的PMU硬件模块,在程序运行过程中对处理器关键事件进行计数统计,包括但不限于:

指令执行相关事件

CPU时钟周期消耗

架构定义的硬件事件触发次数

与传统的源代码插桩方式不同,PMU基于处理器硬件计数器工作,通常不会对代码逻辑或执行流程造成明显干扰。这些数据常用于:

评估代码执行效率

对比不同算法或实现方式的性能差异

定位性能瓶颈所在的代码区间

统计结果可通过C-SPY的Performance Monitoring窗口完成配置与可视化展示。

2. 使用PMU的前提条件与限制

2.1 处理器要求

目标Arm内核必须支持PMU

(Performance Monitoring Unit,性能监控单元)

并非所有Arm内核或器件都具备该功能

一般来说,以下内核支持PMU:

Cortex-A

Cortex-R

部分Cortex-M(例如Cortex-M7)

如下图所示,在Renesas RZ/T2M平台上,Cortex-R52内核原生支持PMU功能。

b7d1c394-4f4a-11f1-90a1-92fbcf53809c.png

2.2 调试器与驱动要求

需要使用支持PMU的C-SPY调试驱动

并非所有C-SPY driver都提供该能力

IAR I-jet调试探针支持PMU性能监控

3. PMU计数器与事件类型

PMU的核心机制是事件计数器(Event Counters):

每个计数器可配置为统计一种特定事件

事件类型由Arm架构定义

典型事件类别包括:

CPU时钟周期相关事件

指令执行相关事件

架构定义的PMU硬件事件

事件的选择、启停与数据显示可通过Performance Monitoring窗口集中管理。关于事件的具体描述可以参考Arm的内核手册“ArmCortex-R52 ProcessorTechnical Reference Manual”中12.6章节Events相关的内容。

比如BUS_CYCLES事件主要反映的是CPU因总线接口(AXI)被占用而被迫等待的时钟周期。BUS_CYCLES ≈ CPU访问内存或者外设,在“总线层”上花掉的时间,它不是cache,也不是纯指令,而是介于CPU和内存或者外设之间的那一层性能。

再比如STALL_FRONTEND事件是表示CPU想执行代码,但无法从前端拿到指令,无法解码从而产生的时延;STALL_BACKEND事件是指令已经获取并准备执行,但后端因为等待资源或者数据而执行不了从而产生的时延。

Events数量多达上百个,通常要组合多个事件一起去分析程序性能瓶颈或者问题。由于篇幅有限在此不展开讨论。以后有机会结合实际的案例再另行介绍。

4. 工具选型比较:

PMU vs Profiling vs Trace

4.1 工程维度对比数据粒度与信息量

维度 PMU Profiling Trace
数据类型 数值型 统计型 时序型/
事件流
信息量 极低 中等 极高
是否有
执行路径
部分

结论(信息越来越多,代价也往往越大):

PMU:给你“结果”(总量/计数)

Profiling:给你“分布”(函数级热点)

Trace:给你“全过程”(执行路径/事件流)

4.2 对系统实时性的影响

(选型时最容易被“忽略”的硬指标)

维度 PMU Profiling Trace
对程序执行
影响
影响:低 影响:中 影响:高
是否适合
实时系统
适用性:高 适用性:
视场景而定
适用性:低(可能改变系统行为)

建议:对于实时敏感路径的定量测量,优先采用PMU计数方式;在需要函数级分布时再使用Profiling;当需要完整执行路径或定位偶发问题时再考虑Trace,并评估其对系统行为的影响。

5. 操作示例(RZ/T2M示例)

5.1 环境准备

目标器件:Renesas RZ/T2M(Cortex-R52,支持PMU)

调试探针:IAR I-jet(需支持PMU相关调试功能)

开发环境:IAR Embedded Workbench for Arm(C-SPY)

C-SPY驱动:需支持Performance Monitoring(PMU)

5.2 使用PMCCNTR测量执行周期

说明:以下流程以断点方式测量两个断点之间的CPU cycle数(PMCCNTR)。不同项目的CPU时钟配置、缓存与中断状态会影响结果,建议在固定测试条件下对比分析。

一种典型的执行时间测量方法如下:

1. 在待测代码段的起始和结束位置设置断点

bb2e08ae-4f4a-11f1-90a1-92fbcf53809c.png

2. 运行程序并停在第一个断点

bb8ae380-4f4a-11f1-90a1-92fbcf53809c.png

3. 通过I-jet菜单启用Performance Monitoring

bbe8905c-4f4a-11f1-90a1-92fbcf53809c.png

4. 在Performance Monitoring窗口使能性能监测的功能

bc41dcd4-4f4a-11f1-90a1-92fbcf53809c.png

5. 手动将PMCCNTR(周期计数寄存器)清零

bc9f2b96-4f4a-11f1-90a1-92fbcf53809c.png

运行程序直到调试器停在第二个断点处,然后查看PMCCNTR的值,就可以获得两个断点之间的代码的精准的运行时长,PMCCNTR每加1对应一个CPU clock cycle,根据CPU的Clock参数可以换算出这一段代码的运行时长。

bcfb8eea-4f4a-11f1-90a1-92fbcf53809c.png

6. PMU与调试宏结合调试的案例

PMU还可以与IAR的调试宏(Debug Macro)相结合,提高调试效率。

cycle.mac宏文件示例内容如下:

Dump1() {
__message"P1=",#PMCCNTR;
}
Dump2() {
__message"P2=",#PMCCNTR;
}

1. 在EWARM环境设置这个调试宏文件,如下图中所示。

bd5785d8-4f4a-11f1-90a1-92fbcf53809c.png

2. 调试的时候通过I-jet连接rzt2m。

3. 在需要调试的工程代码中设置断点,并编辑断点触发的条件,同时把上面macro文件对应的函数功能填入Expression表达式中,如下图所示:在hal_entry.c文件中的第197行插入一个断点,并把Dump1()设置为Expression。

bdb13ce0-4f4a-11f1-90a1-92fbcf53809c.png

同样的方法在hal_entry.c文件中第198行代码中,设置同样的断点并且把Dump2()设置到对应的Expression中去。

4. 运行程序

5. 当断点触发时,以下信息会输出到IAR EWARM Debug Log窗口中:读取PMCCNTR并将其数值输出到调试日志窗口。

beacda32-4f4a-11f1-90a1-92fbcf53809c.png

PMCCNTR是性能监视器周期计数寄存器(Performance Monitors Cycle Count Register)。该示例宏文件在断点发生时读取该寄存器的数值。

虽然通过I-jet读取的值在绝对精度上可能存在微小偏差,但在:

性能趋势分析

不同版本对比

问题定位阶段

依然具有非常高的工程参考价值。

7.如何使用IAR I-jet调试器启用ETM Trace

本文重点是介绍cortex-R52内核的PMU单元的工作机理,既然提到与Trace的对比,那这里附赠一个彩蛋也给读者说明一下如何使用IAR I-jet调试器的ETM Trace的功能。

步骤1:将I-jet连接在开发板和主机PC之间。

步骤2:启动EWARM项目,并从I-jet选项卡中选择“ETM Trace”

bf09535c-4f4a-11f1-90a1-92fbcf53809c.png

步骤3:ETM Trace窗口打开,下图是已启用ETM Trace并获取到跟踪信息的状态

bf695dec-4f4a-11f1-90a1-92fbcf53809c.png

步骤4:在ETM Trace窗口上右键点击,会打开以下菜单。如果选择clear,跟踪信息将被清除。在此状态下运行,可以获取到下一次中断为止的跟踪信息。ETM Trace有一个跟踪缓冲区。因此,可以获取缓冲区大小范围内的跟踪信息,旧信息将被覆盖。

bfc0b4c0-4f4a-11f1-90a1-92fbcf53809c.png

但是,可以通过“I-jet tab -> ETM Trace settings...”菜单进行更改。如果勾选下图中的”stop on buffer full”设置,ETM Trace将在缓冲区满时停止,不会覆盖旧信息。

c01bdeae-4f4a-11f1-90a1-92fbcf53809c.png

8. 总结

基于PMU的IAR I-jet Performance Monitoring为Renesas Arm-based MPU提供了一种高精度、低侵入、工程可落地的性能分析手段。对于实时与性能敏感系统,建议将PMU作为性能分析的首选工具,以获得可重复的量化数据,为优化与问题定位提供依据。对于实时和性能敏感系统来说,PMU往往是性能分析的第一步,也是最安全的一步。在不显著破坏系统时序的前提下,工程师可以获得可信的cycle与事件计数数据,用于版本性能对比、编译选项评估以及关键路径优化验证。

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

    关注

    5212

    文章

    20762

    浏览量

    338622
  • 瑞萨
    +关注

    关注

    38

    文章

    22542

    浏览量

    91684
  • MPU
    MPU
    +关注

    关注

    0

    文章

    465

    浏览量

    51629
  • PMU
    PMU
    +关注

    关注

    1

    文章

    128

    浏览量

    23461

原文标题:总感觉MPU跑不快?试试这个“体检大法”

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VirtualLab Fusion应用:3D系统可视化

    描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因
    发表于 04-30 08:47

    网络多电机伺服系统监控终端设计

    在多电机伺服系统的调试及使用过程,需要实时获取系统运行时各个电机和负载的运行状态数据,并通过对相应数据的分析进行控制器参数的整定和故障判断。而在传统的基于CAN总线的多电机
    发表于 06-23 07:15

    3D系统可视化

    本身的深入描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化
    发表于 03-30 09:25

    基于无线的应急现场可视化协作系统设计

    的BYOD应用环境,从而实现随时、随地、随心地跨网络、跨系统、跨设备的应急现场实时再现、可视化沟通与协作,达到应急快速响应、无障碍联动协作、远程应急指挥和决策等。
    发表于 07-26 18:10

    可视化MES系统软件

    和客户都会造成损失,为了更好的满足客户需求、实现企业信息,目前企业制造过程主要还存在以下需求:(1)数据可视化方面。MES系统软件之所以
    发表于 11-30 19:55

    可视化电子看板系统的岗位需求

    系统 是一个可视化管理的工具,让管理人员更直观的了解实时生产情况,控制了有些工序的生产速度和数量,不是传统的生产得越多越好,使得库存控制在一个能满足客户需求的合理水平,但并不是有些人道听途说的零库存。在
    发表于 10-19 20:07

    基于STM的可视化门禁系统

    基于STM的可视化门禁系统
    发表于 03-07 09:49

    基于stm的可视化门禁系统

    基于stm的可视化门禁系统
    发表于 03-11 09:23

    三维可视化的应用和优势

    ,为此三维可视化运维系统登场了。  三维可视化的应用  宏观场景可视化:在特定的环境对随着时间推移而不断变化的目标实体进行检测,可以直观、
    发表于 12-02 11:52

    VegaGIS可视化系统的设计和实现

    针对跨平台多层体系结构的GIS系统要求,设计一种GIS可视化系统架构。该构架实现了GIS可视化系统
    发表于 04-10 09:04 16次下载

    伺服系统什么意思_伺服系统的作用是什么

    本文主要介绍什么是伺服系统,首先介绍了伺服系统的结构及特点,其次介绍了伺服系统作用、分类及性能要求和参数,最后阐述了伺服系统的发展趋势。
    发表于 04-28 17:08 3.6w次阅读

    管线可视化管理怎么实现呢?

    无论是城市管线还是社区,商场,大厦里的管线,想要实时检测到管线的情况怕是有难度。如何通过物联网和互联网技术实现管线可视化管理是解决问题的根本。 智慧电力可视化
    发表于 03-11 14:36 1726次阅读

    伺服系统智能发展趋势

    (通常是电信号)来调整输出,以实现精确的位置、速度或力控制。在工业自动领域,伺服系统广泛应用于机器人、数控机床、包装机械等设备。 2.
    的头像 发表于 12-10 10:27 1625次阅读

    工业设备数据集中监控可视化管理平台是什么

    工业设备数据集中监控可视化管理平台是一种用于整合、监控和可视化工业设备数据的综合性系统,旨在帮助企业实现设备数据的集中管理、
    的头像 发表于 05-06 11:10 1266次阅读

    工业设备可视化管理系统是什么

    工业设备可视化管理系统是一种基于物联网(IoT)、大数据、云计算、数字孪生等技术,对工业设备的运行状态、性能参数、维护信息等进行
    的头像 发表于 05-27 14:56 1399次阅读
    <b class='flag-5'>工业</b>设备<b class='flag-5'>可视化</b>管理<b class='flag-5'>系统</b>是什么