ESP32-性能监控笔记

发布者:CrystalBreeze最新更新时间:2025-09-10 来源: cnblogs关键字:ESP32  性能监控 手机看文章 扫描二维码
随时随地手机看文章

基于ESP-IDF4.1


 1 #include

 2 #include

 3 #include

 4 #include 'esp_timer.h'

 5 #include 'esp_log.h'

 6 #include 'esp_sleep.h'

 7 #include 'sdkconfig.h'

 8 

 9 #include 'perfmon.h'

10 

11 static const char* TAG = 'example';

12 

13 static void exec_test_function(void *params)

14 {

15     for (int i = 0 ; i < 100 ; i++) {

16         __asm__ __volatile__('   nop');

17     }

18 }

19 

20 //具有专用性能计数器的表

21 static uint32_t pm_check_table[] = {

22     XTPERF_CNT_CYCLES, XTPERF_MASK_CYCLES, // 周期合计

23     XTPERF_CNT_INSN, XTPERF_MASK_INSN_ALL, // 指令合计

24     XTPERF_CNT_D_LOAD_U1, XTPERF_MASK_D_LOAD_LOCAL_MEM, // 内存读取

25     XTPERF_CNT_D_STORE_U1, XTPERF_MASK_D_STORE_LOCAL_MEM, // 内存写入

26     XTPERF_CNT_BUBBLES, XTPERF_MASK_BUBBLES_ALL &(~XTPERF_MASK_BUBBLES_R_HOLD_REG_DEP),  // 等待其他原因

27     XTPERF_CNT_BUBBLES, XTPERF_MASK_BUBBLES_R_HOLD_REG_DEP,           // 等待寄存器依赖

28     XTPERF_CNT_OVERFLOW, XTPERF_MASK_OVERFLOW,               // 最后一个测试周期

29 };

30 

31 #define TOTAL_CALL_AMOUNT 200

32 #define PERFMON_TRACELEVEL -1 // -1 - 忽略跟踪级别

33 

34 void app_main(void)

35 {

36     ESP_LOGI(TAG, 'Start');

37     ESP_LOGI(TAG, 'Start test with printing all available statistic');

38     xtensa_perfmon_config_t pm_config = {};

39     pm_config.counters_size = sizeof(xtensa_perfmon_select_mask_all) / sizeof(uint32_t) / 2;

40     pm_config.select_mask = xtensa_perfmon_select_mask_all;

41     pm_config.repeat_count = TOTAL_CALL_AMOUNT;

42     pm_config.max_deviation = 1;

43     pm_config.call_function = exec_test_function;

44     pm_config.callback = xtensa_perfmon_view_cb;

45     pm_config.callback_params = stdout;

46     pm_config.tracelevel = PERFMON_TRACELEVEL;

47     xtensa_perfmon_exec(&pm_config);

48 

49     ESP_LOGI(TAG, 'Start test with user defined statistic');

50     pm_config.counters_size = sizeof(pm_check_table) / sizeof(uint32_t) / 2;

51     pm_config.select_mask = pm_check_table;

52     pm_config.repeat_count = TOTAL_CALL_AMOUNT;

53     pm_config.max_deviation = 1;

54     pm_config.call_function = exec_test_function;

55     pm_config.callback = xtensa_perfmon_view_cb;

56     pm_config.callback_params = stdout;

57     pm_config.tracelevel = PERFMON_TRACELEVEL;

58 

59     xtensa_perfmon_exec(&pm_config);

60 

61     ESP_LOGI(TAG, 'The End');

62 }


关键字:ESP32  性能监控 引用地址:ESP32-性能监控笔记

上一篇:ESP32-任务看门狗笔记
下一篇:ESP32高分辨率计时器笔记

推荐阅读最新更新时间:2026-03-24 23:36

