一初识freertos之freertos简介

IamSupreme IamSupreme     2023-01-12     111

关键词:

目录

一、什么是FreeRTOS?

二、为什么选择FreeRTOS?

三、FreeRTOS的特点

四、FreeRTOS资料与源码下载

五、FreeRTOS源码文件介绍


一、什么是FreeRTOS?

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类操作系统。

操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行的哪个任务。任务调度在各个任务之间的切换非常快,就给人们造成了同一时刻有多个任务同时运行的错觉。

某些操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,比如Unix操作系统,FreeRTOS操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。

FreeRTOS是RTOS系统中的一种,FreeRTOS十分的小巧,可以在资源有限的微控器中使用,当然FreeRTOS不仅仅局限于在微控器中使用,但从文件数中来说FreeRTOS要比uc/OS小的多。

二、为什么选择FreeRTOS?

RTOS类系统有很多,比如说UC/OS,资料很多,尤其是中文资料,那为什么要选择FreeRTOS呢?

2.1 FreeRTOS是免费的,学习RTOS操作系统的话,UC/OS是首先,但是做产品的话,免费的FreeRTOS操作系统就是个不错的选择。

2.2 很多半导体厂商产品的SDK(Software Development Kit)软件开发工具包,就使用FreeRTOS作为其操作系统,尤其是WIFI、蓝牙这些带有协议栈的芯片或模块。

2.3 简单,因为FreeRTOS的文件数量很少。

三、FreeRTOS的特点

FreeRTOS是一个可裁剪的小型的RTOS系统,其特点包括:

①FreeRTOS的内核支持抢占式,合作式和时间片调度。

②提供了一个用于低功耗的Tickless模式。

③系统的组件在创建时可以选择动态或者静态的RAM,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。基本可以满足较小系统的应用。

④FreeRTOS-MPU支持Core-M系列中的MPU单元,如STM32F429。

⑤FreeRTOS系统简单、小巧、易用,通常情况下内核占用4k-9k字节的空间。

⑥高移植性,代码主要用c语言编写。

⑦高效的软件定时器。

⑧强大的跟踪执行功能。

⑨堆栈溢出检测功能。

⑩任务数量不限、任务优先级不限。

四、FreeRTOS资料与源码下载

找资料最好在官网下载,FreeRTOS的官网是:www.freertos.org。

①进入FreeRTOS官网首页,就会看到download下载链接

②进入后下载“FreeRTOS 202112.00”文件,下载完成后解压到指定目录。

由于该网址是国外网站,建议翻墙下载,否则加载的非常慢。

五、FreeRTOS源码文件介绍

打开源码文件夹,重点看上面的两个文件夹:FreeRTOS和FreeRTOS-Plus,这两个文件里面的文件就是FreeRTOS的源码。

①FreeRTOS文件夹

打开FreeRTOS文件夹,可以看到里面有四个文件夹:

Demo文件夹里面就是FreeRTOS针对不同的MCU提供的相关例程,进行程序移植的时候可以参考这些例程。

License文件夹里面的就是相关许可信息。

Source文件里面就是FreeRTOS的源代码文件,include文件夹是一些头文件,移植的时候也是需要的,下面这些c文件就是FreeRTOS的源代码文件,移植的时候也是需要的。

重点来看一下portable这个文件夹,FreeRTOS是个系统,归根结底是软件的东西,它是怎么和硬件联系在一起的呢?那么中间就必须有一个桥梁,portable文件夹里面的东西就是FreeRTOS系统和具体的硬件之间的连接桥梁。不同的编译环境,不同的MCU,其桥梁是不同的,打开portable文件夹,如下图所示:

MemMang这个文件夹就是跟内存管理相关的,我们移植的时候是必须的。Keil文件夹里面的东西也是必须的,但是我们打开keil文件夹以后里面只有一个文件:See-also-the-AVDS-directory.txt,意思是参考RVDS文件夹里面的东西!

RVDS文件夹针对不同架构的MCU做了详细的分类,GD32F103C8T6就参考CORTEX_STM32F103_Keil,打开CORTEX_STM32F103_Keil文件夹,里面有两个文件就是我们移植的时候所需要的。

 

freertosfreertos新手入门——初识freertos

