FreeRTOS基础(一)FreeRTOS概念

系列文章目录

`
一、FreeRTOS基础(一)FreeRTOS概念


文章目录

  • 系列文章目录
  • 一、裸机与操作系统
  • 二、关于FreeRTOS
  • 三、FreeRTOS优势
  • 官网


在这里插入图片描述

一、裸机与操作系统

刚接触单片机的时候,大部分人接触的应该都是点亮LED灯,不管是从51还是从stm32开始学起的人开始使用的应该都是裸机系统,裸机里面运行的时候一般都是使用while循环,比如点亮LED灯的时候,要使用while循环让灯不停地亮灭。当接触项目后运行的事情可能就不止一个了,可能得边亮灯边发送串口,还得边播放音乐,这些都是在while循环里完成的,当要求实时性比较高的任务出现时,就得在中断里完成了,但是对于单片机来说,一般都是单核运行,在微观上都是单线程运行的,中断占用了内核,那么正常的程序在中断程序运行期间相当于是没运行的了。
于是裸机系统又叫做前后台系统,前台系统指的是中断服务函数,后台系统就是指的while大循环,即应用程序。
FreeRTOS基础(一)FreeRTOS概念_第1张图片
其缺点自然是实时性比较差,如果每个事情占用的时间不多的话那能马上处理好,对其他事情影响也不大,但是如果短时间内没法处理,特别又有了延时函数,其他事情便会被阻塞,有些大师自然可以使用精妙的逻辑来避免这种情况发生,但随着处理的事情越来越复杂,要处理的事情越来越多,那么程序就会变得极为难写,这也就是为什么操作系统为什么出现了。
实时操作系统全名为real time os,简称RTOS,强调的是实时性,其主要作用就是将单片机运行的时间分成一个一个的时间片,再根据调度器将时间片分成一个个任务,再将延时函数处理成将任务挂起,这样就不会占用单片机资源。
FreeRTOS基础(一)FreeRTOS概念_第2张图片
我们来对比下裸机与操作系统的运行图,看到有什么不一样了吗?
大致一看好像也没什么区别嘛,就是把不同的任务分了优先级进行运行,其实确实没什么不同,我们可以把调度器就看成裸机的while循环,只不过使用了非常精妙的方法使得任务看起来同时运行了,但若是你在一个高优先级的任务里面写一个空的while循环,那便会发现低优先级的任务就永远也不会运行了,这就是说明,在操作系统中,单片机在微观上仍然是单线程运行的。
在操作系统中,最重要的便是调度器和延时函数,在所有的操作系统中这两个都是必备的,调度器是实现多任务的方式,延时函数保证系统在延时的时候可以处理其他任务。

二、关于FreeRTOS

FreeRTOS 是一款 “开源免费”的实时操作系统,遵循的是 GPLv2+的许可协议。这里说 到的开源,指的是你可以免费得获取到 FreeRTOS 的源代码,且当你的产品使用了 FreeRTOS 且没有修改 FreeRTOS 内核源码的时候,你的产品的全部代码都可以闭源,不用开源,但是当 你修改了 FreeRTOS 内核源码的时候,就必须将修改的这部分开源,反馈给社区,其它应用部 分不用开源。免费的意思是无论你是个人还是公司,都可以免费地使用,不需要掏一分钱。
FreeRTOS 由美国的 Richard Barry 于 2003 年发布,Richard Barry 是 FreeRTOS 的拥有 者和维护者,在过去的十多年中 FreeRTOS 历经了 9 个版本,与众多半导体厂商合作密切, 累计开发者数百万,是目前市场占有率最高的 RTOS。
FreeRTOS 于 2018 年被亚马逊收购,改名为 AWS FreeRTOS,版本号升级为 V10,且 开源协议也由原来的 GPLv2+修改为 MIT,与 GPLv2+相比,MIT 更加开放,你完全可以理 解为是为所欲为的免费。V9 以前的版本还是维持原样,V10 版本相比于 V9 就是加入了一 些物联网相关的组件,内核基本不变。亚马逊收购 FreeRTOS 也是为了进军眼下炒的火热 的物联网和人工智能。

三、FreeRTOS优势

免费开源:商业产品中使用,无潜在商业风险,无须担心
可裁剪:FreeRTOS的核心代码9000+行,包含在3个.c文件中
简单:简单易用,可移植性非常好
优先级不限:任务优先级分配没有限制,多任务可同一优先级
任务不限:可创建实时任务数量没有软件鲜知
调度方式:支持抢占式、协程式、时间片流转任务调度方式
使用人数:
FreeRTOS基础(一)FreeRTOS概念_第3张图片

官网

FreeRTOS的官网是:https://www.freertos.org/,自从2023年官网也支持中文了,而且文档做的也还可以。

你可能感兴趣的:(FreeRTOS,stm32,stm32)