FreeRTOS简介

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 文件夹:


相关推荐
伏虎山真人4 分钟前
开源数据库 - mysql - mysql-server-8.4(gtid主主同步+ keepalived热切换)部署方案
数据库·mysql·开源
lb36363636363 小时前
介绍一下数组(c基础)(详细版)
c语言
小牛itbull3 小时前
ReactPress:构建高效、灵活、可扩展的开源发布平台
react.js·开源·reactpress
IT规划师4 小时前
开源 - Ideal库 - 常用枚举扩展方法(一)
开源·c#·.net core·ideal库·枚举转换
一丝晨光4 小时前
编译器、IDE对C/C++新标准的支持
c语言·开发语言·c++·ide·msvc·visual studio·gcc
OpenI启智社区5 小时前
共筑开源技术新篇章 | 2024 CCF中国开源大会盛大开幕
人工智能·开源·ccf中国开源大会·大湾区
AI服务老曹5 小时前
建立更及时、更有效的安全生产优化提升策略的智慧油站开源了
大数据·人工智能·物联网·开源·音视频
执笔者5486 小时前
C语言:函数栈帧的创建与销毁
c语言
IT规划师7 小时前
开源 - Ideal库 -获取特殊时间扩展方法(三)
开源·ideal库·特殊时间
OpenI启智社区7 小时前
湾区聚力 开源启智 | 2024 CCF中国开源大会暨第五届OpenI/O启智开发者大会闪耀深圳
人工智能·开源·openi启智社区·ccf中国开源大会·启智开发者大会