ESP32-性能监控笔记
基于ESP-IDF4.1 1 #include stdio.h 2 #include string.h 3 #include unistd.h 4 #include esp_timer.h 5 #include esp_log.h 6 #include esp_sleep.h 7 #include sdkconfig.h 8 9 #include perfmon.h 10 11 static const char* TAG = example ; 12 13 static void exec_test_function(void *params) 14 { 15 for (int i = 0 ; i
[单片机]
电池堆栈监控器大幅提高混合动力汽车和电动汽车的锂离子电池性能
锂离子(Li-Ion)电池是电动汽车和混合动力汽车的常用储能方法。这些电池可提供的能量密度在所有现有电池技术中是非常高的,但是如果要最大限度地提升性能,必须使用电池监控系统(BMS)。先进的BMS不仅使您能够从电池组中提取大量的电荷,而且还可以以更安全的方式管理充电和放电循环,从而延长使用寿命。ADI公司提供种类齐全的BMS器件组合,专注于精度和稳健的运行。 精确测量电池的充电状态(SOC)可以延长电池运行时间或减轻重量。精密稳定的器件在PCB装配后无需工厂校准。长期稳定性提高了安全性并可避免保修问题。自我诊断功能有助于达到合适的汽车安全完整性等级(ASIL)。电池组是充满电磁干扰(EMI)挑战的环境,因此在设计数据通信链路时
[嵌入式]
电池堆栈<font color='red'>监控</font>器大幅提高混合动力汽车和电动汽车的锂离子电池<font color='red'>性能</font>
监控摄像机的三大技术剖解以及性能测试
视频监控技术要想得更广泛的应用,走上新台阶,解开纠结,必须坚持技术创新、应用创新;突破关键技术;完善评价体系;实现与信息系统的融合。 监控摄像机三大技术剖解 目前民用监控产品中使用的通常有这样几种技术:高灵敏度材料、数字慢快门技术、彩转黑技术、被动红外成像技术等等,因为监控要求和应用场合的不同,所以在实际应用中就出现了不同的应用市场。 高灵敏度材料 使用高灵敏度材料,包括使用高灵敏度光感应材料,超高信噪比信号分析处理器件,信号处理增加一些特殊处理技术等等,以此来提高对光线较低情况下图像采集的还原效果,但是由于成本及考虑体积等方面的原因,这个虽然是最好的方案却仍然很难在短时间内被广泛应用。 目前针对CCD感光元件而言,
[嵌入式]
ADI改进智能电网传输和配电设备的监控和保护性能
Analog Devices, Inc.(ADI),全球领先的高性能信号处理解决方案供应商,最近推出 24 位数据采集片上系统(SoC)产品系列,用于改进智能电网系统内管理电能传输和分配的防护、监控和电能质量测量设备的性能。AD7770实现了性能更高、尺寸更小的保护继电器,而AD7771可帮助电能质量测量设备进行电网早期故障的检测。产品系列中的第三代SoC产品AD7779可确保断路器装置快速上电。AD777x系列的三款产品实现了业界最佳的动态范围和数据输出综合性能,具有八个同步采样通道,可在三相电源应用中测量电流和电压传感器的输出。每个SoC通道在8 kSPS时可达到112-dB的动态范围,从而强化了防护功能以及在单一ADC通
[工业控制]
看全景技术如何提升视频监控性能及效率
通过充分的摄像机监控覆盖来安保大范围面积确实是一大挑战,平移-倾斜-变焦(PTZ)摄像机可能针对这些应用要求无法提供理想的解决方案。PTZ摄像机在某一时刻只能指向一个方向,因此视频数据可能无法包含另一部分覆盖区域在同一时刻所发生的重要事件。与此截然不同的是,全景摄像机提供更为广泛区域的连续监控覆盖,单一的180°或360°全景摄像机可覆盖大范围面积,其所覆盖区域往往需要许多台传统摄像机、多台PTZ摄像机或二者兼用方案才可实现。此外,全景摄像机使用户能够记录整个宽阔的视场范围,同时还可数码变焦放大多个关注区域,如果仅采用一台PTZ摄像机是根本无法做到的。 目前市场上有两种全景摄像机供选择:鱼眼全景摄像机(又称超广角全景摄像
[安防电子]
视频监控服务器性能指标
网络视频服务器产品市场虽不至于象数字硬盘录像机市场那样五花八门、良莠不齐的现状,但实际质量、性能差异性还是比较大的。顾客在购买网络视频服务器之前可以从以下几个产品性能指标进行权衡。 1、保修问题 保修问题是工程商最为关注的问题之一。由于工程商直接面对最终用户,不尽人意的保修服务将直接影响工程商的声誉。一 般的厂商对产品实行一年免费保修。 2、传送标准实时活动图像的实际带宽需求 这是衡量网络视频服务器总体性能的重要指标之一。高带宽意味着网络使用费用的增加,对最终用户而言,这将动摇他们采用数字监控模式的决心,毕竟经济性是任何企业单位都不得不考虑的问题。 由于不同的图像状态(静止、正常活动、高速运动)、图像分辨率、传
[嵌入式]
平安交通监控对摄像机性能的需求有哪些
    如今,说到道路管理,就不能不提到监控摄监控摄像机。随着当前交通压力的增大,单纯依靠交警的能力已很难满足当前暴涨的交管需求,而监控摄像机则在交警的身边发挥着越来越大的作用。最近通州张家湾同一地点十天内连出两起事故的新闻中,我们看到了周边群众对道路监控的期待,这也反映了当前监控设别在我们生活中的重要地位。下面,编辑就跟您一起共同去挑选道路监控摄像机。      哪些技术最主要?     从道路监控的需求特点来说,在复杂的拍摄环境下,能够高智能的识别路况信息,对违法的现象做出迅速的反应,同时保证清晰的成像质量是道路监控工作的基本需求。因此,监控摄像机对成像质量的要求还是非常高的。     清晰度要求    
[安防电子]
动态偏振控制器驱动与性能监控系统设计
1 引 言 偏振是量子光的一个重要和常用的性质。因此,在量子安全通信系统中,经常通过改变偏振态来进行编解码,而动态偏振控制器(DPC)作为一种改变输入光偏振态的光器件,直接参与传输数据的编解码,在量子通信中起着必不可少的作用。而在传统的光纤通信系统中,如何准确控制光纤中的偏振态成为实验的前提和关键,因为这关系着系统的稳定性和数据传输的误码率,采用DPC也是十分有效的办法 。 但是,所有厂家在DPC出厂时并没有给出其重要指标半波电压的具体测量方法,而在实际运用中,半波电压又与给出的标称值不完全一致,导致了使用的不便。因此,在使用DPC时,需要有与之配套的驱动电路和性能监测系统。但是,如果成套购买的话,价格昂贵,在实际的工程开
[嵌入式]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved