当前位置:网站首页>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头文件访问的。
边栏推荐
猜你喜欢
LeeCode -- 6. Z 字形变换
Matlab-SEIR传染病模型预测
Solve the problem of duplicate request resource paths /o2o/shopadmin/o2o/shopadmin/getproductbyid
PCB wiring rules of PCI Express interface
海内外技术人们“看”音视频技术的未来
Inftnews | web5 vs Web3: the future is a process, not a destination
UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)
Unity3D学习笔记6——GPU实例化(1)
UE4_ Use of ue5 blueprint command node (turn on / off screen response log publish full screen display)
Inftnews | the wide application of NFT technology and its existing problems
随机推荐
Count the top 10 films at the box office and save them in another file
Technology at home and abroad people "see" the future of audio and video technology
高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
USB(十四)2022-04-12
在软件工程领域,搞科研的这十年!
生鲜行业数字化采购管理系统:助力生鲜企业解决采购难题,全程线上化采购执行
Wechat forum exchange applet system graduation design completion (1) development outline
Wechat forum exchange applet system graduation design completion (7) Interim inspection report
2021icpc Shanghai h.life is a game Kruskal reconstruction tree
UE4_ Ue5 panoramic camera
城联优品作为新力量初注入,相关上市公司股价应声上涨150%
CXF call reports an error. Could not find conduct initiator for address:
648. Word replacement
LeeCode -- 6. Zigzag transformation
FPGA basics catalog
PCB wiring rules of PCI Express interface
windows设置redis开启自动启动
给出一个数组,如 [7864, 284, 347, 7732, 8498],现在需要将数组中的数字拼接起来,返回「最大的可能拼出的数字」
Coreseek:第二步建索引及測试
【编译原理】词法分析设计实现