当前位置:网站首页>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头文件访问的。
边栏推荐
- Experience sharing of system architecture designers in preparing for the exam: the direction of paper writing
- Deep understanding of MySQL lock and transaction isolation level
- Ros2 topic (03): the difference between ros1 and ros2 [02]
- 2022 届的应届生都找到工作了吗?做自媒体可以吗?
- Dynamics 365 find field filtering
- [compilation principle] lexical analysis design and Implementation
- Mysql索引优化实战一
- Inftnews | the wide application of NFT technology and its existing problems
- V-for traversal object
- Cloud native data warehouse analyticdb MySQL user manual
猜你喜欢

B_ QuRT_ User_ Guide(36)

UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)
![给出一个数组,如 [7864, 284, 347, 7732, 8498],现在需要将数组中的数字拼接起来,返回「最大的可能拼出的数字」](/img/21/2e99dd6173ab4925ec22290cd4a357.png)
给出一个数组,如 [7864, 284, 347, 7732, 8498],现在需要将数组中的数字拼接起来,返回「最大的可能拼出的数字」

2022第六季完美童模陕西总决赛圆满落幕

RE1 attack and defense world reverse

Wechat forum exchange applet system graduation design completion (6) opening defense ppt

2021ICPC上海 H.Life is a Game Kruskal重构树

LDO穩壓芯片-內部框圖及選型參數

Wechat forum exchange applet system graduation design completion (1) development outline

Oracle-数据库的备份与恢复
随机推荐
B_QuRT_User_Guide(39)
包装行业智能供应链S2B2B商城解决方案:开辟电商消费新生态
CXF call reports an error. Could not find conduct initiator for address:
MATLAB signal processing [Q & A essays · 2]
聊聊支付流程的设计与实现逻辑
The 19th Zhejiang Provincial College Programming Contest VP record + supplementary questions
建筑建材行业SRM供应商云协同管理平台解决方案,实现业务应用可扩展可配置
云原生数据仓库AnalyticDB MySQL版用户手册
One week learning summary of STL Standard Template Library
Wechat forum exchange applet system graduation design completion (8) graduation design thesis template
伸展树(一) - 图文解析与C语言实现
Count the top 10 films at the box office and save them in another file
Cloud native data warehouse analyticdb MySQL user manual
Tree background data storage (using webmethod) [easy to understand]
成年人只有一份主业是要付出代价的,被人事劝退后,我哭了一整晚
Technology at home and abroad people "see" the future of audio and video technology
Matlab 信号处理【问答随笔·2】
The text editor of markdown class should add colors to fonts (including typora, CSDN, etc.)
System design overview
深入理解Mysql锁与事务隔离级别