初识FreeRTOS一、实时操作系统概述1、概念2、RTOS的必要性3、RTOS与裸机的区别4、FreeRTOS的特点二、FreeRTOS的架构三、FreeRTOS的代码架构一、实时操作系统概述1、概念RTOS:根据各个任务的要求,进行资源(包括存储器、... 查看详情

freertos特性简介

FreeRTOS由RichardBarry开发,是一个开源的、可移植的、小型的嵌入式实时操作系统内核。FreeRTOS既支持抢占式多任务,也支持协作式多任务。FreeRTOS的主要特性如下:实时性:FreeRTOS“可以”配置成为一个硬(Hard)实时操作系... 查看详情

esp32基础应用之freertos使用(代码片段)

文章目录前言1FreeRTOS任务的使用1.1任务状态1.2任务优先级1.3创建任务2FreeRTOS事件标志组的使用参考资料:《STM32F103FreeRTOS开发手册V1.1.pdf》前言1FreeRTOS任务的使用1.1任务状态FreeRTOS中的任务有运行态、就绪态、阻塞态、挂起态... 查看详情

1.freertos的简介&移植freertos到stm32平台(代码片段)

I.说明作者:WXP(翱翔云端的鸟)联系方式:328452854@qq.com||13100610853(联系请注明CSDN)申明:个人原创,转载请先经过本人同意!要说的话:个人水平有限,不足之处,还请指正!有疑问欢迎大家联系我交流探讨!=... 查看详情

stm32移植freertos(图文实操)

目录一、Freertos1、前后台系统2、可剥夺型内核3、Freertos系统简介二、FreeRTOS移植1.在基础工程种新建Freertos文件夹,并且将源码添加到这个文件夹中。2.在poertable文件夹中保留keil、MemMang、和RVDS,其他删除3.在基础工程中新建分... 查看详情

freerto之cortex-m中断管理

...(可从其看出有多少个中断和中断类型)  5,在使用FreeRTOS,需 查看详情

stm32移植freertos(图文实操)(代码片段)

目录一、Freertos1、前后台系统2、可剥夺型内核3、Freertos系统简介二、FreeRTOS移植1.在基础工程种新建Freertos文件夹,并且将源码添加到这个文件夹中。2.在poertable文件夹中保留keil、MemMang、和RVDS,其他删除3.在基础工程中新建分... 查看详情

stm32移植freertos(图文实操)(代码片段)

目录一、Freertos1、前后台系统2、可剥夺型内核3、Freertos系统简介二、FreeRTOS移植1.在基础工程种新建Freertos文件夹,并且将源码添加到这个文件夹中。2.在poertable文件夹中保留keil、MemMang、和RVDS,其他删除3.在基础工程中新建分... 查看详情

freertos之任务调度vportyield

freeRTOS支持多个任务具有相同的优先级,因此,当它被配置为可抢占内核时,调度算法既支持基于优先级的调度,也支持时间片轮流调度。任何时候调度器运行时它都选择处于就绪状态下的优先级最高的那个任务;如果有多个任... 查看详情

七,freertos之——队列同步与互斥(代码片段)

...栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。转:同步与互斥概念理解link实验一:同步实验代码划重点创建队... 查看详情

freertos高级篇4---freertos任务切换分析

  FreeRTOS任务相关的代码大约占总代码的一半左右,这些代码都在为一件事情而努力,即找到优先级最高的就绪任务,并使之获得CPU运行权。任务切换是这一过程的直接实施者,为了更快的找到优先级最高的就绪... 查看详情

freertos高级篇4---freertos任务切换分析

  FreeRTOS任务相关的代码大约占总代码的一半左右,这些代码都在为一件事情而努力,即找到优先级最高的就绪任务,并使之获得CPU运行权。任务切换是这一过程的直接实施者,为了更快的找到优先级最高的就绪... 查看详情

freertos系列教程之第一章freertos概述与体验:1.1freertos目录结构(代码片段)

文章目录教程目录1.1FreeRTOS目录结构1.1FreeRTOS目录结构1.2核心文件1.3移植时涉及的文件1.4头文件相关1.4.1头文件目录1.4.2头文件1.5内存管理1.6Demo1.7数据类型和编程规范1.7.1数据类型1.7.2变量名1.7.3函数名1.7.4宏的名1.8安装Keil1.8.1下载K... 查看详情

freertos系列教程之第一章freertos概述与体验:1.1freertos的目录结构(代码片段)

文章目录教程目录1.1FreeRTOS目录结构1.1FreeRTOS目录结构1.2核心文件1.3移植时涉及的文件1.4头文件相关1.4.1头文件目录1.4.2头文件1.5内存管理1.6Demo1.7数据类型和编程规范1.7.1数据类型1.7.2变量名1.7.3函数名1.7.4宏的名1.8安装Keil1.8.1下载K... 查看详情

freertos低功耗之睡眠模式

...足的情况,影响用户体验。STM32F103睡眠模式介绍说明:在FreeRTOS系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看STM32F103参考手册和Cortex-M3权威指南。在系统或电源复位以后,微控制器处于... 查看详情

正点原子freertos(下)(代码片段)

目录第十六章FreeRTOS事件标志组16.1事件标志组简介16.2创建事件标志组16.3设置事件位16.4获取事件标志组值16.5等待指定的事件位16.6事件标志组实验16.6.1实验程序设计16.6.2程序运行结果分析第十七章FreeRTOS任务通知17.1任务通知简介1... 查看详情

正点原子freertos(下)(代码片段)

目录第十六章FreeRTOS事件标志组16.1事件标志组简介16.2创建事件标志组16.3设置事件位16.4获取事件标志组值16.5等待指定的事件位16.6事件标志组实验16.6.1实验程序设计16.6.2程序运行结果分析第十七章FreeRTOS任务通知17.1任务通知简介1... 查看详情

freertos代码分析之:全局链表

注:有序插入:则根据xItemValue值从小到大(MAX:0xFF),排序插入    无序插入:按照插入的时间先后顺序,从第一个节点到最后一个节点(vListEnd),依次插入有序插入的执行时间较长,先后顺序即代表了执行的顺序,... 查看详情