下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

任务
[有关任务的更多信息……]

FreeRTOS教程书 提供了关于任务及其行为的额外详细信息。


空闲任务

RTOS 调度器启动时,自动创建空闲任务,以确保始终 存在一个能够运行的任务。 它以最低优先级创建,以确保 如果有更高的优先级应用程序任务处于准备就绪状态,则不使用任何 CPU 时间。

空闲任务负责释放 RTOS 分配给 自此被删除的任务的内存。因此,在 使用 vTaskDelete() 函数以确保空闲任务没有缺少 处理时间。 空闲任务没有其他激活函数,因此可以在所有其他条件下合理地缺乏使微控制器时间。

应用程序任务可以共享空闲任务优先级 (tskIDLE_PRIORITY)。 请参阅 configIDLE_SHOULD_YIELD 配置参数 了解如何配置该行为的信息。



空闲任务钩子

空闲任务钩子是在空闲任务的每个周期中调用的函数。 如果您想让应用程序函数在 空闲优先级运行,您可以通过以下两种方式实现:
  1. 在空闲任务钩子中实现了此函数。

    必须始终有至少一个任务已准备好运行。 因此,必须确保钩子函数不能调用 任何可能导致空闲任务阻塞的 API 函数 (例如,vTaskDelay () ,或 带有阻塞时间的队列或信号量函数 )。协例程可以在钩子函数内阻塞。

  2. 创建空闲优先级任务以实现该函数。

    这是一种更灵活的解决方案,但具有更高的 RAM 使用开销。

有关使用空闲钩子的更多信息,请参阅嵌入式软件应用程序设计 章节。

要创建一个空闲钩子:

  1. FreeRTOSConfig.h 中将 configUSE_IDLE_HOOK 设置为 1。

  2. 定义具有以下名称和原型的函数:

    void vApplicationIdleHook( void );

通常使用空闲钩子函数将微控制器 CPU 置于 节能模式。


[返回顶部]


Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.