Технология программирования внешней целевой системы / Руководство системного программиста |
Программное обеспечение (ПО) прибора работает под управлением операционных систем реального времени (ОСРВ) QNX Neutrino и КПДА.00002-01. ПО обеспечивает выполнение алгоритма на приборе с заданным временным тактом, получения удалённого доступа к данным прибора, управление программного обеспечения (ПО) прибора.
ПО состоит из следующих модулей:
Диспетчер расчётных модулей (процессов) DispExemod – обеспечивает автоматическое создание общей областей памяти для внешних переменных расчётных модулей (общая область описывающая массив структур внешних переменных и общая область памяти, хранящая значения внешних переменных), их загрузку, загрузку начального состояния прибора.
Сервер отладки GdbServer – обеспечивает доступ с клиентского рабочего места (РМ) к переменным прибора, а также управление (пауза, продолжение, завершение) работы ПО прибора.
Расчётные модули – обеспечивают обработку переменных прибора согласно алгоритму, заложенному в исходной расчётной схеме. Исполняемый код расчетных модулей собирается на основе Си-кода, сгенерированного генератором кода SimInTech.
ПО прибора может функционировать в двух режимах:
штатном;
отладочном.
Отличия этих режимов состоят в том, что в отладочном режиме можно получить удалённый доступ к переменным и управлять расчётом через оболочку SimInTech. В штатном режиме удалённое управление и доступ к переменным невозможен.
К режиму отладки относится код только сервера обмена данными GdbServer. В штатном режиме вы можете его не копировать (или удалить с прибора). Всё остальное остаётся без изменений. В обязательном порядке необходимы кроме исполняемых файлов ещё и файлы описания внешних переменных расчётных модулей *.extvars.table и файл конфигурации загрузки default.conf потому что по ним формируется рабочая область памяти при загрузке диспетчера расчётных модулей.
Остальное (GdbServer и файлы *.intvars.table) - можно удалить, если этих компонентов нет на приборе, то доступ извне к константам и состояниям невозможен. Для запуска ПО в штатном режиме расчётные модули и диспетчер пересобирать не нужно.
Для того чтобы ничего не выводилось в консоль, необходимо запустисть диспетчер расчётных модулей с выводом в нулевое устройство:
DispExemod > /dev/null или же DispExemod > / dev / nul 2>&1 &
Алгоритм функционирования ПО прибора:
Структура и взаимосвязи ПО прибора: