Zephyr下计算耗时
Posted 17岁boy想当攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zephyr下计算耗时相关的知识,希望对你有一定的参考价值。
Zephyr下有两个时间特点:
- 32位硬件时钟是一个高精度计数器,可以跟踪若干个周期时间,但这个周期不能指定单位。一个周期的持续时间取决于内核使用的电路板硬件,通常以纳秒为单位进行测量。
- 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「性能分析」工具,再也不用自己计算函数耗时了