Bootstrap

FreeRTOS操作系统(详细速通篇)——— 第一章

        本专栏将对FreeRTOS进行快速讲解,带你了解并使用FreeRTOS的各部分内容。适用于快速了解FreeRTOS并进行开发、突击面试、对新手小白非常友好。期待您的后续关注和订阅

目录

1 FreeRTOS简介

1.1 什么为FreeRTOS?

1.2 为什么选择FreeRTOS?

1.3 FreeRTOS与裸机的区别?

1.3.1 裸机中将如何处理?

1.3.2 FreeRTOS操作系统中将如何处理?

1.4  FreeRTOS与裸机的特点

1.4.1 裸机

1.4.2  FreeRTOS

1 FreeRTOS简介

1.1 什么为FreeRTOS?

        首先,来看一下 FreeRTOS 这个名字,可以分为两部分:“Free”和“RTOS”。“Free”意味着免费、自由和不受约束,而“RTOS”则是实时操作系统(Real Time Operating System)的缩写。需要注意的是,RTOS 并不是指某一个特定的操作系统,而是一个类别,包括 μC/OS、FreeRTOS、RTX 和 RT-Thread 等等。这些都是 RTOS 类的操作系统。因此,从 FreeRTOS 这个名字中我们可以看出,它是一款免费的实时操作系统。

1.2 为什么选择FreeRTOS?

        市场上的操作系统众多,为什么我们要选择FreeRTOS操作系统呢?并且大多数开发者都在使用此操作系统呢?原因如以下几点:

  • 1.简单易用:FreeRTOS 使用简单,具有很好的可移植性,适合各种嵌入式开发平台;

  • 2.任务不限:可创建的实时任务数量没有软件限制,根据系统资源灵活配置;

  • 3.优先级不限:任务优先级分配没有限制,多个任务可以设置为同一优先级,灵活性高;

  • 4.调度方式:支持抢占式调度、协程式调度(不再更新)、时间片调度,满足不同应用需求;

  • 5.可裁剪:核心代码仅有 9000 多行,包含在 3 个 .c 文件中,非常容易裁剪和管理;

  • 6.免费开源:FreeRTOS 是免费开源的,无潜在商业风险,无须担心版权问题;

  • 7.模块化设计:FreeRTOS 采用模块化设计,使各个功能模块相互独立;

  • 8.低功耗管理:FreeRTOS 支持进入各种低功耗模式,帮助延长电池寿命。

1.3 FreeRTOS与裸机的区别?

         FreeRTOS与裸机的最大区别是:FreeRTOS在遇到突发情况的时候,可以进行程序的切换,然后再切换回来。举例来说:小王同学在打游戏,对象突然发来消息,并且过了一会儿肚子痛了。分别对应以下三种事件:

事件1:打游戏       

事件2:对象消息       

事件3:拉肚子

1.3.1 裸机中将如何处理?

       裸机处理的方式就比较简单呆傻,会在完成一件事情之后再去完成另外一件事情。举例来说,程序会安排排列顺序依次运行。

对于裸机系统而言:
while(1) 
{ 
	打游戏();
	回复信息(); 
	上厕所();
}

        在小王打完游戏之后,然后进行回复消息,然后进行上厕所。最后,回复对象消息不及时对象生气了,拉肚子也没有上厕所,忍着肚子痛打完设定时长的游戏。这个处理方式明显不合理,但裸机只会按照任务的顺序运行。于是有了我们的 FreeRTOS操作系统来改变这一方式。

1.3.2 FreeRTOS操作系统中将如何处理?

        FreeRTOS的做法相对裸机来说会非常的聪明,首先创建三个任务

在打游戏的途中,如果收到对象的消息直接进行回复然后继续打游戏,肚子痛了就是上厕所然后回来可以继续打游戏。合理的将事情进行处理掉。  FreeRTOS处理的情况如下图:

1.4  FreeRTOS与裸机的特点

1.4.1 裸机

        裸机系统,又称为前后台系统,由前台的中断服务函数和后台的主循环构成,运行时按照设定的任务顺序进行运行,以下是对裸机系统的一些问题的详细描述:

  • 实时性差:应用程序轮流执行,导致实时性能不佳。
  • 延迟:系统可能会空等待,浪费CPU时间。
  • 结构臃肿:功能实现都在无限循环中,结构复杂且难维护。

1.4.2  FreeRTOS

RTOS特点:RTOS,全称为实时操作系统(Real Time OS),其主要特点是强调实时性。。具体特点如下:

  1. 延时函数:用于任务调度。
  2. 抢占式调度:高优先级任务可以抢占低优先级任务的执行。
  3. 任务堆栈:每个任务都有独立的栈空间。
  4. 分而治之:将功能划分为多个独立任务。

FreeRTOS其主要采用任务优先级的大小进行运行:任务优先级大的任务先运行,且可以打断任务优先级低的任务,在任务优先级高的任务运行完之后,低优先级任务继续执行。

        本专栏将对FreeRTOS进行快速讲解,带你了解并使用FreeRTOS的各部分内容。期待诸君的关注点赞!

;