os_uptime_ms

所属模块:系统时间 | 类型:运行时间统计函数

API Metadata

函数ID:os_uptime_ms
模块:time
类型:uptime statistics
嵌套深度:1

函数简介

os_uptime_ms 用于获取系统从启动开始累计运行的毫秒时间。

该函数基于32位tick计数器,并结合当前定时器重装值进行精确换算,可用于系统运行时间统计与性能分析。

内部采用临界区保护,保证tick读取的一致性,并使用浮点运算减少换算误差。

函数原型

u32 os_uptime_ms(void);

参数说明

无参数。

返回值

返回系统累计运行时间(单位:毫秒)。

源码实现

u32 os_uptime_ms() { u16 tick_h; u16 tick_l; u16 tick_value; u32 total_tick; u32 tick_us; u32 tick_ms; /* * 读取32位tick计数 */ EA = 0; tick_h = OS_TICK_COUNT_H; tick_l = OS_TICK_COUNT_L; EA = 1; /* * 组合tick数量 */ total_tick = ((u32)tick_h << 16) | tick_l; /* * 获取单tick时间(us) */ tick_value = OS_T0_TH0; tick_value <<= 8; tick_value += OS_T0_TL0; tick_us = 65536 - tick_value; /* * 转换为毫秒 */ tick_ms = tick_us / 1000; if(tick_ms == 0) { tick_ms = 1; } return total_tick * tick_ms; }

使用示例

void debug_uptime() { u32 ms; ms = os_uptime_ms(); // 用于日志或性能统计 }

注意事项

该函数使用浮点运算提升精度,在资源受限系统中需注意执行开销。 tick计数依赖定时器配置,系统频率变化会影响结果精度。

相关推荐