FreeRTOS学习(一)

一、什么是FreeRTOS

        RTOS(Real Time Operation System)是指实时操作系统,主流的有14种,分别为μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX,而国产的嵌入式操作系统包括都江堰操作系统(djyos)、Alios Things、Huawei LiteOS、RT-Thread、SylixOS。而FreeRTOS就是其中的一种,具有源码公开、可移植、可裁减、调度策略灵活等特点,而且是完全免费的。

       作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。

二、为什么选择FreeRTOS

        上面我们说了 RTOS 类系统有很多, 为什么要选择 FreeRTOS 呢?在 UCOS 教程中,我们说过学习 RTOS 首选 UCOS,因为 UCOS 的资料很多,尤其是中文资料! 但是 FreeRTOS 的资料少,而且大多数是英文的, 我为何要选择它? 原因如下:

  1. FreeRTOS 免费! 这是最重要的一点, UCOS 是要收费的, 学习 RTOS 系统的话 UCOS是首选,但是做产品的话就要考虑一下成本了。 显而易见的, FreeRTOS 在此时就是一个很好的选择,当然了也可以选择其他的免费的 RTOS 系统。
  2.  许多其他半导体厂商产品的 SDK 包就使用 FreeRTOS 作为其操作系统,尤其是 WIFI、蓝牙这些带协议栈的芯片或模块。
  3.  许多软件厂商也使用 FreeRTOS 做本公司软件的操作系统, 比如著名的 TouchGFX, 其所有的例程都是基于 FreeRTOS 操作系统的。 ST 公司的所有要使用到 RTOS 系统的例程也均采用了 FreeRTOS,由此可见免费的力量啊!
  4. 简单, FreeRTOS 的文件数量很少, 这个在我们后面的具体学习中就会看到,和 UCOS系统相比要少很多!
  5. 文档相对齐全,在 FreeRTOS 的官网(www.freertos.org) 上可以找到所需的文档和源码,但是所有的文档都是英文版本的,而且下载 pdf 文档的时候是要收费的。
  6. FreeRTOS 被移植到了很多不同的微处理器上,极大的方便了我们学习和使用。
  7. 社会占有量很高, EEtimes 统计的 2014,2015 年 RTOS 系统占有量中 FreeRTOS 已经跃升至第一位, 如下图所示:

三、FreeRTOS特点

    FreeRTOS 是一个可裁剪的小型 RTOS 系统, 其特点包括:

  •  FreeRTOS 的内核支持抢占式, 合作式和时间片调度。
  •  SafeRTOS 衍生自 FreeRTOS, SafeRTOS 在代码完整性上相比 FreeRTOS 更胜一筹。
  •  提供了一个用于低功耗的 Tickless 模式。
  • 系统的组件在创建时可以选择动态或者静态的 RAM, 比如任务、消息队列、信号量、软件定时器等等。
  • 已经在超过 30 种架构的芯片上进行了移植。
  • FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 单元, 如 STM32F103。
  • FreeRTOS 系统简单、小巧、易用, 通常情况下内核占用 4k-9k 字节的空间。
  • 高可移植性,代码主要 C 语言编写。
  • 支持实时任务和协程(co-routines 也有称为合作式、 协同程序, 本教程均成为协程)。
  • 任务与任务、 任务与中断之间可以使用任务通知、消息队列、二值信号量、数值型信号量、 递归互斥信号量和互斥信号量进行通信和同步。创新的事件组(或者事件标志)。
  • 具有优先级继承特性的互斥信号量。
  •  高效的软件定时器。
  • 强大的跟踪执行功能。
  • 堆栈溢出检测功能。
  • 任务数量不限。
  • 任务优先级不限。
     

FreeRTOS的不足:

     相对于常见的μC/OS—II操作系统,FreeRTOS操作系统既有优点也存在不足。其不足之处, 一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方 面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统, 不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。

四、FreeRTOS核心功能

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king110108

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值