0. FreeRTOS系列笔记_简介

0. 前言

按照有无操作系统来划分,嵌入式软件的开发方式可以分为如下两种:

  • 基于裸机开发
  • 基于操作系统开发

在单片机领域,常用的操作系统有 FreeRTOS、RT-Thread、μC/OS-II 等,而性能更加强悍的 SOC 上,更青睐于强大的 Linux 或 Android 。

近年来,随着物联网技术的飞速发展,越来越多的智能设备开始用上了实时操作系统(Real Time Operating System,简称RTOS),其中 FreeRTOS 是最为流行的一种,例如乐鑫的 ESP32,基于 ESP-IDF 框架开发时,用的就是 FreeRTOS ,所以我觉得,掌握至少一种 RTOS,是如今从事嵌入式软件开发的必备技能。


1. FreeRTOS 发展历史

2003年,美国的 Richard Barry 发布了首个 FreeRTOS 版本,2018年的时候, 亚马逊收购了 FreeRTOS ,并将其开源协议由原来的 GPLv2 修改成了 MIT,版本号也升级到了 V10,在我写这篇文章的时候,FreeRTOS 的最新版本为 V10.4.6,后续的所以内容,都是基于 V10 版本的 FreeRTOS 。


2. FreeRTOS 版权问题

亚马逊收购 FreeRTOS 后,将其开源协议修改成了 MIT,MIT开源协议的自由度极高,商用免费,修改 FreeRTOS 源码后可以闭源,相比于其他一些商用收费的RTOS,FreeRTOS 可以说是相当良心了,这应该也是 FreeRTOS 那么受欢迎的原因之一吧!

关于开源许可,可以查看下面这张图,解释得非常清楚:

0. FreeRTOS系列笔记_简介_第1张图片

图片来源:https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html


3. FreeRTOS 版本介绍

FreeRTOS 除了免费开源的版本外,还有两个由 FreeRTOS 内核衍生出来的收费的商业版本:OpenRTOS 和 SafeRTOS 。

3.1 OpenRTOS

OpenRTOS 和 FreeRTOS 代码是一样的,只不过 OpenRTOS 是收费的商业版本,提供专业的技术支持,提供法律保护,两者的主要差别如下所示:

0. FreeRTOS系列笔记_简介_第2张图片

图片来源:https://www.freertos.org/a00114.html

上图中的 FreeRTOS 采用的是 MIT 开源许可,有些比较老的教程里,讲解的还是 V9 或者是更前版本的 FreeRTOS,采用的还是 GPL 开源许可,上述表格中的一些内容可能存在差异,这个是由于采用了不同的开源许可导致的,这个需要特别注意一下。

3.2 SafeRTOS

SafeRTOS 也是源于 FreeRTOS ,只不过 SafeRTOS 针对不同的领域安全标准,做了不同的安全认证,例如工业领域的 IEC 61508 SIL 3、医疗行业的 IEC 62304 and FDA 510(K)、汽车电子的 ISO 26262 等。


4. FreeRTOS 资料获取

4.1 获取源码

官方网站源码下载:https://www.freertos.org/a00104.html

0. FreeRTOS系列笔记_简介_第3张图片

官网下载的是最新版本,如果你想下载其他版本的源码,可以到 GitHub 下载。

GitHub 下载地址:https://github.com/FreeRTOS/FreeRTOS/tags

0. FreeRTOS系列笔记_简介_第4张图片

4.2 获取官方说明手册

点击 FreeRTOS 官网 SUPPORT 选项中的 Books and Manuals ,即可进入官方文档下载页面。

0. FreeRTOS系列笔记_简介_第5张图片

在官方文档下载页面,我们可以看到有三个下载选项,分别是:

  • Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide

  • FreeRTOS V10.0.0 Reference Manual

  • Book companion source code

官方文档下载地址:https://www.freertos.org/Documentation/RTOS_book.html

0. FreeRTOS系列笔记_简介_第6张图片

Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide

这份文档可以说是 FreeRTOS 内核入门到精通的宝典了,里面详细讲解了 FreeRTOS 源码方方面面的内容,例如源码的目录结构,项目的创建和编译、堆栈管理、任务管理、队列管理、中断管理等内容,可以说啃完这个文档, FreeRTOS 就学得七七八八了,建议大家重点阅读这个手册。

FreeRTOS V10.0.0 Reference Manual

这是 V10 版本 FreeRTOS 源码的 API 参考手册,配套 V10 版本的 FreeRTOS 源码使用,API参考手册和源码版本要一致,这个大家要注意。这个文档主要用于开发过程中查询 API 的使用方法,平时一般不用看,遇到不懂 API 时打开查询即可。

Book companion source code

这是官方例程源码包,截至我写这篇文章时,源码包里用的还是 V9 版本的 FreeRTOS 源码,其实 V10 版本和 V9 版本的内核基本是一样的,只是 2018 年亚马逊收购了 FreeRTOS 后,将版本更新到了 V10,添加了一些物联网相关的功能组件罢了。

你可能感兴趣的:(FreeRTOS学习笔记,c语言)