Есть ли способ использовать один и тот же файл как для RTP, так и для модуля ядра в vxWorks? - PullRequest
0 голосов
/ 23 сентября 2008

У нас есть приложение vxWorks, которое мы хотели бы развернуть в виде модуля ядра или в режиме реального времени.

Есть ли способ сделать это из того же исходного файла, или нам нужно создать один файл для модуля ядра, а другой - для RTP?

1 Ответ

2 голосов
/ 23 сентября 2008

Самым простым решением было бы иметь один файл, который можно скомпилировать как модуль ядра или как процесс в реальном времени. Вероятно, это должно выглядеть примерно так:


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 определяется, если сборка предназначена для среды ядра.

С этими двумя макросами вы можете компилировать код для обеих сред.

...