当前位置:网站首页>B_QuRT_User_Guide(38)
B_QuRT_User_Guide(38)
2022-07-07 21:52:00 【weixin_38498942】
B_QuRT_User_Guide(38)
24 Performance Monitor
线程使用性能监控器在用户程序执行期间实时测量代码性能。
性能监控单元(PMU)是Hexagon处理器的一个硬件功能。它是通过访问一组专用的处理器寄存器来控制的。
性能监测器在QuRT中通过以下操作进行控制。- qurt_pmu_enable()
- qurt_pmu_get()
- qurt_pmu_set()
- Macros
24.1 qurt_pmu_enable()
24.1.1 功能文档
24.1.1.1 void qurt_pmu_enable ( int enable )
启用或禁用Hexagon处理器性能监控单元(PMU)。默认情况下,剖析功能是禁用的。
默认情况下禁用。
注意:启用剖析并不自动重置计数寄存器–必须在开始事件计数之前明确进行。
参数
返回值
None.
依赖项
None.
24.2 qurt_pmu_get()
24.2.1 功能文档
24.2.1.1 unsigned int qurt_pmu_get ( int reg_id )
获取PMU寄存器。
返回指定PMU寄存器的当前值。
参数
返回值
Integer - 指定PMU寄存器的当前值。
依赖项
None.
24.3 qurt_pmu_set()
24.3.1 功能文档
24.3.1.1 void qurt_pmu_set ( int reg_id, unsigned int reg_value )
设置指定的PMU寄存器的值。
注意:设置PMUEVTCFG会自动清除PMU寄存器PMUCNT0到PMUCNT3。
参数
返回值
None.
依赖项
None.
25 Error Results
QuRT函数以两种方式之一返回错误结果。
- 作为函数的结果值
- 作为传递给用户定义的异常处理程序的值
QuRT为错误结果值定义了一组标准符号。本节列出了这些符号和它们相应的值。
26 Function Tracing
QuRT支持函数追踪以协助调试程序。- qurt_trace_changed()
- qurt_trace_get_marker()
- qurt_etm_set_pc_range()
- qurt_etm_set_atb()
- qurt_stm_trace_set_config() - 数据类型
- 宏指令
26.1 qurt_trace_changed()
26.1.1 功能文档
26.1.1.1 int qurt_trace_changed ( unsigned int prev_trace_marker, unsigned int trace_mask )
确定特定的内核事件是否已经发生。
返回一个值,表示自从获得指定的内核跟踪标记后,指定的内核事件是否被记录在内核跟踪缓冲区中。
prev_trace_marker参数指定的是通过调用qurt_trace_get_marker()获得的内核跟踪标记。
注意。
与qurt_trace_get_marker()一起使用,该函数确定某些内核事件是否发生在一个代码块中。
这个函数不能确定特定的内核事件类型是否已经发生,除非该事件类型在系统配置文件的trace_mask元素中被启用。
QuRT只支持记录中断和上下文切换事件(如trace_mask值为0x3)。
参数
返回值
1 - 自从获得指定的跟踪标记以来,已经发生了指定类型的内核事件。
0 - 自从获得指定的跟踪标记后,没有发生指定类型的内核事件。
依赖项
None.
26.2 qurt_trace_get_marker()
26.2.1 功能文档
26.2.1.1 unsigned int qurt_trace_get_marker ( void )
获取内核跟踪标记。
返回内核跟踪标记的当前值。该标记由一个硬件线程标识符和内核跟踪缓冲区的索引组成。跟踪缓冲区记录了各种内核事件。
注意:将此函数与qurt_trace_changed()一起使用可以确定某些内核事件是否发生在一个代码块中。
返回值
Integer - 内核跟踪标记。
依赖项
None.
26.3 qurt_etm_set_pc_range()
26.3.1 功能文档
26.3.1.1 unsigned int qurt_etm_set_pc_range ( unsigned int range_num, unsigned int low_addr, unsigned int high_addr )
设置用于ETM过滤的PC地址范围。根据Hexagon核心设计,最多可支持四个PC范围。
参数
返回值
QURT_ETM_SETUP_OK - 成功。
QURT_ETM_SETUP_ERR - 失败。
依赖项
None.
26.4 qurt_etm_set_atb()
26.4.1 功能文档
26.4.1.1 unsigned int qurt_etm_set_atb ( unsigned int flag )
设置ATB总线的状态,以通知QuRT ATB总线被主动启用或禁用。QuRT执行
在低功率管理下执行相应的动作。
参数
返回值
QURT_ETM_SETUP_OK - 成功。
QURT_ETM_SETUP_ERR - 失败
依赖项
None.
26.5 qurt_stm_trace_set_config()
26.5.1 功能文档
26.5.1.1 unsigned int qurt_stm_trace_set_config ( qurt_stm_trace_info_t ∗ stm_config_info )
设置一个STM端口用于追踪事件。
参数
返回值
QURT_EOK - 成功。
QURT_EINVALID - 失败;可能是因为通过的端口地址不在页面表中。
依赖项
None.
26.6 Data Types
本节介绍了函数追踪服务的数据类型。
26.6.1 Data Structure Documentation
26.6.1.1 struct qurt_stm_trace_info_t
26.7 Macros
STM跟踪信息。
26.7.1 Define Documentation 26.7.1.1 #define QURT_ETM_SETUP_OK 0
ETM setup OK.
26.7.1.2 #define QURT_ETM_SETUP_ERR 1
ETM setup error.
26.7.1.3
ATB off.
26.7.1.4
ATB on.
26.7.1.5 #define QURT_TRACE( str, … ) VA_ARGS
函数追踪是通过一个调试宏(QURT_TRACE)实现的,它可以选择生成printf
语句,在每个作为宏参数传递的函数调用之前和之后都会产生。例如,源代码中的以下宏调用:
QURT_TRACE(myfunc, my_func(33))
产生以下调试输出:
myfile:nnn: my_func >>> calling my_func(33)
myfile:nnn: my_func >>> returned my_func(33)
调试输出包括函数调用的源文件和行号,以及调用本身的文本。编译客户源文件时,对其文件名定义了-D FILENAME。
调试输出是使用库中的函数qurt_printf生成的。符号QURT_DEBUG控制调试输出的生成。如果没有定义这个符号,就不会生成函数跟踪。
注意:调试宏是通过QuRT API头文件访问的。
边栏推荐
- Wechat forum exchange applet system graduation design completion (6) opening defense ppt
- Unity3d Learning Notes 6 - GPU instantiation (1)
- Oracle database backup and recovery
- 系统设计概述
- [compilation principle] lexical analysis design and Implementation
- Gee (III): calculate the correlation coefficient between two bands and the corresponding p value
- js 获取对象的key和value
- V-for traversal object
- PCI-Express接口的PCB布线规则
- 电子设备行业智能供应链协同平台解决方案:解决低效, 赋能产业数字化升级
猜你喜欢
JS get the key and value of the object
2021ICPC上海 H.Life is a Game Kruskal重构树
Wechat forum exchange applet system graduation design completion (7) Interim inspection report
成年人只有一份主业是要付出代价的,被人事劝退后,我哭了一整晚
Ros2 topic (03): the difference between ros1 and ros2 [02]
B / Qurt Utilisateur Guide (36)
Wechat forum exchange applet system graduation design completion (1) development outline
家用电器行业渠道商协同系统解决方案:助力家电企业快速实现渠道互联网化
ArcGIS: two methods of attribute fusion of the same field of vector elements
UE4_ Use of ue5 blueprint command node (turn on / off screen response log publish full screen display)
随机推荐
Force deduction solution summary 648 word replacement
ArcGIS: two methods of attribute fusion of the same field of vector elements
Spark 离线开发框架设计与实现
System design overview
USB (XV) 2022-04-14
V-for traversal object
FreeLink开源呼叫中心设计思想
Wechat forum exchange applet system graduation design completion (6) opening defense ppt
B_QuRT_User_Guide(40)
Unity3d Learning Notes 6 - GPU instantiation (1)
LM12丨Rolling Heikin Ashi二重K线滤波器
云原生正在吞噬一切,开发者该如何应对?
UE4_UE5结合罗技手柄(F710)使用记录
树后台数据存储(採用webmethod)[通俗易懂]
Specific method example of V20 frequency converter manual automatic switching (local remote switching)
Installing spss25
Archlinux install MySQL
MySQL Index Optimization Practice I
海内外技术人们“看”音视频技术的未来
648. Word replacement