Windows ソフトウェアの組み込み/リアルタイム オペレーティング システムへの移植

StackOverflow https://stackoverflow.com/questions/106581

  •  01-07-2019
  •  | 
  •  

質問

Windows 環境を対象とした既存のコードベースがあり、将来を見据えて、これを可能な限りクロスプラットフォームにしたいと考えています。クロスプラットフォーム ライブラリを使用することで、標準の Linux ディストリビューションである程度の成功を収めてきましたが、これをリアルタイム オペレーティング システムや組み込みオペレーティング システムにも拡張したいと考えています。

コードベースの大部分をそのようなシステムに移植することは可能でしょうか、それともその環境を対象とした再実装が必要になるでしょうか?部品を再作成する必要がある場合、これらのシステムの開発には別のタイプの設計アプローチが必要ですか?一部のベンダーは開発用に独自の IDE を提供していますが、これは必須でしょうか、それとも GNU ツールチェーン タイプのビルド プロセスで標準化できるでしょうか、あるいは可能でしょうか?

潜在的なポットホールは IPC 処理の違いである可能性がありますが、さらなる暴露がなければ、詳細を把握することは困難です。

注意: 現在 Windows ベースではありますが、Win32 API (主に COM) や Windows タイプは特に頻繁に使用されていません。

ありがとう

編集::コードベースは C\C++ です

役に立ちましたか?

解決

Windows COM インターフェイス (ここではシリアル ポートのことを話しているのではなく、共通オブジェクト モデルについて話していると思います) を使用している場合は、コードをそれから抽象化する必要があるかもしれません。

IPC について話していると、これは明らかにマルチタスク/マルチ処理タイプのコード ベースです。そうなると、環境の違いを何とかする方法を考えなければなりません。

まず第一に、あなたは 意思 アプリケーションはマルチタスクであるため、何らかの種類の RTOS が必要です。Linux への移植を行ったので、リアルタイム Linux のバージョンの使用を検討することもできます。これにより、必要なポートの数が最小限に抑えられます。

Linux を組み込みプラットフォームとして使用したくない場合は、コードを POSIX 準拠にし (Linux は準拠しています)、選択した RTOS が POSIX をサポートしていることを確認してください。このようにすると、Linux への移植と組み込みプラットフォームはほぼ同じになります。

結論から言えば、COM があなたのアルバトロスになります。

GUI の使用については言及されていないため、取り上げません。 それ ワームの缶:)

他のヒント

アプリが主に C と posix を使用している場合は、それほど難しくありません。今日の組み込みプラットフォームは、コンパクト フラッシュ カード上で実行される XP または Linux のほぼ完全なコピーを意味します。

GUI に関しては、QT と WX の両方に、ウィジェットを直接描画する埋め込みバージョンがあります。

最も重要な手順は、OS に依存するすべての関数をプロジェクト ロジックから分離することです。

これを実行すると、新しい OS に移行するために移植する必要があるコードの量がすぐにわかり、移植を適切に開始できるようになります。

組み込みプラットフォームの機能によって異なります。8 ビットの場合は、前途多難ですが、適切な RAM などを備えた 32 ビットの場合は、オープンソースのクロスプラットフォーム ライブラリが多数利用可能です。

私が使用した ダイレクトFB 前回の組み込み GUI アプリは軽量で問題ありませんでしたが、クロスプラットフォームではありませんでした。次回は試してみようと思います wxウィジェット.

MS Dev Studio はどの GNU ツールよりもはるかに優れているため、Windows で GNU 開発ツールを使用するのは好きではありませんが、最近は Wascana デスクトップ開発者 これは Eclipse と GCC に基づいており、将来性を示しています。

使用するリアルタイム/組み込み OS を指定する立場にいる場合、Windows CE を検討したことがありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top