0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRTOS的发展历史和技术演进

CHANBAEK 来源:FunIO 作者:FunIO 2023-11-18 17:55 次阅读

导言

嵌入式系统的领域中,实时操作系统(RTOS)是非常重要甚至不可或缺的组成部分。FreeRTOS(Real-Time Operating System)是一款广泛使用的开源 RTOS,为嵌入式开发提供了可靠、高效的实时调度和任务管理。本文将简要介绍 FreeRTOS 的发展历史、技术演进、技术特点,并介绍 ESP-IDF 对 FreeRTOS 的绑定,以及 FreeRTOS 在 ESP32芯片上的应用。

FreeRTOS 的发展历史

FreeRTOS 的历史可以追溯到 2003 年,由英国工程师 Richard Barry 创建。作为一位在嵌入式领域有着丰富经验的工程师,Barry 的目标是开发一个轻量级、可裁剪、易于移植的 RTOS,以满足各种嵌入式系统的需求。

随着时间的推移,FreeRTOS 不断演进和壮大。其源代码的开放性质促使全球的开发者和企业积极参与,形成了一个庞大的社区。这个社区的不断贡献推动了 FreeRTOS 的功能增强、性能优化以及对更多硬件平台的支持。

FreeRTOS 的技术演进

1. 多任务调度

FreeRTOS 最核心的功能之一就是多任务调度。它允许嵌入式系统同时运行多个任务,通过调度算法实现任务的及时响应和高效切换。FreeRTOS 支持多种调度算法,包括抢占式和非抢占式,使得用户可以根据具体应用的需求进行选择。

2. 任务通信与同步

在多任务系统中,任务之间的通信和同步是至关重要的。FreeRTOS 提供了一系列的 IPC(进程间通信)机制,如消息队列、信号量、互斥锁等,以确保任务能够安全、有序地协同工作。这种任务间的通信和同步机制是 FreeRTOS 广泛应用于实时嵌入式系统的关键之一。

3. 定时器和中断处理

实时系统需要能够对时间进行精确的管理,以满足任务的实时性要求。FreeRTOS 提供了定时器和中断处理功能,使得用户能够在特定的时间点执行任务,实现系统的高精度时间控制。

4. 内存管理

FreeRTOS 对内存的管理十分灵活,用户可以选择使用动态内存分配(通过内置的内存分配器)或者静态内存分配。这种设计考虑到了不同应用的内存需求,使得 FreeRTOS 适用于各种嵌入式系统,包括资源受限的微控制器

5. 移植性

FreeRTOS 的移植性是其成功的关键之一。它支持多种处理器体系结构和编译器,使得用户能够方便地将其移植到不同的硬件平台上。这种灵活性为嵌入式系统的设计提供了更大的自由度。

FreeRTOS 的技术特点

1. 开源和免费

FreeRTOS 以 MIT 许可证的形式发布,使得任何人都可以免费使用、修改和分发其源代码。这种开放性使得 FreeRTOS 在嵌入式社区中得到广泛应用,并成为学术界和工业界的首选 RTOS 之一。

2. 小巧而高效

FreeRTOS 的内核非常小巧,仅占用极小的内存空间。这使得它适用于资源受限的嵌入式系统,如微控制器等。尽管体积小,FreeRTOS 的性能却相当出色,能够满足实时性要求较高的应用场景。

3. 易移植性

FreeRTOS 的设计考虑到了不同硬件平台和编译器的差异,因此具有很强的移植性。无论是 ARM、MIPS 还是其他体系结构,用户都可以相对容易地将 FreeRTOS 移植到目标系统上。

4. 大量的示例和文档

FreeRTOS 的社区提供了大量的示例代码和详细的文档,帮助用户更好地理解和使用 FreeRTOS。这些示例涵盖了从简单任务调度到复杂通信机制的各个方面,为用户提供了丰富的参考资料

FreeRTOS vs RT-Thread

FreeRTOS 和 RT-Thread 都是开源实时操作系统(RTOS),它们在嵌入式领域广泛应用,但在设计理念、架构、特性和适用场景等方面存在一些区别。下面是对比 FreeRTOS 和 RT-Thread 的一些主要方面:

1. 设计理念和架构

FreeRTOS:

  • 设计理念: FreeRTOS 的设计理念注重简单性和可裁剪性。它提供了一个小巧的内核,使其适用于资源受限的嵌入式系统。
  • 架构: FreeRTOS 采用了基于优先级的抢占式调度策略,支持多任务调度和任务间的通信机制。它具有轻量级、可移植性强的特点。

