今日带着咱们了解和学习一下FREERTOS.。
在嵌入式领域中,嵌入式实时操作体系正得到越来越广泛的运用。选用嵌入式实时操作体系(RTOS)能够更合理、更有效地运用CPU的资源,简化运用软件的规划,缩短体系开发时刻,更好地确保体系的实时性和可靠性。由于RTOS需占用必定的体系资源(尤其是RAM资源),只需μC/OS-II、embOS、salvo、FreeRTOS等少量实时操作体系能在小RAM单片机上运转。相关于C/OS-II、embOS等商业操作体系,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运转机理、以及对操作体系进行深度裁剪以习惯自己的硬件。