リアルタイムソフトウェアを実行することは可能ですか?


60

Linuxを実行していて、Linux用のリアルタイムパッチがあることは知っています。これらのパッチは機能しますか?

誰かがRaspberry Piで別のリアルタイムOSを試しましたか?

アイデアは、時間を重視する規制および制御ジョブにボードを使用することです。


2
閉じられたGPUソリューションが邪魔をすることになった場合、あなたができない理由を思い浮かぶ唯一のユニークな理由だと思います。リアルタイムタスクでGPUを無視することを決定できれば、リアルタイム拡張機能を機能させることができると思います。
クリスストラットン

7
raspberry piシステム全体が開いていないため、変更できません。問題は、リアルタイムタスクの実行中に(GPUではない)部分が邪魔にならないようにするか、それともやむを得ずRAMにアクセスするためにバスサイクルまたは「注意」のいずれかを要求するかどうかです。 「ハードタイミングの目標を妨げるような方法でARMコアから。
クリスストラットン

4
どうやらRISCOSは特定のリアルタイムアプリケーションに非常によく適合しており、Raspberry Piの移植は順調に進んでいます。* 8 ')
マークブース

4
RISCOSはリアルタイムosではありません(Wikipediaリンクによると)。
ラース・ポッター

4
CONFIG_PREEMPT_RTパッチは、Linuxを実行しているいくつかのARMプロセッサで実証されています。遅延の問題があるかもしれませんが、これらはマイクロ秒のオーダーで測定できるはずです。
ブレークスルー

回答:


16

RaspberryPiでXenomaiを実行することに興味があるかもしれません。ここで、これを行う方法に関するチュートリアルを見つけることができます。簡単に言えば、Xenomaiは、カスタムLinuxカーネル(カーネルソースに適用する必要のあるパッチを提供)を作成して、リアルタイムの別のカーネル(Xenomaiコア)を実行できるようにするプロジェクトです。これにより、Xenomaiアプリケーションをドライバーを作成することなく、幅広いハードウェアで実行できます(Linuxは非常に幅広いハードウェアで動作しているため)。これにより、いくつかの異なるRT APIを使用してRTユーザー空間アプリケーションを作成できます。


1
このツールで取得できる最大頻度はどれですか?1 kHzを丸めるレートでDCモーターを制御することに興味があります
ニコラスアリアス

19

Linuxカーネルでは、有効化によりPREEMPT_RT、制限されたレイテンシとリアルタイムAPIが提供されます。の構成PREEMPT_RTに加えて、SCHED_FIFOおよびSCHED_RRポリシーも選択する必要があります。また、アプリケーションは、適切なAPIを呼び出すか、適切なユーティリティを使用して、リアルタイムパラメータを設定する必要があります。

よると、自由電子の訓練:組込みLinuxでリアルタイム、PREEMPT_RTはカーネルにリアルタイム性をもたらしたプロジェクトでした。2.6.33および3.0カーネルストリームに完全に折りたたまれています。あなたがすべてを見つける文書を参照してください。

基本的に、Linuxカーネルにリアルタイム機能を提供する2つのアプローチがあります。

  • カーネル内、つまりPREEMPT_RTプロジェクトを変更します。
  • 通常のカーネルとリアルタイムパートのサイド・バイ・サイドを実行し、通常のカーネルの下に、3つの世代があった:RTLinuxRTAI、とXenomai。(AedosとしてAvio以下言及?)

編集:


2
Raspberry Piへようこそ、いい答えです!インゴ・モルナーはと一緒に使用(HRT)カーネルを達成するためにできるように、サポートハードリアルタイム機能を。現在、そのサポートは3.4.11カーネルに達し、「良いニュース」はパッチが「縮小している」ということです。そのため、そのほとんどがメインストリームカーネルソースに含まれているようです。ここでそれを適用して使用する方法の素晴らしいチュートリアルを見つけることができます。RT PREEMPT patchHigh Resolution Timers
Avio

1
ええと、Linuxでハードリアルタイムサポートを提供するための選択肢の中からAdeosを引用することを忘れないでください。
Avio

2
PREEMPT_RTをRaspberry Piカーネルで動作させることは簡単なことではなく、パッチを適用するだけで動作しないカーネルが生成されることを言及する必要があります。また、Raspberry Piカーネルには多くの新しいドライバーがあり、これらのドライバーはPREEMPT_RTでテストされておらず、過度に長いブロッキングスリープがクリアされていません。これは非常に進行中の作業、つまりです。
裸の

2
これに関するアップデートはありますか?ドライバーは現在、このカーネルパッチを使用するのに十分安定していますか?カーネルをまだコンパイルしていない人のための実用的なチュートリアルが欲しいです。
ファブ

@fabb:長い年月を経ても、rt要件に対してグリッチを持つドライバーがまだ存在します。あなたはそれを実行することによってのみ見つけるでしょう。ところで、最近、一部のユーザー空間アプリケーションの優先順位を上げると、ネットワークの不具合が発生しますが、これは予想外のことです。これらの種類の状況はすべて、高度な構成とアプリケーション固有のものです。
minghua