RT-Thread:

  • 设计理念: RT-Thread 注重实时性和灵活性。它采用了多线程的设计理念,支持多任务并发执行。RT-Thread 的设计目标是提供一个实时性能好、易用、灵活的 RTOS。
  • 架构: RT-Thread 的内核采用了多线程和事件驱动的结构,支持抢占式和非抢占式调度。它提供了一套完整的组件模块,包括文件系统、网络协议栈等。

2. 特性和功能

FreeRTOS:

  • 功能模块: FreeRTOS 提供了基本的任务调度、信号量、消息队列、互斥锁等基本功能模块。
  • 定时器和中断处理: FreeRTOS 支持定时器和中断处理,使其适用于实时系统。
  • 内存管理: FreeRTOS 支持动态内存分配和静态内存分配,用户可以根据需求选择。

RT-Thread:

  • 功能模块: RT-Thread 提供了更为丰富的功能模块,包括文件系统、图形库、网络协议栈等,使其在更复杂的应用场景中有更强的竞争力。
  • 设备驱动框架: RT-Thread 引入了设备驱动框架,使得用户能够更方便地访问和控制硬件资源。
  • 内存管理: RT-Thread 的内存管理模块支持动态内存管理和静态内存管理,同时引入了内存池和内存堆的概念。

3. 社区支持和生态系统

FreeRTOS:

  • 社区: FreeRTOS 拥有庞大的全球社区,用户可以从社区获得大量的支持和资源。
  • 生态系统: FreeRTOS 生态系统丰富,有许多第三方库和工具支持。

RT-Thread:

  • 社区: RT-Thread 的社区虽然相对较小,但在中国有着强大的用户群体,得到了积极的维护和支持。
  • 生态系统: RT-Thread 的生态系统也在不断发展,有一些开发者为其开发了丰富的组件和应用。

4. 适用场景

FreeRTOS:

  • 适用于对内存要求较低、简单嵌入式系统的场景。
  • 对于资源受限、对实时性要求不是很高的应用,FreeRTOS 是一个轻量级的选择。

RT-Thread:

  • 适用于复杂的应用场景,包括需要文件系统、网络协议栈等功能的嵌入式系统。
  • 在对实时性要求相对较高、对功能丰富度要求较高的应用中表现较为出色。

FreeRTOS 和 RT-Thread 都是优秀的开源 RTOS,各自有着独特的设计理念和特点。选择适合自己项目的 RTOS 需要综合考虑项目的需求、硬件平台、开发者的经验等因素。在嵌入式领域,FreeRTOS 因其轻量级和可移植性的优势一直备受青睐;而 RT-Thread 则在一些对功能要求较高的应用中表现出色。

ESP-IDF 与 FreeRTOS 的绑定

ESP-IDF(Espressif IoT Development Framework)是为 ESP32 和 ESP8266 等芯片提供的开发框架,它紧密集成了 FreeRTOS。ESP-IDF 通过对 FreeRTOS 的封装和扩展,提供了更加方便和高级的 API,以满足 ESP32 芯片的特殊需求。

1. 多核支持

ESP32 芯片具有双核架构,而 FreeRTOS 天生支持多核处理器。ESP-IDF 通过封装 FreeRTOS 的 API,使得用户能够更方便地使用多核功能。例如,通过 xTaskCreatePinnedToCore 函数,用户可以将任务固定到指定的核心上执行。

xTaskCreatePinnedToCore(&taskFunction, "Task", 2048, NULL, 5, NULL, 1

);

2. ESP-IDF 组件

ESP-IDF 引入了许多组件,这些组件是对 FreeRTOS 功能的高级封装。例如,freertos/FreeRTOS.h 头文件包含了 ESP-IDF 对 FreeRTOS 的扩展,使得用户能够更方便地使用 WiFi、蓝牙等功能。

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "freertos/semphr.h"

3. 设备驱动框架

ESP-IDF 提供了设备驱动框架,通过该框架用户可以更方便地操作硬件资源。这一框架基于 FreeRTOS 的任务和事件机制,使得用户能够更容易地访问和控制 ESP32 的硬件资源。

#include "driver/gpio.h"

结语

