• 正文
  • 相关推荐
申请入驻 产业图谱

FreeRTOS是个啥?最通俗易懂的解释

06/19 11:10
1050
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大家好,我是专注分享职业规划/技术科普/智能改变生活有关原创文章的allen康哥。

很多关注公众号的朋友想入门嵌入式,很大可能都是从Arduino、STM32这些单片机开始的。如果你只是点个灯,那裸机直接用main循环干就完事了!但是如果你想同时读取传感器、控制LED、发送数据这些事一起做。是不是有点难受了?

这个时候,今天的主角就登场了——FreeRTOS。你可以简单的理解它是嵌入式单片机开发中的“超级管家”,下边就带大家了解下这家伙的厉害之处。

首先第一个问题,大家可能会想知道,什么是操作系统?

我们之所以可以用手机同时聊微信、听歌、刷网页,这其实就是后台的操作系统在干活。操作系统非常忙,它会一边管理像CPU、内存、屏幕、键盘、网卡等这种硬件。另一边处理浏览器、游戏等等这种软件应用。操作系统让软件乱流是用这些硬件资源,让我们感觉就像软件在同时运行。这种能力叫多任务处理。正是这种多任务处理能力,让我们不用直接面对复杂的硬件细节,开发软件更快、更简单、更容易维护。

然后就是第二个问题,为什么嵌入式单片机开发需要操作系统?

单片机芯片对比我们日常使用的手机来说性能是相当弱的,资源也很紧张,flash基本都是KB这种级别!所以嵌入式硬件某种程度来说就是做专一事件的定制硬件,比如控制智能锁、监测心率、驱动电机等等。所以这种设备就对实时性有很强的要求,不能说可快可慢那还得了。

所以一般的通用系统就不适合嵌入式开发了,因为这些系统更在意用户体验,所以专家们就设计了一款专为实时性设计的操作系统——RTOS ,翻译过来就是Real Time Operating System,实时操作系统这个系统的强项就在于“调度器RTOS的调度器核心目标就是:确保任务执行的顺序和时间可预测!

第三个问题,那怎么实现时间可预测呢?没错,靠“优先级”!

在RTOS开发中,你要把要做的任务都定义好,这种我们叫他“task”。然后给每一个task分配一个优先级,比如紧急的刹车任务优先级最高,闪个状态灯的任务优先级低调度器时刻盯着:哪个“就绪”的Task优先级最高?优先级最高的Task马上获得CPU执行权!它不主动让出(比如等待事件、延时)或者被打断(被更高优先级Task抢占),就占着CPU不放!

然后就是第四个问题,也是今天的主题,FreeRTOS是个啥?

简单来说,FreeRTOS就是刚才说的嵌入式操作系统中的一种,而且是比较优秀的一种。除了具备上述操作系统的功能外,它是完全免费开源的,无论个人学习、做项目、甚至拿去开发商业产品卖钱,都不用交任何费用!

而且,它是一个经过商业考验的可靠系统,比NXP恩智浦意法半导体ST、英飞凌Infineon瑞萨Renesas、TI德州仪器英伟达NVIDIA这些企业都和FreeRTOS的开发团队紧密合作。

还一个得天独厚的优势,它被集成在这些大厂的芯片参考设计和开发工具里,包括国内同学最熟悉的STM32CubeMX。另外FreeRTOS还有庞大的社区,各种学习资料丰富,很适合学习。


相关推荐