切换语言
EN CN
论坛首页 / 树莓派开发者 / 为您的 Raspberry Pi 项目选择正确的实时操作系统(RTOS) / 操作系统 / 为您的 Raspberry Pi 项目选择正确的实时操作系统(RTOS)

为您的 Raspberry Pi 项目选择正确的实时操作系统(RTOS)

admin发布于 2025-01-24
9992 浏览

选择合适的操作系统对于项目的成功至关重要。了解如何在Raspberry Pi上使用RTOS,并看看你有哪些选择吧!

从OS到RTOS

Raspberry Pi是由Raspberry Pi基金会推出的一系列单板计算机(SBC)。它们最初是作为教育工具开发的,但后来被广泛用于各种项目,包括机器人技术、家庭自动化、物联网、个人和商业用途。这些信用卡大小的计算机能够执行普通电脑的任务,如文字处理、编程和网络浏览。

在个人台式计算机上,你可能使用的是像Windows、MacOS或Linux这样的全功能操作系统。(有些Raspberry Pi能够运行Windows,但它们的原生操作系统是基于Linux的。)但有时,这些类型的操作系统对于你的任务来说过于占用资源。对于某些项目,实时操作系统(RTOS)是更合适的选择。

Pi上的RTOS

顾名思义,RTOS是为时间关键型用例设计的,换句话说,就是那些必须满足时间要求的项目。这类项目的例子可以在航天器系统、心脏起搏器和空中交通管制中找到。与通用计算系统相比,这些现实世界的应用需要精确的时间限制来管理和优先处理任务。

必须指出的是,使用像Arduino这样的微控制器板来处理实时任务是更常见的做法。也就是说,Raspberry Pi单板计算机价格低廉,拥有庞大的社区,并提供充足的教育资源来帮助你入门。Raspberry Pi基金会还发布了他们的第一块微控制器板——Raspberry Pi Pico。

局限性

如果你打算在Raspberry Pi单板计算机上运行RTOS,那么需要注意一些局限性。RTOS系统的一个重要要求是足够的随机访问存储器(RAM),而较旧的Raspberry Pi型号可能没有这一点。根据你的具体用途,你还需要注意你的板子的最大时钟速度(Raspberry Pi4可以达到1,500 MHz,但这并不适用于整个系列)。

此外,Raspberry Pi单板计算机没有实时时钟(RTC),而是通过互联网连接来保持时间。这可能意味着对于时间关键型反馈应用来说,可靠性和准确性会降低。然而,这个问题有解决办法,比如添加一个实时时钟模块。事实上,Raspberry PiPico已经配备了RTC硬件。

(请注意,RTC中的“实时”与RTOS中的“实时”含义不同。前者是指能够在现实世界中显示时间的设备,而后者是指电子设备中的不间断计时。)

如果你有一个需要RTOS的项目,那么有很多选择可供选择。让我们来看看Raspberry Pi上一些最好的RTOS选项!

FreeRTOS

从名字上你可能就能猜到,FreeRTOS是一个用于嵌入式系统的免费开源RTOS。它是一个相对较小的应用程序,由不到9,000行代码组成,包括注释!尽管体积小,但它能够优先处理、调度和运行用户定义的任务。其代码的约40%处理任务之间的通信,因此它是具有竞争优先级项目的强大选择。

FreeRTOS正在积极开发和支持,甚至可用于商业应用。这意味着用户可以使用FreeRTOS将其产品推向市场,而无需获得开发者的许可或支付费用。

GitHub用户jameswalmsley已经为Raspberry Pi整合了一个FreeRTOS的基本端口,如果你想自己尝试,这将是一个很好的起点。

  • 开发者:Richard Barry(现在由亚马逊网络服务管理)
  • 用途:时间关键型嵌入式系统应用的单一、独立解决方案;更小、更易使用的选项
  • 显著特性和功能:提供多线程或多任务、互斥量、信号量和软件定时器的方法;低功耗应用的无滴答模式

ChibiOS

ChibiOS是一个紧凑且快速的实时操作系统。尽管体积小(尽管不如FreeRTOS那么小),但在性能上毫不妥协。它可以从8位架构向上扩展,功能完整,具有完全静态的架构以及清晰优雅的代码库。

如果你想使用它,ChibiOS在三种许可下可用:有免费的开源和商业选项,以及一个用于大规模部署的付费完全商业许可。

GitHub用户steve-bate分享了ChibiOS的Raspberry Pi端口,并提供了一个有用的入门指南,包括硬件解释。

  • 开发者:Giovanni Di Sirio
  • 用途:紧凑、快速的RTOS
  • 显著特性和功能:对于大多数内部数据结构(如就绪列表、计时器列表和线程队列)使用高效的双向循环链表

RTEMS

多处理器系统实时执行体(RTEMS)是一个支持开放应用程序接口(API)标准(如可移植操作系统接口POSIX)的开源选项。它已被用于太空飞行、医疗应用、网络以及许多其他嵌入式系统。

