RTX – расширение реального времени для Windows NT

Создание приложений реального времени с помощью RTAPI


Одним из преимуществ RTX, является возможность использования стандартных компиляторов для создания real-time программ и стандартного софта (commercial off the shelf, COTS), взаимодействующего с ними и работающего на той же машине. Действительно, для создания real-time программ Вы можете использовать Visual C++ 4.2 или 5.0. Кроме того, при создании Win32-части приложения можно использовать любой компилятор, понимающий вызовы функций Win32 API (например C++ Builder). Один и тот же код можно откомпилировать как Win32 и как RTSS приложение с расширениями .exe и .rtss соответственно. Exe-вариант программы является приложением "мягкого" реального времени.

Функции, входящие в RTAPI на данный момент, можно разделить на 4 группы. К первой относятся функции, чья семантика и/или поведение отличается от функций Win32 API. В названии всех функций этой группы присутствует префикс Rt (например RtAttachInterruptVector) Во вторую входят функции, чья семантика и функциональность совпадают с функциями из Win32 API, но они работают в RTSS подсистеме. В третью группу входят функции runtime C библиотеки. К последней (но не по важности) группе относятся функции т.н. Windows NT Driver IPC API, позволяющие rtss и Win32 потокам взаимодействовать с обычными драйверами, работающими в режиме ядра.

Программы, скомпилированные как rtss, могут содержать только функции, входящие в RTAPI, На программы,скомпилированные как exe, такое ограничение не распространяется.

Разработку любого RTSS приложения удобно начинать с exe-варианта. Это позволяет использовать отладочные средства Visual Studio (или другого используемого компилятора). Например, если Вы пишете rtss-драйвер, обслуживающий прерывания, то скомпилировав его как Win32 программу, можно установить точку останова в процедуре обработки прерывания (в RTX обработка прерываний не разделяется на ISR и DPC, а выполняется одним потоком (см. ниже)) и сделать пошаговый прогон всей процедуры. Программы, скомпилированные как rtss, при необходимости отлаживаются с помощью WinDBG (на двух компьютерах) или SoftIce (на одном компьютере).

Обычно (хотя и не обязательно) приложение состоит минимум из двух частей - real-time процесса, исполняющегося в RTSS подсистеме и исполняющего критическую по времени работу и exe-процесса, исполняющегося в Win32, взаимодействующего с rtss-частью с помощью средств межпроцессного взаимодействия. Exe-часть может взаимодействовать с сервисами NT, другими программами, пользователем.

| |



Содержание раздела