• 正文
  • 相关推荐
申请入驻 产业图谱

IEEE POSIX标准RTOS正在兴起,Zephyr、NuttX、RX5这类RTOS将是未来的趋势

04/27 10:45
971
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

微信公众号 | strongerHuang

早期,51单片机时代,处理器处理能力不足、RAM/Flash资源有限,要跑RTOS都很费劲。

而如今科技快速发展,早期遇到的问题都不是问题了,好多单片机主频都上1GHz了,RAM容量也已突破1MB,Falsh存储更是最大,再加上现在各种丰富的外设计口,外部扩展Flash也变得更方便了。

面对这种高性能、高存储的MCU,跑传统的RTOS(µC/OS、FreeRTOS等)可能不是这类MCU的目标,这几年看到的消息是,这类MCU都在拥抱IEEE POSIX 标准的RTOS,比如Zephyr、NuttX、RX5 这类 RTOS。

什么是POSIX ?

POSIX:Portable Operating System Interface,可移植操作系统接口。

是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称。来源:百度百科

Linux基本上逐步实现了POSIX兼容,但并没有参加正式的POSIX认证。微软的Windows NT声称部分实现了POSIX标准

值得关注的PX5 RTOSPX5 RTOS推出时间才3年左右,PX5 号称全新第五代 RTOS。

最小占用空间约1K RAM、1K Flash,亚微秒级上下文切换和 API 调用等。

PX5 RTOS 具有行业标准 POSIX pthreads API ,除了原生 POSIX pthread 支持信号量、互斥锁、消息队列等之外,PX5 RTOS 还提供实时扩展,如事件标志、快速队列、时钟周期计时器、内存管理等。

PX5 RTOS 由两个主要的源文件组成:px5.c和px5_binding.s

将这些RTOS文件放入任何C主项目中,然后即可运行PX5,无需复杂的项目和/或链接器控制文件的更改。

应用程序中使用PX5也很简单:只需包含POSIX pthread.h并添加一个调用px5_pthread_start 到你的 C 主函数,如下所示:

#include <pthread.h>
int main(){  /* Start PX5.  */   px5_pthread_start(1, NULL, 0);
  /* Once px5_pthread_start returns, the C main function     has been elevated to a thread - the first thread in     your system!  */  while(1)  {     /* PX5 RTOS API calls are all available at         this point. For this example, simply sleep for         1 second.  */      sleep(1);  }}

这两年,PX5 RTOS的生态也逐渐发展起来了,很多MCU大厂,如:ST、瑞萨英飞凌等都在做适配。

NuttX、Zephyr、RT-Thread这类RTOS也是未来趋势

NuttX、PX5 RTOS是原生实现IEEE POSIX pthreads API,Zephyr实现了IEEE 1003.1-2017(POSIX-1.2017)的子集,RT-Thread的POSIX接口基于内核函数封装

符合IEEE POSIX行业标准 ,就可无缝移植 Linux/POSIX 线程代码,这类RTOS可以看做是“小号 Linux”。

所以,你知道为什么说符合IEEE POSIX行业标准将是未来趋势吗?

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录