下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

FreeRTOS 常见问题:使用帮助

以下为常见问题节选

什么是实时操作系统 (RTOS)?
什么是实时内核?
什么是实时调度器?
如何使用 FreeRTOS?
如何入门?
为什么使用 RTOS?

以下为常见问题节选



什么是实时操作系统 (RTOS)?

阅读 FreeRTOS 教程书籍将有助于回答这个问题。

请参阅“什么是 RTOS”页面,了解比本页面更加详细的说明。

实时操作系统是针对嵌入式/实时应用程序进行优化的操作系统。 实时操作系统的主要目标是 确保对事件作出及时和确定的响应。 事件可以来自外部,如限位开关被触发,也可以来自内部,如接收到字符 。

使用实时操作系统,软件应用程序可以被编写为一组独立任务。 每个任务都分配到一个优先级, 而且实时操作系统负责确保正在运行的任务是优先级最高的可运行任务 。 任务可能无法运行的例子包括:任务正在等待外部事件发生,或 任务在固定时间段等待。



什么是实时内核?

请参阅“什么是 RTOS”页面,了解比本页面更加详细的说明。

实时操作系统可以为应用程序编写者提供许多资源,包括 TCP/IP 堆栈、文件系统等。 内核是操作系统中负责任务管理、任务间通信和同步的部分。 FreeRTOS 是实时内核。



什么是实时调度器?

请参阅“什么是 RTOS”页面,了解比本页面更加详细的说明。

实时调度器和实时内核有时可互换使用。 具体来说,实时调度器是 RTOS 内核的一部分, 负责决定应该执行哪个任务。



如何使用 FreeRTOS?

阅读一本 FreeRTOS 教程书籍将有助于回答这个问题。

FreeRTOS 以源码形式提供。 源代码应包含在您的应用程序项目中。 这样做会使公共 API 接口 可用于您的应用程序源代码。

使用 FreeRTOS 时,应用程序应被编写为一组独立的任务。 这意味着 main() 函数不包含 应用程序功能,而是创建应用程序任务,然后启动 RTOS 内核。 查看每个移植的示例中的 main.c 和项目文件(makefile 或 类似文件)。

了解更多信息,请参阅 创建新的 FreeRTOS 应用程序页面。



如何入门?

请参阅 FreeRTOS 快速入门指南



为什么使用 RTOS?

您无需为编写良好的嵌入式软件而使用 RTOS。 然而在某个阶段,随着您的应用程序的大小或复杂性不断增加, RTOS 服务可能由于下列一个或多个原因而变得有益。 这些并非绝对,只是参考意见。 和其他事情一样, 为手头的工作选择合适的工具,是开始任何项目的重要一步。

简而言之:

  • 抽象计时信息

    实时调度器实际上只是一段代码,它使得您可以指定应用程序的计时特性——极大地 简化和缩减(因此更容易理解)应用程序代码。

  • 可维护性/可扩展性

    代码中不包含计时信息,可以提高可维护性和可扩展性,因为 软件模块间的依赖性降低。 更改一个模块不应影响另一个模块的时间行为(取决于任务的优先级)。 软件也将不容易受到硬件变化的影响。 例如,可以编写代码,使其暂时不受 处理器频率变化的影响(在合理限度内)。

  • 模块化

    将您的应用程序组织成一组自主任务,可以使模块化更有效。 任务应当是耦合松散、功能内聚的单元, 并且按顺序执行。 例如,无需将功能分解为微型状态机,防止它们 很久才能执行完成。

  • 接口更清晰

    定义明确的任务间通信接口有助于设计和团队开发。

  • 测试更容易(在某些情况下)

    无需添加可能改变被测试模块行为的检测,就可以执行任务接口。

  • 代码复用

    模块化程度提高,模块间的依赖度降低,便于项目间复用代码。 任务本身有助于在项目中复用代码。 以 后者为例,考虑从 TCP/IP 堆栈接收连接的应用程序,可以生成相同的任务代码来处理每个连接——每个 连接对应一个任务。

  • 效率提高?

    使用 FreeRTOS 允许任务阻止事件——无论是暂时事件,还是系统外部事件。 这意味着当实际上没有需要处理的事件时,不会浪费时间轮询或检查定时器 。 从而大大节约对处理器的利用。 FreeRTOS 只会按需执行代码。 然而,与此相反的是,需要运行 RTOS tick, 而且切换任务需要花费时间。 节省的时间是否超过开销,这取决于应用。 大多数应用程序都会运行某种形式的 tick,因此使用 tick hook 函数可减少任何额外开销。

  • 空闲时间

    使用 FreeRTOS.org 很容易测量处理器的负载。 当运行空闲任务时,处理器处于空闲状态。 空闲任务还提供了非常简单的自动方法让处理器处于低功率模式。

  • 中断处理灵活

    将中断触发的处理延迟到任务级别,使得中断处理程序自身非常短小,并且任务级别处理完成时,中断保持启用状态 。 此外,任务级别的中断处理使得优先级划分灵活——比使用硬件本身给每个外围设备分配优先级可能实现的优先级更高 (取决于使用的架构)。

  • 混合处理要求

    简单的设计模式可以用于混合应用程序内的周期性、连续性和事件驱动的处理。 此外, 可以通过使用中断和任务优先级划分来满足硬实时和软实时要求。

  • 外围设备控制更容易

    守卫任务便于序列化对外围设备的访问,并提供良好的互斥机制。

  • 其他益处。


常见问题顶部




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