电子发烧友网 > 嵌入式技术 > 正文

FreeRTOS知识解密:我们为什么要学习RTOS?为什么要选用FreeRTOS?

2018年08月29日 16:07 次阅读

今天带着大家了解和学习一下FREERTOS.。

在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对于C/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。。。

FreeRTOS知识解密:我们为什么要学习RTOS?为什么要选用FreeRTOS?

1.为什么学习RTOS?

作为基于ARM7、Cortex-M3硬件开发的嵌入式工程师,我一直反对使用RTOS。不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险,更重要的是我认为绝大多数基于ARM7、Cortex-M3硬件的项目,还没复杂到使用RTOS的地步,使用状态机就足够了。

对于现代的微处理器,特别是资源相对丰富ARM7、Cortex-M3硬件来说,RTOS占用的硬件资源已经越来越可以忽略。所以在当今环境下,我们无需担心RTOS会拖累性能。相反,RTOS提供的事件驱动型设计方式,使得RTOS只是在处理实际任务时才会运行,这能够更合理的利用CPU。在实际项目中,如果程序等待一个超时事件,传统的无RTOS情况下,要么在原地一直等待而不能执行其它任务,要么使用复杂(相对RTOS提供的任务机制而言)的状态机机制。如果使用RTOS,则可以很方便的将当前任务阻塞在该事件下,然后自动去执行别的任务,这显然更方便,并且可以高效的利用CPU。处理这类事件,是我使用RTOS的最大动力,但考虑到系统的稳定性,我不得不再三权衡RTOS可能带来的一些弊端:

1.大多数RTOS代码都具有一定规模,任何代码都可能带来BUG,何况是代码具有一定规模的RTOS,因此引入RTOS的同时也可能会引入该RTOS的BUG,这些RTOS本身的BUG一旦被触发,影响可能是是灾难性的。

2.熟练的使用RTOS是一项技能,需要专业的知识储备和长期的经验积累。不将RTOS分析透彻,很容易为项目埋下错误。典型的,像中断优先级、任务堆栈分配、可重入等,都是更容易出错的地方。

3.RTOS的优先级嵌套使得任务执行顺序、执行时序更难分析,甚至变成不可能。任务嵌套对所需的最大堆栈RAM大小估计也变得困难。这对于很多对安全有严格要求的场合是不可想象的。

4.RTOS应该用于任务复杂的场合,以至于对任务调度的需求可以抵消RTOS所带来的稳定性影响,但大部分的应用并非复杂到需要RTOS。

以上原因是我拒绝在实际项目中使用RTOS的理由,但是否使用RTOS跟是否学习RTOS完全是两码事。我认为任何嵌入式软件设计人员都应该至少学习一种RTOS,不仅是需要掌握RTOS背后的操作系统原理、学习RTOS的编程方式,更是为将来做准备。

即便我认为现在的物联网有点言过其实,但我依然看好物联网的发展前景。随着物联网的发展,未来的嵌入式产品必然更为复杂、连接性更强以及需要更丰富的用户界面。当处理这些任务时,一个好的RTOS就变得不可缺少了。

书到用时方恨少,我希望自己永远不会有这种感觉。所以从现在起,我要开始深入一个RTOS,探索它背后的原理,掌握其编程方法,避免其缺陷和陷阱,并将它安全的用在将来的项目中。

2.为什么选用FreeRTOS?

对比了许多RTOS,最终选择FreeRTOS,原因是多方面的:

1.SafeRTOS便是基于FreeRTOS而来,前者是经过安全认证的RTOS,因此对于FreeRTOS的安全性也有了信心。

2.大量开发者使用,并保持高速增长趋势。2011、2012、2013、2014、2015、2017年(暂时没有2016年的数据)的EEtimes杂志嵌入式系统市场报告显示,FreeRTOS在RTOS内核使用榜和RTOS内核计划使用榜上都名列前茅。更多的人使用可以促进发现BUG,增强稳定性。

