下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

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.