这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » FreeRTOS获取运行时间戳

共1条 1/1 1 跳转至

FreeRTOS获取运行时间戳

工程师
2026-03-02 23:19:28     打赏

一、FreeRTOS获取运行时间戳是指获取系统运行时间(相对时间):基于 tick 计数或运行时间统计。

  1. 使用 xTaskGetTickCount(),FreeRTOS 内核维护一个 tick 计数器,每次 tick 中断自增 1。

  2. 核心 API:TickType_t xTaskGetTickCount( void );

转换为毫秒:

FreeRTOSConfig.h 中定义了 configTICK_RATE_HZ(tick 频率)

毫秒计算公式:

TickType_t tick = xTaskGetTickCount();
uint32_t ms = tick * (1000 / configTICK_RATE_HZ);

二、使用运行时间统计(Run Time Stats)

如果需要更高精度(微秒级),FreeRTOS 提供运行时间统计功能。

步骤:

(1)在 FreeRTOSConfig.h 中启用:

#define configGENERATE_RUN_TIME_STATS 1
#define configUSE_STATS_FORMATTING_FUNCTIONS 1

(2)提供一个高精度计数器

需要实现两个宏:

#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()   // 初始化定时器
#define portGET_RUN_TIME_COUNTER_VALUE()           // 返回当前计数值

通常使用硬件定时器(如 1MHz)

(3)获取运行时间

uint32_t runtime = portGET_RUN_TIME_COUNTER_VALUE();

(4)也可用 FreeRTOS 提供的统计 API

vTaskGetRunTimeStats()
ulTaskGetRunTimeCounter()
ulTaskGetIdleRunTimeCounter()





关键词: FreeRTOS     运行时间戳    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]