3.简单。内核只有3个.c文件,全部围绕着任务调度,没有任何其它干扰,便于理解学习。而且,我根本不需要其它繁多的功能,只要任务调度就够了。

4.文档齐全。在FreeRTOS官方网站上,可以找到所有你需要的资料。

5.免费、开放源码。完全可以免费用于商业产品,开放源码更便于学习操作系统原理、从全局掌握FreeRTOS运行机理、以及对操作系统进行深度裁剪以适应自己的硬件。

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

采用一个能够支援多重视讯输入格式

37356025

发表于 2018-08-29 10:03 141次阅读
采用一个能够支援多重视讯输入格式

什么是eSIM?真的能取代SIM卡吗?

5月25日,中国移动对外发布了国内首款eSIM芯片C417M,可提供芯片+eSIM+连接服务。3月,...

发表于 2018-08-29 09:42 54次阅读
什么是eSIM?真的能取代SIM卡吗?

关于嵌入式听力诊断系统中如何伪迹消除

47278546

发表于 2018-08-29 09:34 184次阅读
关于嵌入式听力诊断系统中如何伪迹消除

Windows CE操作系统体系结构及功能介绍

嵌入式操作系统是与应用环境密切相关的,从应用范围角度来看,大致可以分为通用型的嵌入式操作系统如Win...

发表于 2018-08-29 05:41 17次阅读
Windows CE操作系统体系结构及功能介绍

凌华科技:Matrix无风扇嵌入式计算机产品系列...

2011年2月,北京讯——凌华科技推出新款“Matrix无风扇嵌入式计算机”系列产品MXE-1200...

发表于 2018-08-29 05:20 16次阅读
凌华科技:Matrix无风扇嵌入式计算机产品系列...

如何在U-Boot中实现对Yaffs镜像的设计?

U-Boot是目前广泛使用的嵌入式操作系统通用引导程序,具有功能丰富强大,支持多种操作系统和CPU体...

发表于 2018-08-29 05:02 24次阅读
如何在U-Boot中实现对Yaffs镜像的设计?

如何用DM6446实现Windows CE显示驱...

作为一款多媒体处理芯片,TI公司推出的DM6446 采用ARM+DSP 的双内核架构,有着丰富的外设...

发表于 2018-08-29 02:45 55次阅读
如何用DM6446实现Windows CE显示驱...

如何用uClinux系统设计汽车黑匣子?

根据国家最新出台的汽车行驶记录仪的标准:要求汽车行驶记录仪能够对实时时钟、日期及驾驶时间的采集、记录...

发表于 2018-08-29 01:39 63次阅读
如何用uClinux系统设计汽车黑匣子?

基于MAP芯片ATJ2135的嵌入式MP3播放器...

嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁...

发表于 2018-08-29 01:07 29次阅读
基于MAP芯片ATJ2135的嵌入式MP3播放器...

一款基于嵌入式视频服务器的远程实时视频采集系统实...

随着通信网络技术的迅速发展,基于网络的高质量视频传输已逐步取代传统的文字语音交互模式,成为当今数字通...

发表于 2018-08-28 17:49 60次阅读
一款基于嵌入式视频服务器的远程实时视频采集系统实...

世界机器人大会:NVIDIA Jetson Xa...

近日,机器人“饕餮盛宴”——世界机器人大会(WRC, World Robot Conference)...

发表于 2018-08-28 17:01 310次阅读
世界机器人大会:NVIDIA Jetson Xa...

关于嵌入式系统的分类与特点

50110121

发表于 2018-08-28 10:38 756次阅读
关于嵌入式系统的分类与特点

2018嵌入式技术及行业应用趋势沙龙

 Arm公司是全球知名的半导体知识产权 (IP) 提供商,全世界超过95%的智能手机和平板电脑都采用...

