私は、サッカー ゲームをプレイすることになっているバイパッド ロボットを制御することを目的としたプロジェクトに取り組んでいます。すべてのプログラムは、さまざまな共有ライブラリ (OpenCV、サーボ モーター コントローラーなど) にリンクされたプレーンな C++ で記述されています。
システムはパフォーマンスが重要であり、95% ハード リアルタイムである必要があるため、Xenomai パッチがカーネルに適用されています。残念ながら、スレッド切り替えレイテンシのベンチマークは、システムがすべての状況でハード リアルタイムのニーズを満たさないことを示しています。この作品にデュオ。すべてのものをカーネル空間に移植することで、パフォーマンスを向上させることができます。
カーネルモジュールを開発したことはありません...いくつかのドキュメントを読んでください。通常のユーザー空間プログラムとは異なるようです。ビルドシステムも違います。
私の質問: 広く共有ライブラリと POSIX スレッドを使用して、完全に C++ で記述された通常のユーザー空間アプリケーションをカーネル モジュールに変換することは可能ですか?
答えが「いいえ」の場合、すべてのライブラリを静的に再コンパイルし、代わりに C を使用します...これは有害で時間のかかるプロセスになります。