鸿蒙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_梁开祝
1
分享
微博
QQ
微信
回复
2021-11-19 11:30:11
Pulman
1

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

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

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

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

分享
微博
QQ
微信
回复
2021-11-19 14:17:52
相关问题
LiteOS-M如何获取系统当前时间?
1860浏览 • 1回复 待解决
liteos-m怎么实现进程间的互斥?
1596浏览 • 1回复 已解决
关于LiteOS-M内核一点疑惑
2981浏览 • 1回复 已解决
Hi3861用的liteOS-m为啥要固化到ROM中?
7375浏览 • 3回复 待解决
定时提醒功能如何实现?
619浏览 • 1回复 待解决
鸿蒙LiteOS 啥关系?
7296浏览 • 1回复 待解决
关于liteos-a的一些问题想请教各位
4139浏览 • 2回复 待解决
liteos-a 和鸿蒙2.0有什么区别?
4825浏览 • 1回复 已解决
金立m7能升级鸿蒙系统?
7596浏览 • 1回复 待解决
little kernel可以引导liteos吗?
5146浏览 • 2回复 待解决
华为平板M68.4寸可以升级鸿蒙系统吗
6344浏览 • 1回复 待解决
VScode终端ssh连接不到Linux服务问题
15764浏览 • 2回复 待解决
M6系列平板啥时候能升级
4081浏览 • 1回复 待解决