Zephyr下计算耗时

Posted 17岁boy想当攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zephyr下计算耗时相关的知识,希望对你有一定的参考价值。

Zephyr下有两个时间特点:

  1. 32位硬件时钟是一个高精度计数器,可以跟踪若干个周期时间,但这个周期不能指定单位。一个周期的持续时间取决于内核使用的电路板硬件,通常以纳秒为单位进行测量。
  2. 64位系统时钟是一个计数器,用于跟踪自内核初始化以来已经过的tick数。tick的持续时间是可配置的,通常范围从1毫秒到100毫秒,同时它也可以获取32位的
     

获取32位的硬件时钟函数是:

uint32_t k_cycle_get_32();

获取64/32位系统时钟

uint64_t k_uptime_get();
uint32_t k_uptime_get_32()

计算耗时:

高精度

uint32_t start_time = k_cycle_get_32();
/*
    run core
*/
uint32_t stop_time = k_cycle_get_32();
uint32_t time_ = stop_time - start_time;

系统时钟

uint64_t start_time = k_uptime_get();
/*
run core...
*/

uint64_t stop_time = k_uptime_delta(&start_time);

注意高精度是纳秒,系统时钟是毫秒

以上是关于Zephyr下计算耗时的主要内容,如果未能解决你的问题,请参考以下文章

教你3个python「性能分析」工具,再也不用自己计算函数耗时了

Zephyr下使用TFLite进行语音识别

Zephyr BLE:一个 GATT 客户端可以连接到多个 GATT 服务器吗

Zephyr学习开发环境搭建

Zephyr out of tree board

Zephyr的TimeTimersleep