問題タブ [rtai]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 統合共有メモリ システム
Linux の RTAI 拡張機能を使用して記述された古いリアルタイム制御システム コードを使用しています。プロセスの境界を越えてメモリを作成および共有するために、4 つの異なるメカニズムが使用されています。
1) RTAI 共有メモリ (rt_shm_alloc & rt_shm_free): これは、共有メモリにアクセスするためのキーとして unsigned long グローバルに一意の値を使用します。舞台裏で(少なくともユーザー空間から)、キャラクターデバイスでioctlを使用してメモリを生成し、次にmmapを使用して使用可能にします。
2) System V (ftok、shmget、shmat、shmctl など): ftok を使用して、インデックス値と共に使用されるキーを生成し、メモリ ブロックを検索してマップします。これが実際にどのように実装されているかを確認しようとはしていませんが、カーテンの後ろのどこかで mmap を使用していると想定しています。
3) Posix 共有メモリ (shm_open、mmap、shm_unlink など): これは文字列 (内容にいくつかの制限あり) を取り、リンクされたメモリ ブロックを mmap するために使用できるファイル ハンドルを提供します。これは、仮想ファイルシステムを使用してサポートされているようです。
4) mmap および文字ドライバ ioctl 呼び出しの直接使用 特定のカーネル モジュールは、mmap を使用してメモリ ブロックを作成および共有することを直接サポートするインターフェイスを提供します。
これらのメカニズムはすべて、mmap を明示的または暗黙的に使用して、仮想メモリ サブシステムを変更し、共有メモリをセットアップおよび管理しているようです。
問題は、メモリのブロックがこれらのシステムのいずれかを使用して共有されている場合、他のシステムで同じメモリにアクセスするエイリアスを設定する方法はありますかということです。
ユースケース:
2 つの I/O サブシステムがあります。1 つ目は、Linux カーネル ドライバーを使用して実装され、RTAI 共有メモリ メカニズムを使用して作成された共有メモリの 1 つのチャンクに現在の I/O 状態をエクスポートします。2 つ目は、カスタム カーネル モジュールを使用し、ioctl と mmap を直接使用して共有メモリ ブロックを作成する、etherlab のethercat マスターに基づいています。
特定の I/O フィールドへのアクセスを必要とする 40 ほどの他のシステムがありますが、データがどの I/O サブシステムから来たかを知る必要はありません。
私が必要としているのは、さまざまなタイプの共有メモリを開いてアクセスする方法です。一貫した単一の方法で、基礎となる実装の詳細をユーザーから分離します。 そのようなメカニズムは存在しますか?
この問題を解決するために RTAI 共有メモリ メカニズムを使用するように ethercat スタックを変更しましたが、これは一時的な解決策にすぎません (読む: ハック)。
python-3.x - rtai_lxrt モジュールを挿入できません
私はrtai-4.1
Ubuntu-14.04のバージョンに取り組んでいます。rtai_lxrt
の代わりにモジュールを挿入できませんrtai_lxrt
。rtai_sched
常に挿入されています。入れたくないrtai_sched
。代わりに、挿入したいrtai_lxrt
。この問題を解決する方法はありますか?
c - 通常の Linux レイテンシを RTAI Linux レイテンシ テストと比較する方法はありますか?
通常の Linux と rtai Linux のレイテンシ テストのアイデアやソース コードを教えてください。パフォーマンステストの比較を行いたいです(rtaiのインストール後にどれだけ改善されるか)。
これについて私を導いてください。
c - program.c の makefile を作成する方法と、Real Time Application Interface でコンパイルして実行する方法
私は持ってい hollowworld.c
ます:
program.c のメイクファイルを作成する方法と、Real Time Application Interface でコンパイルおよび実行する方法
scheduler - MUP (Multi Uni Processors) とは何ですか?
MUP (Multi Uni Processors) はマルチコア プロセッサと同じですか? それとも、通信用に相互接続された個別の CPU を持っていますか? AMP はまだ違うと思います。誰でも明確にできますか?RTAI (Linux へのリアルタイム拡張) スケジューラについて読んでいるときに、これに遭遇しました..リンクと、できれば最初の行と関連する最後のパラグラフを確認してください.. https://www.rtai.org/userfiles/documentation/magma/html/ api/sched_overview.html
c++ - rtai no such file or directory error コンパイル中
Debian 6 から .cpp プログラムをコンパイルしようとしています。.c アーカイブでのみ動作する有効な makefile がありますが、.cpp でプログラムをコンパイルする必要があります。だからここにメイクファイルがあります:
だから私が端末に書くとき myprogramname.cpp これは私が得るものです:
gcc -o Programa_Hand2 Programa_Hand2.cpp も試してみましたが、同じエラーが発生しました。メイクファイルで変更する必要があると思いますが、何が悪いのかわかりません。プログラミングとLinuxは初めてなので、プログラムをc ++でコンパイルする必要があり、コンパイルしてcで適切に動作するため、これに少し腹を立てています。ご協力いただきありがとうございます!
編集: インターネットからいくつかの調査を行うと、RTAI は C++ をサポートしていないようです。C++でコンパイルする方法はありますか?また、私の #includes は次のとおりです。
再度、感謝します!
compiler-errors - ターゲット 'deb-pkg' の rtai 4.1 Linux カーネル 3.10.32 レシピが失敗しました
ubuntu 16.04(x86-64) でカーネル 3.10.32 をコンパイルするときの、ubuntu 16.04 用の RTAI4.1 インストール 次のコマンドを実行します:</p>
「make -j getconf _NPROCESSORS_ONLN
deb-pkg LOCALVERSION=-rtai」を実行した場合:
エラー:
/scripts/package/Makefile:90: ターゲット 'deb-pkg' のレシピが失敗しました
make[1]: * [deb-pkg] エラー 1
Makefile:1078: ターゲット 'deb-pkg' のレシピが作成に失敗
しました: * [deb- pkg] エラー 2
rtai - RTAI 4.1 に実際に必要なハードウェアは何ですか?
私はしばらくこれに苦労しており、新しいコンピューターを購入する段階にある可能性があるため、誰かが知っているかどうかを確認することにしました.
3.10.32 カーネルを使用して ubuntu 14.04 で RTAI 4.1 を構成する場合 (いくつかのソースからのアドバイスによると、主にhttps://github.com/ahoarau/mekabot )
私たちが抱えていると思われる 2 つの問題は、RAM/CPU/マザーボードが ECC と互換性がないことと、Intel チップではなく AMD を使用していることです。EEC とインテルが必要であると言っている (多くの出力に暗号的に埋め込まれている) ものは複数ありますが、これはかなりの投資になります。
お金を使う前に誰かが知っているかどうかを確認する必要がありました.RTAI 4.1にはECCメモリとIntelチップセットが絶対に必要ですか?
前もって感謝します!