我们有一个vxWorks应用程序,我们希望将其部署为内核模块或实时流程。
有没有办法从同一个源文件执行此操作,或者我们是否必须为内核模块创建一个文件而为RTP创建另一个文件?
答案 0 :(得分:2)
最简单的解决方案是拥有一个可以作为内核模块或实时进程编译的文件。 它应该看起来像这样:
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宏。
使用这两个宏,您可以为两个环境编译代码。