2009-06-09 35 views
0

私は以前の質問に詳細を投稿しています。すでにLinux/Macをサポートしているc/C++コードベースをVxWorksに移植する必要があります。このアプリケーションは、socket、pthread、mutex、クリティカルセクションハンドリングAPIを使用します。VxWorksへの移植の問題

私はVxWorksをかなり新しくしています。発生する可能性のある問題は何かを教えてください。

+0

ヘッダーは、ほとんどの場所で確かに異なってくるでしょう。 –

答えて

1

VxWorksは標準的なソケット操作を提供しますので、問題はありません。
OSの一部でもあるpthread互換ライブラリがあります。単にpthreadコンポーネントをインクルードするだけです。

ミューテックスとクリティカルセクション処理APIについて詳しく説明しない限り、詳細を提供することは難しいです。

VxWorksには、mutexおよびクリティカルセクション用の独自のAPIがありますが、POSIXインターフェイスも用意されています。 VxWorksの異なるバージョンは、POSIX標準の異なるバージョンに対応しています。

使用しているVxWorksのバージョンによっては、(特に古いバージョンのvxWorksを使用している場合は)重大なC++ STLの使用が問題になることがあります。

C++では、静的クラスのインスタンスに注意する必要があります。それは正常に動作しますが、私はそれが静的にインスタンス化され、私が信じている.dataセグメントに置かれなければならないので、プログラムサイズを増やすと信じています。

ダイナミックC++オブジェクトが作成されて破棄されている場合は、ヒープに大きな負担がかかります。あなたの組み込みシステムのメモリフットプリントが小さい場合、問題がある可能性があります。

オブジェクトをスタックに作成する場合は、スレッドを作成するとき(作成時に初期化された固定サイズのスタックを持つ)、これを考慮する(構造体でCでも同じことを行う必要があります)ことを忘れないでください。

関連する問題