鸿蒙liteos_m定时器timer问题

1.定时器中宏LOSCFG_BASE_CORE_SWTMR_ALIGN的具体作用是什么?

2.在OsSwtmrStart中

#if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1)

    if ((g_swtmrAlignID[swtmr->usTimerID % LOSCFG_BASE_CORE_SWTMR_LIMIT].canAlign == 1) &&

        (g_swtmrAlignID[swtmr->usTimerID % LOSCFG_BASE_CORE_SWTMR_LIMIT].isAligned == 0)) {

        g_swtmrAlignID[swtmr->usTimerID % LOSCFG_BASE_CORE_SWTMR_LIMIT].isAligned = 1;

        prev = OsSwtmrFindAlignPos(swtmr);

    }

#endif

走了这段处理做了哪些操作。尤其是

prev = OsSwtmrFindAlignPos(swtmr);

3.在OsSwtmrStart结束前如果

swtmr->uwCount == 0意味着什么

鸿蒙
定时器
HarmonyOS
2021-11-19 09:50:15
浏览
收藏 1
回答 2
待解决
回答 2
按赞同
/
按时间
liangkz_梁开祝
3
分享
微博
QQ
微信
回复
2021-11-19 11:30:11
Pulman
3

1.OSCFG_BASE_CORE_SWTMR_ALIGN这个宏定义表示软件定时器对齐用,某些场景需要对齐,默认关闭。

2.函数OsSwtmrStart(swtmr)启动定时器。设置定时器的等待超时时间,并把定时器状态改为计时中。把该定时器插入超时排序链表中。

如果已使能任务调度,则修改过期时间。

3.到期时间自检,为零后,标志对应的周期事件到期。

分享
微博
QQ
微信
回复
2021-11-19 14:17:52
相关问题
HarmonyOS uv timer定时器不准确?
264浏览 • 1回复 待解决
HarmonyOS 定时器API
149浏览 • 1回复 待解决
如何设置组件定时任务和定时器
449浏览 • 1回复 待解决
有谁知道ArkTS支持定时器
2657浏览 • 1回复 待解决
如何通过定时器和画布实现一个时钟
761浏览 • 1回复 待解决
LiteOS-M如何获取系统当前时间?
7909浏览 • 1回复 待解决
liteos-m怎么实现进程间的互斥?
6142浏览 • 1回复 已解决
关于LiteOS-M内核一点疑惑
7692浏览 • 1回复 已解决
Hi3861用的liteOS-m为啥要固化到ROM中?
12773浏览 • 3回复 待解决
鸿蒙LiteOS 啥关系?
13526浏览 • 1回复 待解决
关于liteos-a的一些问题想请教各位
8569浏览 • 2回复 待解决
liteos-a 和鸿蒙2.0有什么区别?
9301浏览 • 1回复 已解决
金立m7能升级鸿蒙系统?
14068浏览 • 1回复 待解决