FreeRTOS快速入门-初探FreeRTOS

首发,公众号【一起学嵌入式

对于 RTOS 入门系列文章,已经更新完一款(RT-Thread):

助你快速入门 RT-Thread

这个系列的文章结合 RT-Thread,介绍过 RTOS 相关的核心知识。

接下来,开始另外一款 RTOS – FreeRTOS 入门系列,希望能够帮助初学者快速掌握 FreeRTOS,帮助老手回顾基础内容。

一起学习、一起进步。加油~

FreeRTOS简介

先来看看官网介绍,官方网址

https://freertos.org/

FreeRTOS快速入门-初探FreeRTOS_第1张图片

FreeRTOS 是一种面向微控制器和小型微处理器的市场领先实时操作系统(RTOS),与世界领先的芯片公司合作开发了18年,现在每 170 秒下载一次。

FreeRTOS根据麻省理工学院开放源码许可证免费发布,包括一个内核和一组越来越多的物联网库,适用于所有行业。FreeRTOS强调可靠性和易用性。

FreeRTOS 合作过的部分 IC 厂商:

FreeRTOS快速入门-初探FreeRTOS_第2张图片

特点

FreeRTOS 的主要特点如下:

  • 支持抢占式调度、协作式调度、时间片调度
  • 灵活、快速、轻量级的任务通知机制。
  • 支持消息队列、二值信号量、计数信号量、互斥量、递归互斥、软件定时器、事件标志组等功能
  • 时钟节拍钩子函数
  • 空闲钩子函数
  • 栈溢出检测
  • 任务运行时统计信息收集
  • 可选的商业许可和支持
  • 全中断嵌套模型(对于某些体系结构)
  • 极低功耗应用的无滴答功能
  • 软件管理的中断堆栈(这有助于节省RAM)
  • 支持 40 多个体系结构。
  • 模块化库。

为什么选择 FreeRTOS

列举几个选择 FreeRTOS 用于项目开发的几点原因:

  • 为许多不同的体系结构和开发工具提供单一且独立的解决方案。
  • 众所周知,它是可靠的。
  • 功能丰富,仍在持续积极发展。
  • 具有最小的 ROM、RAM 和 处理器开销。RTOS 内核二进制映像通常在 6K 到 12K 字节的范围内。
  • 非常简单——RTOS内核的核心只包含在 3 个 C 文件中。
  • 在商业应用中真正免费使用(详见许可证条件)。
  • 我们的合作伙伴WITTENSTEIN high integrity systems以OPENRTOS的形式提供商业许可、专业支持和移植服务。
  • 拥有通往 SafeRTOS 的迁移路径,其中包括医疗、汽车和工业部门的认证。
  • 拥有庞大且不断增长的用户群。
  • 包含每个端口的预配置示例。
  • 拥有一个优秀的、活跃的免费支持论坛。
  • 保证在需要时提供商业支持。
  • 提供了大量的文档。
  • 非常可扩展,简单易用。

源码文件结构

官方源码的下载地址为:

https://www.freertos.org/a00104.html

FreeRTOS快速入门-初探FreeRTOS_第3张图片

源码下载后,是一个压缩包 FreeRTOSv202112.00.zip,解压后如下图所示

FreeRTOS快速入门-初探FreeRTOS_第4张图片

FreeRTOS 的源码在 FreeRTOS 和 FreeRTOS-Plus 这两个文件夹中。tools 文件夹存放的是一些脚本工具。剩下的文件,看名字就知道是干什么用的了。

FreeRTOS文件夹

这个文件夹里放的是 FreeRTOS 内核相关的文件,打开 FreeRTOS 文件,来看看里面的内容

FreeRTOS快速入门-初探FreeRTOS_第5张图片

Demo 文件夹里包含 FreeRTOS 官方为各种单片机移植好的示例工程代码。

Source 文件夹里存放的是 FreeRTOS 的内核源码文件。

Demo文件夹

这个文件夹里面存放的是 FreeRTOS 针对不同的 MCU 平台提供的例程 Demo。开发者可以参考这些 Demo 搭建自己的工程项目。如下图所示,官方提供的示例工程是非常全面的,几乎覆盖了常见的 MCU 平台。

FreeRTOS快速入门-初探FreeRTOS_第6张图片

Source 文件夹

这个文件夹里存放的是 FreeRTOS 的内核源码文件。也就是我们使用 FreeRTOS 必须用到的文件。下图中标示出各个部分的用途

FreeRTOS快速入门-初探FreeRTOS_第7张图片

include 文件夹是一些头文件,下面的这些 .c 文件就是 FreeRTOS 的源码文件。这两部分是不可或缺的,不必多说。

接下来看看 portable 文件夹,里面包含的是跟编译器相关的文件夹,使用不同的编译平台,选择对应的支持文件。

FreeRTOS快速入门-初探FreeRTOS_第8张图片

我们比较常用的是 keil,这个目录下只有一个文件,文件名字为 See-also-the-RVDS-directory.txt。即这个目录下的内容和 RVDS 目录相同。使用 RVDS 文件夹内的文件即可,具体如下所示

FreeRTOS快速入门-初探FreeRTOS_第9张图片

这里边的关联文件是连接 FreeRTOS 和具体硬件平台的桥梁。编写这些接口文件就是真正的移植过程,这部分工作已经由 FreeRTOS 官方完成了,我们直接拿来用就可以了。

MemMang 文件夹下存放的是跟内存管理相关的文件,共有 5 个 heap_x.c 文件和 1 个 ReadMe 文件。在移植时,根据选用的内存堆分配算法,选用其中一个即可。

License 文件夹

该文件夹下只有一个文件 license.txt,该文件描述的是相关的许可信息。用 FreeRTOS 做产品时需要看看。对于个人学习,暂时不需要关心。

FreeRTOS-Plus 文件夹

FreeRTOS-Plus 文件夹里存放的是第三方产品。

FreeRTOS快速入门-初探FreeRTOS_第10张图片

该文件里面也有 Demo 和 Source 文件夹。Source 文件夹里存放的是一些扩展功能源码文件,例如 CLI、TCP、Trace等等。Demo 文件夹里存放的是扩展功能的示例工程。

如果只是学习和使用 FreeRTOS 系统内核,这部分内容就没必要看了。

学习资料

官方的资料还是丰富的,打开官网即可获取到

FreeRTOS快速入门-初探FreeRTOS_第11张图片

FreeRTOS快速入门-初探FreeRTOS_第12张图片

可以看在线的资料文档,当然也可以下载官方 PDF 文件

FreeRTOS快速入门-初探FreeRTOS_第13张图片

两个 PDF 文件,一个是手把手入门教程,一个是 API 参考手册。

不过,这些资料都是英文的。

最后

本篇文章简单介绍了 FreeRTOS 的一些基本情况,以及源码文件存放结构等。源码获取和资料获取都做了简单介绍说明。

为了方便学习,我将官方 PDF 资料和源码已经下载,并且搜集了一些 FreeRTOS 的学习资料,一起打包放在网盘里了。
在公众号后台留言【freertos

今天先到这,下次继续。加油~

公众号【一起学嵌入式】,精彩首先送达

你可能感兴趣的:(FreeRTOS,FreeRTOS,嵌入式,实时操作系统,IoT)