开发指导
使用场景
用户需要了解当前系统运行的时间以及Tick与秒、毫秒之间的转换关系等。
功能
Huawei LiteOS的时间管理提供下面几种功能,接口详细信息可以查看API参考。
功能分类 |
接口名 |
描述 |
---|---|---|
时间转换 |
LOS_MS2Tick |
毫秒转换成Tick |
LOS_Tick2MS |
Tick转化为毫秒 |
|
时间统计 |
LOS_CyclePerTickGet |
每个Tick多少Cycle数 |
LOS_TickCountGet |
获取自系统启动以来的Tick数 |
|
LOS_GetCpuCycle |
获取自系统启动以来的Cycle数 |
|
LOS_CurrNanosec |
获取自系统启动以来的纳秒数 |
|
延时管理 |
LOS_Udelay |
以us为单位的忙等,但可以被优先级更高的任务抢占 |
LOS_Mdelay |
以ms为单位的忙等,但可以被优先级更高的任务抢占 |
时间管理错误码
时间转换存在出错的可能性,需要返回对应的错误码,以便快速定位错误原因。
序号 |
定义 |
实际数值 |
描述 |
参考解决方案 |
---|---|---|---|---|
1 |
LOS_ERRNO_TICK_CFG_INVALID |
0x02000400 |
无效的系统Tick配置 |
在板级配置适配时配置有效的系统主时钟频率OS_SYS_CLOCK,通过make menuconfig配置有效的LOSCFG_BASE_CORE_TICK_PER_SECOND |
2 |
LOS_ERRNO_TICK_NO_HWTIMER |
0x02000401 |
暂不使用该错误码 |
- |
3 |
LOS_ERRNO_TICK_PER_SEC_TOO_SMALL |
0x02000402 |
暂不使用该错误码 |
- |
开发流程
时间管理的典型开发流程:
- 根据实际需求,在板级配置适配时确认是否使能LOSCFG_BASE_CORE_TICK_HW_TIME宏选择外部定时器,并配置系统主时钟频率OS_SYS_CLOCK(单位Hz)。OS_SYS_CLOCK的默认值基于硬件平台配置。
- 通过make menuconfig配置LOSCFG_BASE_CORE_TICK_PER_SECOND,配置项的菜单路径为:Kernel ---> Basic Config ---> Task。
配置项
含义
取值范围
默认值
依赖
LOSCFG_BASE_CORE_TICK_PER_SECOND
每秒Tick数
(0, 1000]
100
无
- 调用时钟转换/统计接口。