FreeRTOS简介

FreeRTOS简介


文章目录

  • FreeRTOS简介
  • 前言
  • 一、什么是FreeRTOS?
  • 二、FreeRTOS的特点
  • 三、FreeRTOS的版本和参考资料
    • 1、FreeRTOS版本
    • 2、FreeRTOS源码获取
    • 3、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 文件夹:
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Photoshop最新版PS2024安装使用 Ver25.0.0

Photoshop,这个是长红了几十年的软件,我大概从它的3.0版本开始用,目前已迭代到25.0,但一直还在用CS4/11.0版本,一直秉持着够用即可的原则,因为不是专业的平面设计人员,能够简单PP图片就行。&…

C++智能指针及简单实现

C智能指针 堆内存、栈内存与静态内存静态内存栈内存堆内存 动态内存管理new、delete运算符智能指针实现智能指针 shared_ptr智能指针的线程安全问题解决 unique_ptrweak_ptr循环引用 思维导图本模块思路 动态内存管理 - cppreference.com 堆内存、栈内存与静态内存 静态内存 …

视觉测量基础

1. 相机模型 1.1 坐标系转换原理 世界坐标系(world Coords):点在真实世界中的位置,描述相机位置。 相机坐标系(Cameras Coords):以相机光学系统中心(镜头中心)为原点,建立相机坐标系。 图像物理坐标系(Film Coords):经过小孔成…

微服务实战系列之J2Cache

前言 经过近几天陆续发布Cache系列博文,博主已对业界主流的缓存工具进行了基本介绍,当然也提到了一些基本技巧。相信各位盆友看见这么多Cache工具后,在选型上一定存在某些偏爱: A同学说:不管业务千变万化,我对Redis的…

企业如何制定精准营销策略?

在当今的数字化时代,位置数据已经成为企业营销策略中不可或缺的一部分。通过收集和分析客户的位置数据,企业可以更好地了解客户的行为和需求,制定更精准的营销策略,从而提高营销效率。 首先,利用IP地址位置数据可以帮助…

手搓图片滑动验证码_JavaScript进阶

手搓图片滑动验证码 背景代码效果图展示网站 背景 在做前端项目开发的时候,少不了登录注册部分,既然有登录注册就少不了机器人验证,验证的方法有很多种,比如短信验证码、邮箱验证码、图片滑动、图片验证码等。 由于鄙人在开发中…

9个Logo素材超多的Logo网站!

Logo 虽然看起来很简单,但是设计过程中的每一个细节都很精致。因为 Logo 作为品牌的象征,应该一目了然地传达给人们品牌的理念和形象。本文给大家整理了 7 个 Logo 素材网站和 2 个 Logo 在线制作网站。可以收集很多关 Logo 设计的内容和技巧&#xff01…

吉他初学者学习网站搭建系列(5)——如何做一个在线节拍器

文章目录 背景实现TransportLoop代码 在线尝试 背景 我们看吉他谱时,经常看到拍号,例如6/8。它的含义是一拍是一个八分音符,一小节有六拍。四分音符的时长是一秒,即60拍/分钟。基于这样的背景知识,我们就可以根据一些…

supervisor管理python进程

前言 平时开发调试中使用conda环境,项目比较多环境多,而且命令繁杂,每一次启动项目都可能会因为忘记启动方式而频繁报错。现在可以通过supervisor来管理,只需要配置几个文件,就可以轻松通过简单一致的命令启动工程&…

C++ day55 判断子序列 不同的子序列

题目1:392 判断子序列 题目链接:判断子序列 对题目的理解 判断字符串s是否为t的子序列 字符串s和字符串t的长度大于等于0,字符串s的长度小于等于字符串t的长度,本题其实和最长公共子序列的那道题很相似,相当于找两…

HashMap相关专题

前置知识:异或运算 异或运算介绍 异或有什么神奇之处(应用)? (1)快速比较两个值 (2)我们可以使用异或来使某些特定的位翻转,因为不管是0或者是1与1做异或将得到原值的相…

IntelliJ IDEA 2023.2新特性详解第三弹!Docker、Kubernetes等支持!

9 Docker 在 Docker 镜像层内预览文件 现在可以在 Services(服务)工具窗口中轻松访问和预览 Docker 镜像层的内容。 从列表选择镜像,选择 Show layers(显示层),然后点击 Analyze image for more informati…

<软考>软件设计师-2操作系统(总结)

(一) 进程管理 1 操作系统概述 1-1 操作系统定义: 能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。 1-2 操作系统的作用: 1 通过资源管理提高计…

7+WGCNA+机器学习+实验+泛癌分析,多要素干湿结合

今天给同学们分享一篇生信文章“Analysis and Experimental Validation of Rheumatoid Arthritis Innate Immunity Gene CYFIP2 and Pan-Cancer”,这篇文章发表在Front Immunol期刊上,影响因子为7.3。 结果解读: DEG筛选和数据预处理 数据在…

Helplook VS Google Docs:一对一比较

还记得Google Docs在2006年一炮走红的时候吗?它很大程度地改变了协作方式,也减少了附加文件和频繁保存的麻烦。相比Microsoft Word,很多人更喜欢Google Docs的简单性。 但是时代也在不断地发展。像HelpLook这样的新竞争对手也可以提供先进的…

字符集——带你了解UTF-8的前世今生

文章目录 字符集的来历汉字和字母的编码特点Unicode字符集字符集小结编码和解码开发约定 字符集的来历 计算机是美国人发明的,由于计算机能够处理的数据只能是0和1组成的二进制数据,为了让计算机能够处理字符,于是美国人就把他们会用到的每一…

前端面试高频考点—事件循环Event loop

目录 事件循环 执行步骤 概念讲解 主线程 微任务(micro task) 宏任务(macro task) Event Loop经典例题 这段代码的执行结果是什么? 正确答案: 具体流程: 事件循环 主线程从"任务队列"中读取执行事件,这个过程…

File类—递归文件搜索执行脚本文件

文章目录 一、需求分析二、File类2.1 File对象的创建2.2 File判断和获取方法2.3 创建和删除方法2.4 遍历文件夹方法 三、Runtime类—常见api四、递归文件搜索执行脚本文件 一、需求分析 在本篇博客中,我们想通过递归文件的方式,在D:\\判断下搜索QQ.exe这…

麒麟V10安装kerberos客户端

麒麟V10系统安装kerberos客户端 当系统具备yum镜像源的时候需要执行安装命令 yum install krb5-devel krb5-client krb5-libs -y 会提示报错 “未找到匹配的参数:krb5-client” 此时我们需要手动安装krb5-client 安装包链接放到了这里 链接: https://pan.baidu.com/s/1x1YVr6…

SQL Server的安装和首个库的创建

一、熟悉SQL Server的安装环境; 1.安装Microsoft的数据库管理系统SQL Server 2022 先把SQL Server 2022下载好后进行解压后出现以下界面然后点击基本进行安装 然后会出现以下界面: 一步步按照提示往下走即可,把SQL Server 2022安装完成后再…