嵌入式实时操作系统:RT-Thread设计与实现
上QQ阅读APP看书,第一时间看更新

1.3 嵌入式实时操作系统

在嵌入式设备中,除嵌入式操作系统之外,还有裸机程序,在主函数中编写一个大循环,循环中是各个任务的功能实现,而所有的任务都是平级顺序执行,下一个任务必须等待上一个任务运行完毕才能开始运行,这个运行着的大循环我们称之为后台程序。中断可以打断系统当前的后台任务优先执行,等中断处理完毕,再回到原先后台被中断处继续执行后台程序,中断处理程序称为前台程序。图1-5所示是一个前后台系统。

图1-5 前后台系统

这样的前后台系统在实时性处理方面存在缺陷,例如任务1是重要任务,需要能够得到及时响应,在运行任务4的时候,产生中断,执行任务1的条件被满足,最理想的快速响应方式是任务1立即被投入运行,但是在前后台程序中做不到,因为任务是被顺序执行的,即使任务1焦急万分,也必须等待任务4处理完毕后才能被运行。

嵌入式实时操作系统被设计成为一个抢占式系统,能够解决上述的实时性问题,它把任务分为不同的优先级,当运行条件被满足时,高优先级任务可以打断低优先级任务优先运行,从而极大地提高了系统实时性。实时操作系统执行任务示意图如图1-6所示。

图1-6 实时操作系统

当然,嵌入式实时操作系统相比前后台程序,不仅有实时性方面的进步,它在多任务管理、任务间通信、内存管理、定时器管理、设备管理等方面,也提供了一套完整的机制,极大程度上便利了嵌入式应用程序的开发、管理和维护。如果要和桌面操作系统进行类比,那么前后台程序开发好比直接使用BIOS进行开发,而使用嵌入式实时操作系统好比在Windows上进行应用开发。

总体来说,嵌入式操作系统是应用于嵌入式系统的软件,用来对接嵌入式底层硬件与上层应用软件,操作系统将底层驱动封装起来为开发者提供功能接口,极大地提高了应用程序的开发效率。

1.3.1 主流嵌入式实时操作系统

uC/OS是美国的一款RTOS,发布于1992年。2001年,北航的邵贝贝教授第一次将有关uC/OS的书籍翻译成中文,该书出版后获得了大量好评,当时该书遇上了“嵌入式系统开发”风口,大量的高校学生开始学习嵌入式系统,将该书作为学习嵌入式操作系统的入门书籍,将学习的内容带入各类项目和产品后,它的特点才渐渐崭露头角。在2010年以前,uC/OS一直是国内大多企业的首选RTOS。2010年以后,开源免费的RTOS开始流行,而uC/OS本身的商业收费策略一直未能及时调整,导致很多厂商转而选择开源免费的操作系统,如FreeRTOS、RT-Thread。

FreeRTOS诞生于2003年,按照开源、免费的策略发布,可用于任何商业和非商业场合。2004年,英国的ARM公司推出第一款基于ARMv7-M架构的Cortex-M3 IP核,主打高性价比的MCU市场,随后美国德州仪器公司推出了第一款基于Cortex-M3内核的MCU,接下来意法半导体、恩智浦、飞思卡尔、爱特梅尔等欧美厂商相继推出了基于Cortex-M内核的MCU,出于性价比的考虑,这些厂商都选择了FreeRTOS作为芯片默认使用的嵌入式操作系统,趁着这波热潮,FreeRTOS迅速崛起,在国内外流行开来。

RT-Thread是国内的一款嵌入式实时操作系统,诞生于2006年,许可证类似FreeRTOS,以开源、免费的方式进行发布。与FreeRTOS和uC/OS不同的是,RT-Thread自创建之初的定位就不仅是一个RTOS内核,而是包含网络、文件系统、GUI界面等组件的中间件平台,它秉承开源、免费的思想,积聚吸收社区的力量来不断发展壮大。经过十多年的积淀,RT-Thread已经成为一款知名度较高、口碑极佳、高度稳定可靠的实时操作系统。RT-Thread支持市面上所有的主流编译工具,如IAR、GCC、Keil等;在硬件支持方面,它完成了超过50款MCU芯片和所有主流CPU架构上的移植工作,包括ARM、MIPS、C-Sky、Xtensa、Andes与RISC-V等。在行业应用上,因为RT-Thread的高可靠性和组件丰富等特点,它被广泛应用于安防、医疗、新能源、车载、北斗导航以及消费电子等众多行业。

近两年来,随着RT-Thread推广力度的加大、文档资料的不断完善及周边生态合作伙伴支持热情的高涨,RT-Thread的企业项目需求显著增加,RT-Thread开发者的数量也呈现出加速增长的态势。线下活动方面,RT-Thread借助社区力量,定期组织一系列技术沙龙活动,活动覆盖多数一二线城市,受到了初学者和开发者的欢迎,参与线下技术沙龙成为他们学习RT-Thread、线下交流互勉的一个重要渠道。除此之外,移动微信、QQ社群的运营,线上培训讲座和设计竞赛的陆续展开都成为生态建设的重要部分,推动着RT-Thread社区的健康发展。

1.3.2 发展趋势

在传统嵌入式时代,设备之间相互孤立,系统和应用都较为简单,操作系统的价值也相对较低。各个厂商采用一个开源的RTOS内核,根据垂直应用领域的不同,构建、开发各自的上层软件,工作量可控,也基本能满足自身、客户和行业的需求。

进入物联网时代之后,原有的格局和模式将会被完全打破,联网设备的开发难度也呈几何级数增加,可靠性、长待机、低成本、通信方式和传输协议、手机兼容性、二次开发、云端对接等都成为必须考虑与解决的问题。

对于企业来说,带有丰富中间层组件和标准API接口的OS平台无疑能大大降低联网终端开发的难度,也能简化对多种云平台的对接,为未来各种IoT服务应用的部署和更新铺平道路。

国产物联网芯片的逐渐崛起,产业链持续增强的优势,为国产IoT OS的成功提供了良好的机遇和土壤,也为RT-Thread提供了更多的用武之地。物联网终端对软件能力的要求大大提高,RT-Thread作为一款IoT OS,它具有丰富的组件和高度可扩展的特性,这正是市场所需要的,因而越来越多的芯片厂商纷纷将它选为原生操作系统,和芯片一同推向市场。

在物联网时代,相信RT-Thread能和其他国内厂商一起,耐住寂寞、踏实前行、勇于创新、相互提携,实现物联网时代自主操作系统的梦想。