3

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

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

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

注: 現在は Windows ベースですが、Win32 API (主に COM) または Windows の型が特に頻繁に使用されるわけではありません。

ありがとう

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

4

6 に答える 6

1

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

GUI の場合、QT と WX の両方に、ウィジェットを直接描画する組み込みバージョンがあります。

于 2008-09-20T00:44:38.593 に答える
1

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

IPC について話すと、明らかにこれはマルチタスク/マルチプロセッシング タイプのコード ベースです。だとすると、環境の違いにどう対処するかを考えなければなりません。

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

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

結論として、COM はアホウドリになります。

GUIの使用について言及していないためワームの可能性については触れません:)

于 2008-09-21T17:11:08.960 に答える
1

最も重要なステップは、すべての OS 依存機能をプロジェクト ロジックから分離することです。

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

于 2008-09-25T17:13:37.300 に答える
0

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

于 2008-09-25T17:56:23.437 に答える
0

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

前回の埋め込み GUI アプリにDirectFBを使用しました。これは軽量で問題ありませんでしたが、クロスプラットフォームではありませんでした。次回はwxWidgetsを試してみようと思います。

于 2008-09-20T01:19:11.380 に答える
0

MS Dev Studio はどの GNU ツールよりもはるかに優れているため、Windows で GNU 開発ツールを使用するのは好きではありませんが、最近、Eclipse と GCC に基づくWascana Desktop Developerで遊んでいて、有望です。

于 2008-09-20T01:24:51.927 に答える