Raspberry Pi 3是否支持RTOS?


12

我是RTOS世界的新手。我打算在Raspberry Pi 3上使用一些RTOS(可能是FreeRTOS)。任何人都可以建议哪种RTOS对初学者有利吗?

由于他们尚未在BCM2837上发布数据表,是否有可能将RTOS加载到Raspberry Pi 3上?

这有帮助吗?


1
当然,没有理由不能将RTOS加载到RPi。但是,请求推荐特定的OS是没有主题的。
Chenmunka '16

1
可以知道为什么需要RTOS吗?其他操作系统不会为您带来什么呢?您必须满足哪些实时要求?您能说明一下RTOS对初学者的好处吗?

1
@Chenmunka“哪个是RPi最好的RTOS?” (针对“初学者”或其他)(由于基于意见)。就是这样,但是标题的字面意思是“ raspberry pi 3是否支持RTOS?” ->如您所指出,大概是。如果剩下的问题确实是在说什么RTOS,那没关系-我想这必然是任何实际答案的本质。至少有一种。
goldilocks

@joan我需要RTOS才能为汽车应用提供嵌入式解决方案。由于我是RTOS的新手,所以我想知道它是否可以在家中使用可用的硬件(rpi-3)来学习。
桑迪

看看Ultibo核心。这可能正是您所需要的。ultibo.org
avra

Answers:



5

到目前为止,我对树莓派3测试了以下RTOS均未成功,这将帮助某人避免浪费时间(我浪费了3个月的时间):FreeRTOS,Xenomai,RTEMS,BitThunder,ChibiOS / RT

对于RISC OS,它不是RTOS。

到目前为止,我只能在Raspberry Pi 3上运行的是Fuchsia OS的内核(洋红色),但是该文件处于早期阶段,因此文献记载不多。

另一种方法是建立你RTOS由你自己,是有可能的,使用ULTIBO核心,下面这些教程: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-编程功能于CPT-1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ


1
我已经在Raspberry Pi 3上成功使用Xenomai 2.6.5(使用github.com/margro/linux中的代码)。
steviethecat

4

ARM 是Broadcom处理器在所有当前Raspberry Pi型号上使用的ISA系列,它基于RISC,并为此编写了RISC OS。我认为RISC操作系统在他们的第一个十年就占据了ARM设备的主导地位,这是同一家英国技术公司(Acorn)最初设计ARM和RISC操作系统。实际上,ARM最初代表“橡子RISC机器”,这是Raspberry Pi之所以被称为“ Raspberry Pi”的部分原因,是因为英国的传统是用水果或坚果命名计算机系统。

RISC OS不是真正的实时操作系统,但是,它确实使用了协作式多任务处理,这意味着您可以运行一个进程,该进程可以自愿拒绝将自己交还给另一个进程。我可能不知道这会有什么后果,但是我认为:

  • 您可以配置一些东西以使其没有问题,但是可能会限制操作系统的功能(例如,在网络方面)。

  • 上下文切换到内核​​模式只会发生,因为进程为了完成其目标而进行了系统调用。

这与实时功能非常接近,具体取决于您需要获得的“实时”程度。此外,已经证实RISC OS在Pi 3上运行


谢谢回复。似乎真的不需要为rpi-3使用其他操作系统,因为驻留的OS也是实时的。我的应用程序针对的是嵌入式硬件,由于内存限制,该硬件无法具有基于Linux的操作系统(如raspbian)。关键是,我是否可以在rpi-3上加载其他具有较小内存占用的RTOS以便习惯于RTOS世界?rpi-3是否有任何限制?
桑迪

1
抱歉:为了解释,这不是讨论论坛。请再次游览,并注意“获得实用,详细问题的答案”部分。听起来好像您遗漏了问题的详细信息,邀请其他人浪费时间提供并非您想要的答案,因此您可以在以后的讨论中缩小范围。SE不是这样工作的。如果您有其他问题,请提出其他问题。 不要编辑此内容以更改其原始含义,否则我将其关闭。 谢谢。
goldilocks

1
不过,我会给您一些建议:如果您正在寻找一个可以在具有MB内存的系统上运行的操作系统,则应首先了解您的选择。只是随机选择一个“实时操作系统”以进行实践,可能最终使您对最终必须真正使用的操作系统一无所知。因此,不要浪费您的时间。 找出你需要使用什么,然后询问是否可以在PI等使用它
金发姑娘

0

由于RTOS的定义因应用程序而异,通常是一台计算机,看起来很简单,因此RISC OS是中等复杂应用程序的RTOS,不一定是高复杂应用程序的RTOS,尽管高度复杂的RTOS听起来像是一个矛盾。Mahmoud Almostafa RABBAH的示例没有使用操作系统,而是直接从引导加载程序(也不是RTOS)运行单任务程序。

理解这一点的唯一合理方法是将RTOS定义分为三个级别:

  • 低复杂度就像是洗衣机或数据记录器,并且首先使用更简单的硬件(例如Arduino或更简单的MCU,甚至只是顺序逻辑)可能会更好。它将消耗更少的功率,并且不必担心太多:永远不要使事情变得比必须的复杂。

  • 高复杂度就像一个完整的多任务系统,而RTOS则不是。如果需要,最好在单独的设备上运行GUI。高复杂度也可以监视调用其他进程的进程,其中某些进程必须优先处理,但是同样,最好在此处进行某种并行处理,否则它无法进行实时响应。

  • 中等复杂度将是您需要普通OS可以提供​​的接口(例如USB)以及小的显示输出的地方,但是您希望处理数据流并且不受任何干扰。这听起来像汽车应用程序的水平。

    为此,您可以在没有OS的情况下进行编译,使用主机进行开发,或者使用RISC OS的版本直接启动到BASIC并在目标计算机上进行开发,这通常会更容易。

    这将运行一个任务,该任务的速度足以轮询多个事件,而不会被其他事件打扰。除非禁用了硬件中断(相当容易做到),否则硬件中断仍然会运行,并且这些中断是使显示器/ USB等正常工作所必需的。其他硬件中断会运行计时器和您可能未使用的IO。

RISC OS在RTOS应用程序中的另一个优点是,您只能使用所需的模块,而这在传统的GUI应用程序中是没有意义的,并且已被STD / AdvantageSix [1]使用,尽管它们使用术语“嵌入式系统”。而不是“ RTOS”。这带来的优点是简化的设计,更低的功耗要求,更低的内存使用量以及更快的启动时间(某些I / O设备接口需要自己进行迷你启动,并且OS必须参与其中,尽管通常时间范围太短而无法注意到)。

我希望两者都能填补上述信息中的一些空白,并弄清我自己的知识方面的空白。

[1] http://www.advantagesix.co.uk/about_us.html (内存中的其他示例不再在线提供。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.