鸿蒙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
相关问题
有谁知道ArkTS支持定时器
209浏览 • 1回复 待解决
liteos-m怎么实现进程间的互斥?
4152浏览 • 1回复 已解决
关于LiteOS-M内核一点疑惑
5571浏览 • 1回复 已解决
LiteOS-M如何获取系统当前时间?
5610浏览 • 1回复 待解决
Hi3861用的liteOS-m为啥要固化到ROM中?
10964浏览 • 3回复 待解决
鸿蒙LiteOS 啥关系?
11436浏览 • 1回复 待解决
关于liteos-a的一些问题想请教各位
6579浏览 • 2回复 待解决
华为平板M68.4寸可以升级鸿蒙系统吗
9630浏览 • 1回复 待解决
金立m7能升级鸿蒙系统?
11871浏览 • 1回复 待解决
liteos-a 和鸿蒙2.0有什么区别?
7311浏览 • 1回复 已解决
定时提醒功能如何实现?
3027浏览 • 1回复 待解决
服务的 mysql 密码问题
749浏览 • 0回复 待解决