6

WyolumはaLaMode(私はそれをアーモンドPiと呼びます)を使用して、積み重ね可能な方法でPiの上に合わせます。リアルタイムクロックを備え、aTiny 328を使用し、GPIO Real UART /電力を供給し、さまざまな方法でフラッシュ可能です。Arduinoがリアルタイム割り込みで実行されている間、Piはあなたがやりたいこと、webサーバー/データベースを何でもできるので素晴らしいです。

ここに画像の説明を入力してください


1
2つのマイクロコントローラーを実行することは少し非現実的かもしれませんが、他のアプローチが十分に高速でない場合、これによりリアルタイム操作が保証されます。
ファブ

1
制御ループを遅くすることなく、RPiが他のµCと正常に通信する方法に関するヒントはありますか?
ファブ

1
はい。ただし、µCは、UART割り込みが制御ループタイマー割り込みを延期させないように、UARTをポーリングする必要があります。次に、制御ループの開始時にUARTをポーリングし、あまり時間がかからないように多くのバイトを読み取らないようにしますか?または、そのようにUARTバッファが簡単にオーバーフローする可能性がありますか?または、制御ループの周波数がUARTの速度よりも非常に高いため、ループごとに1バイトの読み取りが可能であれば、それで十分でしょうか?
ファブ

1
いい提案。BTW Raspberry Pi Alamodeはすでにしゃれています。アラモードは、アイスクリームをパイの上に置くときです。
ダン

1
本当に ?へへ。どういう意味だろう 今理にかなっている:)
ピョートルクラ

2

私がこれまで見た中で最高のソリューションは、X10i- HeberのRaspberry Pi用リアルタイム制御ボードです

X10iは、USBを介して任意のPCシステムから複数の入力/出力を制御できる、ユニバーサルで強力かつ安全なリアルタイムコントローラーです。Heberは現在、多くのプログラミング言語でサポートを提供し、プログラマー、発明者、および開発者がPCから外の世界に簡単に接続できるようにします。

上記のリンクは優れた広範なドキュメントを提供し、PiのDebianの最新バージョンでドライバーを最新の状態に維持しようとします。


それでは、Piからこれまでのリボンコネクタが必要ですか?そのものの採用写真を見つけることができませんが、本当にかさばっています。たくさんの例があるので、それは良いと思います。+1
ピョートルクラ

私はそれを使ったとは言えませんが、デモでUSBインターフェイスを使っている人を覚えているようですが、そうなると思います。はい、それはかなりかさばります。
-Jivings

1

Xenomaiで実行しているRaspberry Piに関する記事(フランス語をgoogle translateで翻訳)はこちらです。


5
こんにちは。通常、リンクされたページが移動した場合に備えて、単にリンクである回答は推奨しません。そのページの情報を回答に要約していただけますか?その後、リンクを参照として含めることができます。ありがとう!
Jivings

1

RODOSはさらに別のオプションです。これは、ドイツ航空宇宙センターとモンテネグロ教授の大学チームと学生によって開発されたオープンソースプロジェクトです。

C ++を使用しており、完全にオブジェクト指向の方法で記述されており、ARM7、Atmel AVR、STM32 / Cortex-M3、Xilinx、Raspberry Piをサポートしています:)、...

現在、衛星TETおよびLoTToマシンで使用されています。

もちろん、両方の長所を活用するためにLinux(可能な場合)上で実行することを望みますが、Linuxが正しいAPIを提供できるかどうかわからないため、リアルタイムの質問は残ります。

RODOSを取得するには、セルジオモンテネグロ教授またはDLR(ドイツ航空宇宙センター)にメッセージを書き込む必要があります。


1

Linuxのほかに、リアルタイムオペレーティングシステムがあります。オープンソースのものの間で非常に人気があるのはChibiOS / RTです。

完全でポータブルなオープンソース、コンパクトで非常に高速なRTOS(リアルタイムオペレーティングシステム)

簡単な紹介はhttp://chibios.org/dokuwiki/doku.php?id=chibios:documents:introductionにあります。Linuxとは異なるため、

まあ、ChibiOS / RTを独特のデザインにするために説明し貢献する必要があるデザインの選択がいくつかあります。それ自体は本当に新しいものは何もありませんが、全体が面白いです。

か否か。あなたがそれを好きなら-piで実験することはhttps://github.com/steve-bate/ChibiOS-RPiでの経験の価値があるかもしれません:

Raspberry PI実験用のChibiOSフォーク。

著者はで素敵なガイドを追加します

http://www.stevebate.net/chibios-rpi/GettingStarted.html

個人的には、rtosに関して言えば、私にとってLinuxは、平野でのニーズに対応するためにクロスアルペン装備を運ぶようなものです。必要ないかもしれません。パイでさえ多すぎるかもしれません。http://forum.arduino.cc/index.php?topic=144715.0をチェックして、さらに軽量に:)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.