gzyueqian
13352868059

POSIX是未来推进嵌入式开发RTOS项目的关键吗?

更新时间: 2024-07-02 09:57:51来源: 粤嵌教育浏览量:75

在嵌入式系统中,对兼容性和便携性的追求是一个永恒的挑战。虽然今天许多系统都采用了实时操作系统(RTOS),但每个系统都是独一无二的,差异很大,因此兼容性仍然是一个问题。如果不希望应用程序代码与RTOS紧密耦合,那么只有几种选择。

 

首先,可以创建一个操作系统抽象层(OSAL)。虽然优雅且符合架构师的世界观,但大多数团队无法接受这个想法。这增加了复杂性,并且设计出完全符合需求的产品具有挑战性。(即使有一个ArmCMSIS-RTOS v2这样的存在)

 

一个更有趣也更容易接受的解决方案是采用便携式操作系统接口(POSIX)POSIX是一组标准化的API和约定,长期以来一直是类似Unix操作系统领域的主流。但是POSIX是未来开发RTOS应用程序的关键吗?在这篇文章中,我们将探讨POSIXRTOS开发中的作用、它的优势、考虑事项以及表明它可能确实是前进方向的趋势。

 

POSIX是什么?

POSIXIEEE定义的一组标准,用于确保跨类Unix操作系统的兼容性和可移植性。它提供了标准的应用程序编程接口(API)、命令行外壳和实用程序接口。POSIX为线程管理、文件I/O、套接字和计时器定义了接口,使嵌入式开发人员能够更容易地编写跨不同Unix系统工作的软件。

 

RTOS兼容性挑战

RTOS应用程序通常是为它们运行的特定操作系统定制的。这种定制可确保应用程序充分利用RTOS的特性和功能。但是,它也将应用程序与RTOS紧密耦合在一起!对于一个从未计划改变RTOS团队来说,这可能不是问题。RTOS成为他们的应用程序所围绕的架构的核心组件。

 

任何优秀的软件架构师都会讨厌这个想法。一个好的架构和实现应该是与操作系统无关的,而不是以操作系统为中心!今天,许多嵌入式开发团队正在设计他们计划在未来十年或更长时间内使用的软件平台。如何确定选择的RTOS将仍然存在或提供需要的支持?如果业务目标或需求发生变化,而不同的RTOS最能满足这些需求,那该怎么办?

 

如果发生上述任何情况,并且已经将RTOS与应用程序紧密耦合,那么将面临大量的时间和成本来更新和重新验证的软件。你可能认为这只是更新调用的问题,只是几天的工作。事情总是比你想象的复杂。例如,请参阅FreeRTOS如何在队列中发送数据,以及ThreadX如何在队列中将数据发送。一个按字节,另一个按!没什么大不了的,但如果你忽略了这一区别呢?(给你个提示静默缓冲区溢出,导致应用程序中其他地方出现意外行为!)。

 

POSIXRTOS应用程序中的作用

POSIX可以作为RTOS开发中的一个统一因素。通过采用符合POSIXAPIRTOS供应商可以为嵌入式开发人员提供一个熟悉且一致的编程接口。这意味着为一个POSIX兼容的RTOS编写的应用程序可以更容易地移植到另一个,而不需要大量的代码更改。

有利于RTOS应用程序的一些关键POSIX特性包括

l POSIX Threads (Pthreads):支持多线程和并行性,这对实时应用程序至关重要。

l POSIX文件I/O简化跨不同RTOS平台的文件操作。

l POSIX套接字用标准化的套接字API促进网络通信。

l POSIX定时器管理时间关键的任务和调度。

l POSIX信号处理异步事件和信号。

l POSIX互斥和信号量线程安全操作的同步原语。

 

RTOS应用程序中使用POSIX的优点和缺点

RTOS应用程序中采用POSIX有几个好处。首先,POSIX兼容性使得跨不同的RTOS平台重用或改编代码更加容易,减少了开发时间和工作量。接下来,在基于POSIX的环境中有经验的嵌入式开发人员可以在处理RTOS应用程序时利用他们的技能。传统上,新开发人员需要大量的培训。有了POSIX,任何熟悉Unix模型的开发人员从第一天开始就能高效工作。最后,开发者可以同时针对多个平台。例如,一个团队可以使用RTOS作为他们的嵌入式目标,但是测试他们的应用程序代码Linux

 

这些优势有利于使用POSIX。不过,在做出这样的决定之前,有必要了解POSIX的局限性。例如,有人认为POSIX抽象引入的开销可能会影响资源受限环境中的实时性能。事实上,在资源高度受限的系统中,增加的复杂性可能会使POSIX的使用立即变得不可行。即使采用了POSIX,某些应用程序也可能会有特定的需求,单靠POSIX是无法完全满足的。在这种情况下,特定于RTOSAPI可能仍然是必要的,尽管团队可能会尽力减少这些API的使用。

 

结论

在兼容性和可移植性至关重要的世界里,POSIX是应对RTOS应用程序开发挑战的有前途的解决方案。虽然它可能不是一个万能的解决方案,但它在代码可移植性和开发人员熟悉度方面的优势必须得到重视。RTOS应用的未来可能是POSIX驱动的,在资源受限的嵌入式系统中开创了一个跨平台开发的新时代。已经有几个开源的和商业的RTOS解决方案提供了POSIX接口。看看这个成熟的标准是否会在使用RTOS应用程序的嵌入式开发人员中获得第二次生命,这将是一件有趣的事情。

免费预约试听课