FreeRTOS简介
文章目录
前言
FreeRTOS是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,在一段学习后留个笔记简单记录下相关知识欢迎大佬指正!!!!
一、什么是FreeRTOS?
Free 和 RTOS,Free 就是免费的、自由的、不受约束的意思,RTOS 全称是 Real Time Operating System,中文名就是实时操作系统。可以看出 FreeROTS 就是一个免费的 RTOS 类系统,FreeRTOS 是 RTOS 系统的一种,FreeRTOS 十分的小巧,可以在资源有限的微控制器中运行,当然了,FreeRTOS 不仅局限于在微控制器中使用。但从文件数量上来看 FreeRTOS 要比UCOSII 和 UCOSIII 小的多。
二、FreeRTOS的特点
FreeRTOS是一个可裁剪、可固化到 ROM 的抢占式实时内核,并且可管理任务的数量不受限制,具有以下几个重要的特性:
■免费、开源且小巧 :FreeRTOS 免费!这是最重要的一点,UCOS 是要收费的, 并且FreeRTOS 系统简单、小巧、易用,通常情况下内核占用 4k-9k 字节的空间。
■支持多种不同架构的不同型号的处理器 : ARM架构系列,例如STM32和GD32的 F1、 F4、 F7 和 H7 等型号的 MCU 都可支持,已经在超过 30 种架构的芯片上进行了移植。,非常方便
■资料齐全 :文档相对齐全,在 FreeRTOS 的官网:https://www.freertos.org/zh-cn-cmn-s/上可以找到所需的文档和源码,但是所有的文档都是英文版本的,而且下载 pdf 文档的时候是要收费的。
■应用范围广 :高可移植性,代码主要 C 语言编写,因此许多软件厂商也使用 FreeRTOS 做本公司软件的操作系统,比如著名的 TouchGFX,其所有的例程都是基于 FreeRTOS 操作系统的。ST 公司的所有要使用到 RTOS 系统的例程也均采用了 FreeRTOS,由此可见免费的力量啊!
■内部资源丰富:持抢占式,合作式和时间片调度、任务数量不限、任务优先级不限、软件定时器、创新的事件组(或者事件标志)、消息队列、多种信号量、任务通知、内存管理、时间戳等;还包括强大的跟踪执行功能和堆栈溢出检测功能。
三、FreeRTOS的版本和参考资料
1、FreeRTOS版本
FreeRTOS 衍生出来了另外两个系统:OpenRTOS 和 SafeTROS,FreeRTOS 开源许可协议允许在商业应用中使用 FreeRTOS 系统
,两者特征比较如下表所示:
2、FreeRTOS源码获取
在移植FreeRTOS 时候还需要用到FreeRTOS官方提供的两个额外的库源码文件,中文官方地址:https://freertos.org/zh-cn-cmn-s/,提供了大量的 µC/OS-III 相关的资料和不同版本的源代码,现在的目标就是要获取 FreeRTOS的源代码,打开后如下图所示:
点击下载FreeRTOS ,可直接下载FreeRTOS。也可以从 Git 获取 RTOS 库 ,但最简单的入门方式是下载 FreeRTOS .zip 文件,因为此文件还包括针对每一个官方移植的演示项目 ,如果点击入门指南,跳转如下图所示:
3、FreeRTOS参考资料
在线参考资料在顶部导航栏"内核" ,就能看到FreeRTOS的详情页了,打开后如下图所示对内核的描述:
点击左侧FreeRTOS书籍,可以看到FreeRTOS的相关离线资料,FreeRTOS 官方有两份 PDF 文档,一份是 FreeRTOS 的指导手册,
一份是 FreeRTOS 的 API 函数参考手册。相比 uC/OS,FreeRTOS 的官方文档确实有点少
FreeRTOS 还有一个在线文档,可以直接在官网浏览,点击左侧开发者文档,里面可以看到FreeRTOS的各种资源介绍和使用方法,例如队列、任务通知、软件定时器等...,此处打开队列一项,显示如下:
点击左侧辅助文档,里面可以看到FreeRTOS的各种辅助工具使用方法,例如钩子函数、内存保护、跟踪调试等...
点击左侧辅助文档,可以看到一些能够适配受支持的微控制器系列中平台以及移植演示,的此页面仅列出了官方 RTOS 移植,仅供参考.
点击左侧API引用,详细地介绍了FreeRTOS中各个 API 的使用说明,包括 API 函数的参数说明、返回值说明以及 API 用法举例
四、FreeRTOS源码简介
FreeRTOS源代码已经下载完成,不过显示为:FreeRTOSv9.0.0.exe,直接双击,然后选择源码保存位置即可获取FreeRTOS源码
打开那么这三个文件分别是做什么用的呢?所示:
重点在于上面那两个文件夹:FreeRTOS 和 FreeRTOS-Plus, Plus 比普通的功能多一点,配置强大一点。点击FreeRTOS
● Demo 文件夹 :Demo 文件夹里面就是 FreeRTOS 的相关例程,是 FreeRTOS 针对不同的 MCU 提供了非常多的 Demo
● License 文件夹:这个文件夹里面就是相关的许可信息,要用 FreeRTOS 做产品的得仔细看看,尤其是要出口的产品。
● Source 文件夹 :看名字就知道了,这个就是 FreeRTOS 的源码了,点击如下
include 文件夹是一些头文件,移植的时候是需要的,下面的这些.C 文件就是 FreeRTOS 的源码文件了,移植的时候肯定也是需要的。
主要看一下portable 文件夹,里面的东西就是 FreeRTOS系统和具体的硬件之间的连接桥梁!不同的编译环境,不同的 MCU,其桥梁应该是不同的,打开 portable 文件夹: