FreeRTOS系列第1篇---为何选择FreeRTOS?

1.为何学习RTOS?

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

         对于现代的微处理器,特别是资源相对丰富ARM七、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.  大量开发者使用,并保持高速增加趋势。20十一、20十二、201三、201四、201五、2017年(暂时没有2016年的数据)的EEtimes杂志嵌入式系统市场报告显示,FreeRTOS在RTOS内核使用榜和RTOS内核计划使用榜上都名列前茅。更多的人使用能够促进发现BUG,加强稳定性。
  3. 简单。内核只有3个.c文件,所有围绕着任务调度,没有任何其它干扰,便于理解学习。并且,我根本不须要其它繁多的功能,只要任务调度就够了。
  4. 文档齐全。在FreeRTOS官方网站上,能够找到全部你须要的资料。
  5. 免费、开放源码。彻底能够免费用于商业产品,开放源码更便于学习操做系统原理、从全局掌握FreeRTOS运行机理、以及对操做系统进行深度裁剪以适应本身的硬件。
  6. 2017年末,FreeRTOS做者加入亚马逊,担任首席工程师,FreeRTOS也由亚马逊管理。同时修改了用户许可证,FreeRTOS变得更加开放和自由。背靠亚马逊,相信将来FreeRTOS会更加稳定可靠。此外,之前价格不菲的《实时内核指南》和《参考手册》也免费开放下载,这使得学习更加容易。

 

         学习的资料来源主要是FreeRTOS的官方网站(www.freertos.org)和源代码。FreeRTOS的创始人RichardBarry编写了大量的移植代码和配套文档,我只不过是沿着Richard Barry铺好的路前进,因此,这没什么困难的。设计

         最后,感谢RichardBarry的付出,感谢Richard Barry的无私开源精神!blog

 

附录1:2010~2017年EEtimes杂志嵌入式市场调查报告有关RTOS使用榜截图事件

附录1.1  2010和2011年RTOS使用榜资源

 

附录1.2  2012和2013年RTOS使用榜


附录1.3   2013年和2014年RTOS使用榜

 

附录1.4   2014年和2015年RTOS使用榜

附录1.5   2017年RTOS使用榜