カーネル モジュールまたはリアルタイム プロセスとして展開したい vxWorks アプリケーションがあります。
同じソース ファイルからこれを行う方法はありますか? それとも、カーネル モジュール用に 1 つのファイルを作成し、RTP 用に別のファイルを作成する必要がありますか?
カーネル モジュールまたはリアルタイム プロセスとして展開したい vxWorks アプリケーションがあります。
同じソース ファイルからこれを行う方法はありますか? それとも、カーネル モジュール用に 1 つのファイルを作成し、RTP 用に別のファイルを作成する必要がありますか?
最も簡単な解決策は、カーネル モジュールまたはリアルタイム プロセスとしてコンパイルできる単一のファイルを用意することです。おそらく次のようになります。
void MyModule_Init()
{
// Initialize the module
...
}
...
#ifdef __RTP__
int main(...)
{
// RTP Main just invokes the Module's initialization
MyModule_Init();
}
#endif
ビルドが RTP 環境用である場合、
__RTP__ マクロが定義されます。ビルドがカーネル環境用である場合、_WRS_KERNEL マクロが定義されます。
これら 2 つのマクロを使用すると、両方の環境でコードをコンパイルできます。