vesperW · 9月19日

哪些情况不用RTOS,必须上linux系统?

在嵌入式系统开发中,RTOS(实时操作系统)因其高效的实时性能和资源占用少的特点,常被用于对实时性要求极高的场景中。然而,在某些情况下,RTOS可能无法满足需求,这时就需要考虑使用嵌入式Linux系统。

MCU加RTOS这对黄金组合,足以应对绝大多数工业控制领域,以及低端消费领域,只要对硬件性能不敏感并且要求高实时性的场合,就是他们大放异彩的时候。这对组合还有一个极大的优势,就是硬件成本低,而且软硬件的开发周期也较短,整体技术方案极具性价比。从这个角度考虑,似乎也没有太多可以让SOC和Linux登场的机会。

image.png

然而,当把方向转回到商用消费领域,以我们熟知的电动汽车的车机为例,我们大致可罗列出如下的必备功能:大尺寸触控屏显示,支持复杂的人机交互操作;支持多媒体功能,可打电话,可听音乐,可看电影等;可实现车内外设的启停和调节,如空调温度,座椅高度等;自带定位功能,支持地图应用实现行车导航功能;支持无线上网功能,用于数据更新和实时资讯的获取;支持第三方应用,并可自由安装和卸载;

上述的功能,就拿第一条来说,放在黄金组合身上,都会遇到难以克服的性能瓶颈。举一个我真实遇到过的例子,当时我手上负责的项目要实现如下功能:用STM32F769驱动一个分辨率为1024*768的MIPI接口的显示屏。因为前期我已经用ST的官方开发板将MIPI驱动验证清楚了,并且效果也达到了预期,我很有信心换一个大的显示屏也一样没有问题,不过我忽略了一个要点--官方的开发板的显示屏分辨率仅为480*272。由于两个屏幕的像素点整整相差了6倍,加之ST的MIPI接口只能支持2路数据通道,即便我把所有的硬件加速功能全部用上(包括DMA2D),依然无法扭转其本身性能不足的问题。最后调试出来的效果就是只能静态显示,但凡有一些诸如滑动,旋转之类的动态显示都会非常卡顿。无可奈何,整个硬件方案推倒重来,主控芯片切换为STM32MP157,软件直接上Linux和QT。虽然Linux Kernel的移植让我百般烦恼,QT的配置让我无比痛苦,但经历前面的折磨后,后面的开发就非常迅速,而且关键的是,画面卡顿的问题迎刃而解了。

所以,你会发现,Linux在某些场景下还是有优势,这里分享一些适合Linux的情况:

  1. 复杂的多任务和多进程管理:
  • 当系统需要同时运行大量复杂的任务和进程,且这些任务之间存在复杂的交互和资源共享需求时,RTOS的任务调度能力可能显得不足。嵌入式Linux系统以其强大多任务处理能力和丰富的进程间通信机制(如信号量、消息队列、共享内存等),能够更有效地处理这种复杂情况。
  1. 丰富的网络功能需求:
  • 如果嵌入式系统需要实现复杂的网络协议栈、进行大量的网络数据传输、运行网络服务器或与其他网络设备进行广泛的通信,RTOS的网络功能可能显得相对薄弱。嵌入式Linux拥有更完善的网络功能支持,包括TCP/IP协议栈、各种网络服务和应用程序接口(API),能够满足复杂的网络需求。
  1. 大规模的存储管理:
  • 对于需要管理大容量存储设备、支持复杂的文件系统(如ext4、FAT32等)以及进行大量文件读写操作的应用,RTOS的存储管理能力可能受限。嵌入式Linux提供了更好的存储管理能力,包括文件系统支持、磁盘I/O调度和缓存策略等,能够更好地满足大规模存储需求。
  1. 图形用户界面(GUI)需求:
  • 如果系统需要一个功能丰富、复杂的图形用户界面,RTOS的GUI支持可能较为有限。而嵌入式Linux拥有更多的GUI库和工具可供选择(如Qt、GTK等),能够实现更美观和交互性强的界面。
  1. 运行大型软件应用:
  • 当系统需要运行人工智能算法、图像处理软件(如OpenCV)、数据库等大型复杂应用时,RTOS可能因资源有限而难以胜任。嵌入式Linux提供了更充足的资源和软件支持环境,能够更好地支持这些大型应用的运行。
  1. 对硬件驱动的广泛支持:
  • 嵌入式Linux拥有庞大的社区和丰富的驱动资源,能够更容易地找到和集成各种硬件设备的驱动程序。这对于需要支持多种硬件设备的嵌入式系统来说是一个重要优势。
  1. 可扩展性和定制性要求高:
  • 当项目需要频繁添加新功能、扩展系统或根据特定需求进行深度定制和优化时,RTOS的灵活性可能受限。而嵌入式Linux的开源性和模块化设计使其具有更高的可扩展性和定制性。
  1. 复杂的开发环境和工具需求:
  • 如果项目需要使用复杂的开发工具链、调试工具以及集成各种开发库,RTOS的开发环境可能显得较为简陋。而嵌入式Linux通常能够提供更全面的开发支持,包括丰富的开发工具和调试工具。

综上所述,在选择嵌入式系统时,需要根据项目的具体需求、性能要求、开发资源和时间等多方面因素来综合考虑。在某些复杂或多样化的应用场景中,嵌入式Linux系统可能是比RTOS更为合适的选择。

END

作者:strongerHuang
来源:strongerHuang

推荐阅读

欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
2891
内容数
284
分享一些在嵌入式应用开发方面的浅见,广交朋友
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息