发表于 2018-08-28 09:49 394次阅读
2018嵌入式技术及行业应用趋势沙龙

第三代智能功放TFA9897,让业界领先的扬声器...

恩智浦正全力以赴,为快速发展的便携设备和可穿戴设备市场开发可用的创新解决方案,该产品的推出进一步彰显...

发表于 2018-08-28 09:26 55次阅读
第三代智能功放TFA9897,让业界领先的扬声器...

【开发经验】嵌入式硬件设计需要考虑的一些问题总结

发表于 2018-08-28 09:23 214次阅读
【开发经验】嵌入式硬件设计需要考虑的一些问题总结

正确的学习linux的路线

如果想学上层的图形界面的应用,那么学习一下QT,编一个我们最开始学习的helloworld,放到开发...

发表于 2018-08-27 17:41 190次阅读
正确的学习linux的路线

Arm发展史,浅谈Arm成功秘诀

Arm正在实现从端到云的支持,支持合作伙伴使用Arm或者自己的微架构。

发表于 2018-08-27 16:58 249次阅读
Arm发展史,浅谈Arm成功秘诀

海底捞在餐桌上配置无线充电服务

随着海底捞准备赴港上市,媒体间对于这个老牌火锅企业再次掀起了新一轮热烈讨论。国内的火锅品牌如此多,味...

发表于 2018-08-27 14:19 218次阅读
海底捞在餐桌上配置无线充电服务

linux网盘视频分享

发表于 2018-08-27 14:18 204次阅读
linux网盘视频分享

linux详细资料网盘教程视频

发表于 2018-08-27 14:14 200次阅读
linux详细资料网盘教程视频

一文了解Linux平台搭建与环境熟悉

嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,ucos,vxworks,l...

发表于 2018-08-27 10:57 649次阅读
一文了解Linux平台搭建与环境熟悉

基于带处理器和FPGA的新型SoM组合设计

