eTaskConfirmSleepModeStatus
[RTOS 内核控制]
task.h
eSleepModeStatus eTaskConfirmSleepModeStatus( void );
无滴答空闲模式的特定函数。
提供此函数在 portSUPPRESS_TICKS_AND_SLEEP() 中使用,
以允许移植特定的睡眠函数确定是否可以继续睡眠,
以及是否可以无限期睡眠。
这是一个必要函数,因为 portSUPPRESS_TICKS_AND_SLEEP() 仅
在调度器挂起时被调用,而不是从临界区内被调用。 因此,
中断可以在
调用 portSUPPRESS_TICKS_AND_SLEEP() 和实际进入低功率模式之间,
请求上下文切换。 eTaskConfirmSleepModeStatus() 应在停止定时器
与进入睡眠模式之间的短暂临界区
被调用。
必须将 configUSE_TICKLESS_IDLE 配置常量设置为 1
使 eTaskConfirmSleepModeStatus() 变成可用。
-
参数:
-
无。
-
返回:
-
如果任务在
portSUPPRESS_TICKS_AND_SLEEP() 被调用时已退出“阻塞”状态,或者上下文切换
被挂起(因为调度器被暂停),则
eTaskConfirmSleepModeStatus() 将返回 eAbortSleep ,且不得进入
睡眠模式。
如果未使用软件定时器,并且所有应用程序任务
或是被阻塞且可无限超时,或是被暂停,则
eTaskConfirmSleepModeStatus() 将返回 eNoTasksWaitingTimeout,且
portSUPPRESS_TICKS_AND_SLEEP() 可以进入深度睡眠状态,
而无需预先配置定时器,在预先确定的未来时间
让微控制器从睡眠状态中脱离。
在所有其他情况下,eTaskConfirmSleepModeStatus() 将返回 eStandardSleep。
用法示例:
eTaskConfirmSleepModeStatus() 用于
portSUPPRESS_TICKS_AND_SLEEP() 的实现示例。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.