RTEMS定期更新稳定版本,并有一个Discord服务器用于社区支持。

与这个列表上的其他一些选项不同,RTEMS直接支持Raspberry Pi硬件。如果你想试试它,可以从RTEMS网站下载软件包,还有一个有用的设置指南。

  • 开发者:OAR公司
  • 用途:太空飞行、医疗行业、网络等应用
  • 显著特性和功能:为Raspberry Pi提供指定支持包

RT-Thread

RT-Thread是一个开源且可扩展的实时操作系统。它与x86、ARM RISC-V和Xtensa硬件兼容,还有一个用于资源受限设备的Nano版本。最小内核只需要1.2 KB的RAM和3 KB的闪存,这远远少于你的Raspberry Pi可能拥有的可用资源。

RT-Thread特别支持基于RP2040的开发板,如Raspberry PiPico,它还列出了对Raspberry Pi2、3和4型号的支持。还有一个图形化集成开发环境(IDE)(RT-Thread Studio),这使得这个RTOS对于经验较少的开发者来说更加易用。

  • 开发者:Bernard Xiong & RT-Thread团队
  • 用途:嵌入式应用和物联网设备
  • 显著特性和功能:为多个Raspberry PiSBC型号和Pico提供指定支持;图形化IDE

NuttX

NuttX是一个实时操作系统(RTOS),专注于标准合规性,特别是POSIX和美国国家标准协会(ANSI)的标准。它的第二个重点是可伸缩性,并且与从8位到64位的微控制器环境兼容。

它已被移植到新的Raspberry PiPico和基于RP2040微控制器的其他主板上。它完全支持其两个ARM Cortex-M0+核心上的对称多处理(SMP)操作。

  • 开发者:格雷戈里·纳特(Gregory Nutt)
  • 预期用途:符合国际标准的RTOS
  • 显著特点和功能:体积小、可伸缩性强

TrampolineRTOS

Trampoline是为小型嵌入式系统设计的静态RTOS,这意味着用户可以对内存分配进行更多控制。这种类型的RTOS操作起来更复杂,但对于重复任务来说,它可以是一个更稳定且可预测的选择。

Trampoline API与汽车标准保持一致,但这不仅仅是一个局限于单一行业的简单选择。文档中特别支持早期Raspberry Pi型号中使用的博通BCM2836处理器,因此,如果你手头有旧款的Raspberry Pi,这将是一个安全且稳定的选择。

  • 开发者:LS2N的实时系统小组
  • 预期用途:汽车领域的嵌入式RTOS
  • 显著特点和功能:静态RTOS;支持旧款Raspberry Pi型号

RODOS

实时机载可靠操作系统(RODOS)是另一个开源的嵌入式选项,最初是为控制卫星而开发的,所以你可以相信它的准确性!毕竟,它是在德国航空航天中心开发的,至今仍用于该中心的微卫星项目。

RODOS可以独立运行(“裸机”)或在另一个操作系统之上运行,这使其能够灵活应用于各种项目类型。

  • 开发者:维尔茨堡大学信息学研究所
  • 预期用途:卫星控制或任何需要高可靠性的应用
  • 显著特点和功能:超快速启动;线程安全的通信和同步

Mbed (Linux) OS

最后,Mbed OS是一个为物联网(IoT)设备设计的开源嵌入式操作系统。它包括基于ARM Cortex-M微控制器开发IoT设备所需的所有功能。虽然Mbed OS目前还不支持Raspberry Pi主板,但在撰写本文时,一个针对Raspberry PiPico的移植版本正在开发中,并且过去已经成功实现了一些用于Raspberry Pi的API。

然而,相关的操作系统Mbed Linux OS是专门为Raspberry Pi3等流行开发板所基于的ARM Cortex-A处理器设计的。虽然该存储库已不再维护,但仍在GitHub上可访问,只是要注意,它不再获得持续支持。

  • 开发者:Arm
  • 预期用途:嵌入式应用和IoT设备
  • 显著特点和功能:Raspberry PiPico移植版本正在开发中

原文链接: https://all3dp.com/2/rtos-raspberry-pi-real-time-os/

树莓派 Raspberry Pi5 Pico 2 Raspberry Pi1 无人机

上海晶珩

上海晶珩是树莓派官方设计合作伙伴和官方代理商,专注于推广树莓派技术在多个行业中的应用,并提供专业技术服务,以加速客户产品研发进程。上海晶珩为物联网(IoT)、工业自动化、人工智能(AI)、工业控制等领域提供全面的工业树莓派解决方案和可靠的工业计算机产品。

  • 上海市嘉罗公路1661号盛创企业家园29号楼
  • +86-159 2148 3028
  • sales@edatec.cn
提交您的留言

提示

提交即表示您同意 EDATEC 的隐私政策

请输入验证码

captcha
1.513450s