FreeRTOS 作为一款成熟、稳定且广泛应用的 RTOS,为嵌入式系统的开发提供了坚实的基础。其小巧高效、易移植的特点使得它在资源受限的环境中表现出色。而 ESP-IDF 作为 ESP32 的开发框架,则在 FreeRTOS 的基础上提供了更加便利和高级的功能,使得 ESP32 的开发变得更为高效。

随着物联网和嵌入式系统的不断发展,FreeRTOS 和 ESP-IDF 都将继续演进和壮大,为更多的开发者提供强大的工具和框架。这也将推动着嵌入式技术的不断创新和进步,为未来智能设备的发展打下坚实的基础。

接下来的一段时间将连续介绍 FreeRTOS 的相关内容,包括 FreeRTOS 的基本使用、任务调度、任务通信与同步、定时器和中断处理、内存管理等。敬请期待!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3434

    浏览量

    128229
  • 开源
    +关注

    关注

    3

    文章

    2991

    浏览量

    41722
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118800
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61351
  • 实时操作系统

    关注

    1

    文章

    184

    浏览量

    30523
收藏 人收藏

    评论

    相关推荐

    RTOS发展历史

    RTOS发展历史  从1981年Ready System发展了世界上第1个商业嵌入式实时内核(VRTX32),到今天已经有近20年的历史。20世纪80年代的产品还只支持一些16位的微处
    发表于 08-15 11:32

    操作系统发展历史

    其他市场。也是至今最有影响力的操作系统之一,而Linux也是UNIX系统的一种衍生,下一讲我们将专门介绍一下UNIX的发展历史。  4.第四代计算机(1980-今):个人计算机  随着计算机技术的不断更新
    发表于 09-13 10:10

    FPGA技术发展历史和动向

    本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一、FPGA技术发展历史 纵观数字集成电路的
    发表于 08-08 10:24

    一图了解频率控制技术演进

    一起来涨姿势,如题,分享一张频率控制技术演进的图(图片来源:世强先进),了解下电子产品心脏的技术发展过程。貌似CMEMS可编程振荡器有替代石英振荡器的趋势,作为一个新出现的技术,想问问
    发表于 03-28 18:57

    Protel的发展历史及Protel99特性

    Protel的发展历史及Protel99特性
    发表于 04-23 22:38

    MCU的技术原理、区别及发展历史

    MCU的技术原理、区别及发展历史微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器
    发表于 09-11 14:58

    嵌入式系统的发展历史

    摘要:嵌入式系统诞生于微型机时代,经历了漫长的独立发展的单片机道路。给嵌入式系统寻求科学的定义,必须了解嵌入式系统的发展历史,按照历史性、本质性、普遍通用性来定义嵌入式系统,并把定义与
    发表于 06-18 06:53

    软件定义无线电技术发展历史

    软件定义无线电(SDR)不是新技术,已为很多的无线设备(除了制造低成本基于ASIC的低功耗设备,如智能手机和平板电脑)广泛所采用。自SDR首次提出以来已有30多年了,下面简单介绍下在SDR三十年演进
    发表于 07-02 07:27

    探讨互联网IPv6技术发展演进

    探讨互联网IPv6技术发展演进
    发表于 05-25 06:56

    EL显示器的发展历史概览

    EL显示器的发展历史概览
    发表于 06-03 06:13

    单片机的发展历史

    单片机 微机 微型计算机 计算机的发展历史 单片机的发展历史
    发表于 07-13 08:49

    什么是PON(无源光纤网络)、PON的发展演进

    Optical Network(无源光网络)的简称。PON是由OLT、ONU、ODN构成。PON在不同的时间段发展演进各种技术方案,目前广泛使用的PON技术在现有的网络包括两种主流技术
    发表于 05-27 11:41

    回溯智慧对讲的演进历史

    小编想和大家继续交流分享一下关于智慧对讲的这个话题,我们更多是从智慧对讲的“演进历史”的这个角度来对它进行分析,看下智慧对讲有什么特点。
    的头像 发表于 04-27 10:36 2808次阅读

    智能终端技术演进与未来趋势

    本篇文章来自CMPE2018东莞手机展会上,联想施总监的主题分享:“智能终端技术演进与未来材质趋势”,从历史的角度浏览一下近20年智能终端技术发展
    的头像 发表于 01-01 09:28 8991次阅读

    LTE发展演进及关键技术

    LTE发展演进及关键技术说明。
    发表于 04-07 09:11 10次下载
    LTE<b class='flag-5'>发展演进</b>及关键<b class='flag-5'>技术</b>