很多嵌入式设计使用基于微处理器和微控制器的单板计算机 (SBC) 和模块化系统 (SoM)(例如,请...

发表于 2018-08-27 09:46 601次阅读
基于带处理器和FPGA的新型SoM组合设计

单片机/ARM死机或跑飞常见的查找方法

发表于 2018-08-27 09:34 349次阅读
单片机/ARM死机或跑飞常见的查找方法

关于STM32的几种输入模式以及外部中断的配置

发表于 2018-08-27 09:11 185次阅读
关于STM32的几种输入模式以及外部中断的配置

嵌入式系统学习知识体系,初学者必看

从这些应用可以看出,要完成一个以MCU为核心的嵌入式系统应用产品设计,需要有硬件、软件及行业领域相关...

发表于 2018-08-27 09:00 129次阅读
嵌入式系统学习知识体系,初学者必看

以ARM9和Linux为核心的嵌入式视觉系统设计

测试硬件性能稳定之后,在Linux 系统下把图像采集、图像显示和保存图像命令写成一个脚本,放在文件系...

发表于 2018-08-26 09:24 115次阅读
以ARM9和Linux为核心的嵌入式视觉系统设计

以ARM处理器S3C2440A为核心的嵌入式无线...

系统初始化包括对芯片OV511、OV7260,USB2.0 控制器CY7C68013A , 无线收发...

发表于 2018-08-26 09:17 256次阅读
以ARM处理器S3C2440A为核心的嵌入式无线...

提高GIS地图显示速度的嵌入式应用

系统对每个地图分别制作多个比例尺的地图数据,同时参考地图地理要素的规范, 根据要素的重要程度将不同比...

发表于 2018-08-26 09:13 57次阅读
提高GIS地图显示速度的嵌入式应用

以嵌入式ARM处理器为核心的物流管理无线PDA终...

系统应用于仓库的物流管理,需要较好的应用程序界面,同时需要满足跨平台的要求,因而使用C#程序设计语言...

发表于 2018-08-26 09:08 234次阅读
以嵌入式ARM处理器为核心的物流管理无线PDA终...

如何对嵌入式存储器进行测试和可测性设计?

这种测试方法的优点是利用SoC现有资源,而不需要设计额外的测试电路,也不需要对现有电路进行任何修改,...

发表于 2018-08-26 09:04 61次阅读
如何对嵌入式存储器进行测试和可测性设计?

以S3C2440为核心的嵌入式温室环境监测系统设...

UML序列图(Sequence Diagram)一般用于确认和丰富一个环境的逻辑。一个使用情境就是系...

发表于 2018-08-26 08:55 114次阅读
以S3C2440为核心的嵌入式温室环境监测系统设...

嵌入式初学者注意事项

发表于 2018-08-25 10:19 346次阅读
嵌入式初学者注意事项

嵌入式软件可靠性设计需注意以下四个方面的问题!

男人征服世界,女人通过征服男人来征服世界;硬件叱咤江湖,软件通过控制硬件来统治江湖。当今世界,放眼...

发表于 2018-08-25 09:27 91次阅读
嵌入式软件可靠性设计需注意以下四个方面的问题!

在这个物联网飞速发展的时代,嵌入式产业前景无限

嵌入式技术和物联网产业发展迅速,嵌入式技术在巩固传统的应用基础上,也在探索新兴市场的应用,物联网(...

发表于 2018-08-25 09:24 299次阅读
在这个物联网飞速发展的时代,嵌入式产业前景无限

可为10/25/100G提供高集成的Si5332...

Silicon Labs(亦称“芯科科技”)最新发布的Si5332任意频率的时钟发生器可以为10/2...

发表于 2018-08-24 17:51 559次阅读
可为10/25/100G提供高集成的Si5332...

【转】新手学习嵌入式十"不要"

发表于 2018-08-24 15:41 369次阅读
【转】新手学习嵌入式十"不要"

华北工控嵌入式准系统产品,助力智能楼宇的建设

智能楼宇的人工智能核心,汇总整个楼宇的监控信息、刷卡记录,室内摄像机能清晰捕捉人员信息,在门禁刷卡时...

发表于 2018-08-24 11:16 124次阅读
华北工控嵌入式准系统产品,助力智能楼宇的建设

华北工控第三代冰翅结构嵌入式准系统,用于城市智能...

智慧路灯信息系统是由分工不同的硬件系统搭建云数据搭建起来的。具有Led实时滚动屏幕、节能降耗,实现无...

发表于 2018-08-24 11:10 80次阅读
华北工控第三代冰翅结构嵌入式准系统,用于城市智能...

华北工控产品给共享充电宝租赁机带来了哪些优势

如今市场共享充电宝主要分为两类:桌面式共享充电宝——在一个装置上有多个接口,可同时给多个手机充电,不...

发表于 2018-08-24 11:03 131次阅读
华北工控产品给共享充电宝租赁机带来了哪些优势

一种基于光学法的油液磨粒在线监测方法

图像采集及处理子系统中,使用以ARM为核心的处理器,通过程序控制继电器进一步控制蠕动泵启动,从而...

发表于 2018-08-24 09:53 247次阅读
一种基于光学法的油液磨粒在线监测方法

以Linux 2.6为基础的提高Linux实时性...

它的开发通常受到很多客观条件的限制,诸如较弱的CPU处理能力、较小的内存空间、较少的可供选择的外设、...

发表于 2018-08-23 16:47 81次阅读
以Linux 2.6为基础的提高Linux实时性...

深入剖析uC/OS-III和FreeRTOS的区别

发表于 2018-08-22 23:08 331次阅读
深入剖析uC/OS-III和FreeRTOS的区别

中国半导体全面进击,为何仍差一招

整体来说,即便对岸集成电路设计业近年来市场规模呈现不断扩大的局面,但仍需留意结构性调整的问题,以及高...

发表于 2018-08-22 17:59 238次阅读
中国半导体全面进击,为何仍差一招

关于机动车辆中压力传感器的使用

汽车压力传感器通常被用于测量车辆中液体和气体的压力,因此可在诸多车辆系统中用到。按应用细分,汽车压力...

发表于 2018-08-22 16:37 230次阅读
关于机动车辆中压力传感器的使用

贸泽电子全面备货STM32H7系列微控制器

贸泽备货的ST STM32H7微控制器内置带有双精度浮点运算单元 (FPU) 的32位Arm Cor...

发表于 2018-08-22 10:48 238次阅读
贸泽电子全面备货STM32H7系列微控制器

嵌入式ARM入门之谈

发表于 2018-08-22 09:42 725次阅读
嵌入式ARM入门之谈

从行业和技术来谈嵌入式行业职业规划

发表于 2018-08-22 09:36 303次阅读
从行业和技术来谈嵌入式行业职业规划

释义思维:模仿人类语言识别的句子嵌入模块

精准的时间序列预告对交通、能源、金融、经济等领域都非常重要。但是现代技术都是通过时间数据来建立预测模...

发表于 2018-08-22 08:50 842次阅读
释义思维:模仿人类语言识别的句子嵌入模块

为什么以FPGA来说嵌入式的出路?

你一般就业面很广,但时时刻刻会听到或接触FPGA,这很正常,因为FPGA这些年一年比一年好,很有...

发表于 2018-08-21 14:35 359次阅读
为什么以FPGA来说嵌入式的出路?

功耗和安全性嵌入式系统设计的两大担忧

功耗与安全性是嵌入式系统设计师的两大重要担忧,尤其是在 IoT 传感器命令和控制应用程序中。 对于工...

发表于 2018-08-21 13:48 1221次阅读
功耗和安全性嵌入式系统设计的两大担忧

2018年嵌入式系统的物联网和人工智能应用研讨会...

发表于 2018-08-21 11:59 379次阅读
2018年嵌入式系统的物联网和人工智能应用研讨会...

一种应用于测控系统的基于Linux的嵌入式系统的...

随着网络控制技术的快速发展,工业以太网得到逐步完善,在工业控制领域获得越来越广泛的应用。工业以太网...

发表于 2018-08-21 10:35 85次阅读
一种应用于测控系统的基于Linux的嵌入式系统的...

基于PXA255开发板外围字符设备的嵌入式Lin...

随着嵌入式系统的发展,嵌入式 Linux以其稳定性和开放源代码的优点在嵌入式系统的开发中得到广泛应用...

发表于 2018-08-21 10:19 64次阅读
基于PXA255开发板外围字符设备的嵌入式Lin...

一文教你如何区别ARM Cortex系列处理器

ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同...

发表于 2018-08-20 10:10 144次阅读
一文教你如何区别ARM Cortex系列处理器

嵌入式ARM和IIC总线协议,三大问题及答案

处理器收到来自中断控制器的中断处理请求,保存中断上下文,跳转到中断对应的处理处,(快速完成中断中断上...

发表于 2018-08-20 10:00 125次阅读
嵌入式ARM和IIC总线协议,三大问题及答案

基于嵌入式Linux下的I2C设备驱动的总体思路...

由于I2C总线的通用性,Linux作为一款优秀的嵌入式操作系统,也必须要对其要有很好的支持。在Li...

发表于 2018-08-20 09:04 152次阅读
基于嵌入式Linux下的I2C设备驱动的总体思路...

基于嵌入式操作系统Linux环境中的没有竞争态读...

在对实时采集更新的数据进行处理时,往往会遇到数据更新速度与数据处理的速度不匹配的问题。这种情况下,...

发表于 2018-08-20 08:36 67次阅读
基于嵌入式操作系统Linux环境中的没有竞争态读...

基于嵌入式TMS320DM*6平台上的Linux...

嵌入式系统开发已经进入32位时代,在当前数字信息技术和网络技术高速发展的后PC时代,嵌入式系统已经...

发表于 2018-08-19 09:27 81次阅读
基于嵌入式TMS320DM*6平台上的Linux...

一种应用于测控系统的基于Linux的嵌入式系统的...

随着网络控制技术的快速发展,工业以太网得到逐步完善,在工业控制领域获得越来越广泛的应用。工业以太网...

发表于 2018-08-19 09:04 73次阅读
一种应用于测控系统的基于Linux的嵌入式系统的...

如何利用FPGA硬件实现固定倍率的图像缩放?

近年来,FPGA技术发展迅速,片内集成了PLL、硬件乘法器、存储器,具有了实现优秀算法的充足资源。许...

发表于 2018-08-18 09:36 73次阅读
如何利用FPGA硬件实现固定倍率的图像缩放?

在嵌入式系统中有哪些处理器技术和特点?

国际上公认的通用嵌入式处理器有三大类:MCU、DSP和MPU(Micro-Processor Uni...

发表于 2018-08-18 09:28 185次阅读
在嵌入式系统中有哪些处理器技术和特点?

在嵌入式系统中如何用CPLD技术实现DRAM控制...

如果微处理器状态信号无效,这个状态则是一个T4状态,状态机B从B1转到B2.如果状态是一个T4状态,...

发表于 2018-08-18 09:25 77次阅读
在嵌入式系统中如何用CPLD技术实现DRAM控制...

基于Linux的嵌入式实时操作系统研究应如何进行...

在嵌入式产品的开发中,有必要寻找一种廉价的嵌入式实时操作系统,以降低产品的开发成本和系统复杂度。由于...

发表于 2018-08-18 09:13 90次阅读
基于Linux的嵌入式实时操作系统研究应如何进行...

如何对嵌入式最小系统的软硬件架构进行改进?

嵌入式最小系统即是在尽可能减少上层应用的情况下,能够使系统运行的最小化模块配置。对于一个典型的嵌入式...

发表于 2018-08-18 09:01 82次阅读
如何对嵌入式最小系统的软硬件架构进行改进?

32位嵌入式处理器和8位处理器的开发方式有哪些不...

对于一个32位的嵌入式系统则不同。在硬件设计开发的同时,需要有实时多任务操作系统环境,软件工程师可以...

发表于 2018-08-18 08:47 97次阅读
32位嵌入式处理器和8位处理器的开发方式有哪些不...

基于嵌入式Linux内核的系统设备驱动程序开发设...

Linux是一个遵循POSIX标准的免费操作系统。具有BSD和SYSV的扩展特性。与其他操作系统相比...

发表于 2018-08-17 15:12 70次阅读
基于嵌入式Linux内核的系统设备驱动程序开发设...

基于Linux2.6内核的实时性增强方案设计

Linux以其功能强大、源代码开放、支持多种硬件平台、模块化设计方案以及丰富的开发工具支持等特点广泛...

发表于 2018-08-17 15:01 47次阅读
基于Linux2.6内核的实时性增强方案设计

浅析液晶拼接屏技术的未来发展趋势

液晶拼接墙作为大屏幕显示设备广泛应用于视频监控领域,实现由多个液晶显示单元拼接显示一幅大画面的功能。

发表于 2018-08-16 15:43 333次阅读
浅析液晶拼接屏技术的未来发展趋势

关于Linux嵌入式操作系统的优势特征详解

嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种...

发表于 2018-08-16 15:17 288次阅读
关于Linux嵌入式操作系统的优势特征详解

基于水下无人机,Intel Braswell芯片...

海洋覆盖了地球表面70%的面积,但人类对它的了解,仍然还在起步阶段。科技的发展带来的是人们生活水平的...

发表于 2018-08-14 17:07 138次阅读
基于水下无人机,Intel Braswell芯片...