Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

FreeRTOS简介

概述

FreeRTOS 是一种开源的实时操作系统,通过 MIT 许可免费分发,包括一个内核和一组不断丰富的库。具有轻量级、高度可移植和免费开源等特点。它主要用于嵌入式系统和微控制器系统的任务调度和管理。

FreeRTOS作为一种轻量级架构,非常灵活,其主要特点为:

  • 轻量级:FreeRTOS是一种微内核架构,仅提供基本的系统服务,例如任务调度、同步和通信机制,而不包含高级功能。这使得FreeRTOS极其轻量级,能够在非常小的硬件资源下运行。值得一提的是,其内核的核心仅包含在3个C文件中
  • 任务为中心:FreeRTOS的架构围绕任务展开,任务是系统的基本单位,负责执行特定功能。这使得程序的开发和维护变得非常简单。
  • 模块化设计:FreeRTOS的各个组成部分都是模块化设计,如任务管理器、内存管理器、同步机制等。这使得系统的组成部分之间松耦合,容易移植和扩展,并且提供了丰富的API,,如任务的创建、删除、延时、调度等
  • 全面的支持
    • 中断处理:FreeRTOS提供了丰富的中断机制,可以方便地管理外设中断,并在中断服务程序中调用FreeRTOS的API。
    • 多核: FreeRTOS 支持多核系统, 支持在多核环境下的任务调度。
    • 多种编程语言,如C, C++, C#, Python 等。
  • 高度可移植性:FreeRTOS支持多种平台和多种编译器,并且提供了丰富的移植文档和示例代码。这使得FreeRTOS在不同的硬件和软件环境下都能很好地运行。
  • 可靠性: FreeRTOS提供了可靠的任务调度和同步机制,确保系统能够稳定运行。
  • 可观测性: FreeRTOS提供了丰富的调试和监测工具,支持在线调试,并可以方便地收集系统运行数据。

架构

基本架构

FreeRTOS的一种常见架构如下:

 _________      _________      _________      _________
| | | | | | | |
| User | | Task | | Kernel | | Memory |
| Tasks |<---| Manager |<---| |<---| Manager |
|_________| |_________| |_________| |_________|
|
_________
| |
| Hardware|
| Driver |
|_________|
图1:FreeRTOS架构示例
  • Task manager:管理程序中的任务,包括创建、删除、调度任务。
  • Kernel:提供资源共享机制,如信号量、互斥量、邮箱等,并管理系统的整体运行。
  • Memory Manager:管理系统内存分配和释放。
  • Hardware Driver:此项针对嵌入式系统,用于提供对硬件设备的驱动支持,如I2C、UART等。
  • User tasks:用户编写的任务,执行特定的功能。

这些组成部分相互配合,协调工作,使得FreeRTOS系统能够高效稳定运行。

高级特性

FreeRTOS的代码由FreeRTOS和社群人员共同构建,这里给出一些高级特性的示例:

  • 空闲任务:FreeRTOS空闲任务是一个特殊的系统任务,它在系统空闲时执行。当所有其他用户任务都没有可运行状态时,空闲任务就会被调度执行。空闲任务可以用来执行一些低优先级的后台任务,如系统维护,资源回收等。

    FreeRTOS在初始化时会自动创建空闲任务,用户可以通过实现一个空闲任务回调函数来定制空闲任务的行为。它的优先级是最低的。

在嵌入式系统中使用FreeRTOS

总结