Сборка расчетного модуля для целевой системы

При сборке расчетного модуля под ОСРВ QNX версии 6 необходимо убедиться, что установлена среда разработки программ Momentics для QNX версии 6. Кросс-компилятор для QNX версии 6 не поставляется совместно с SimInTech.

Если кросс-компиляторы установлены, то следует в сборочном скрипте для ОСРВ QNX версии 6 указать путь к директории установки среды разработки программ Momentics:

<директория установки SimInTech>\bin\CodeTemplates\QNX6\build.bat

При отсутствии кросс-компиляторов необходимо произвести их установку. Содержание файла build.bat для компиляции расчетного модуля под QNX версии 6:

set path=%path%;"%QNX_HOST%\usr\bin\"
i386-pc-nto-qnx6.4.0-gcc.exe -o calc\x86\o\calc calc\calcmain.c -fpack-struct=1 "-I%QNX_TARGET%\usr\include" -IDispExemod –Wconversion -l m
i486-pc-nto-qnx6.5.0-gcc.exe -o calc\x86\o\calc calc\calcmain.c -fpack-struct=1 "-I%QNX_TARGET%\usr\include" -IDispExemod –Wconversion -l m

Если установлена среда разработки программ QNX Momentics другой версии или необходимо генерировать расчетные модули под отличную от x86 архитектуру процессора, необходимо изменить название файла компилятора

i386-pc-nto-qnx6.4.0-gcc.exe

или

i486-pc-nto-qnx6.5.0-gcc.exe

Например, для QNX 6.5.0 при сборке расчетных модулей под ARM архитектуру процессора необходимо указать компилятор

arm-unknown-nto-qnx6.5.0-gcc.exe

При копировании компиляторов отдельно от среды разработки программ QNX Momentics системные переменные QNX_HOST и QNX_TARGET отсутствуют. Значение системных переменных задается при установке средств разработки под ОСРВ QNX.

QNX_HOST — путь расположения директории хранения средств разработки для QNX под текущую платформу (в случае настоящего руководства пользователя - ОС Windows). Например, для QNX 6.4.0 значение системной переменной:

C:\QNX640\host\win32\x86

QNX_TARGET — путь расположения библиотеки (заголовочных файлов и т.п.) для QNX. Например, для QNX 6.4.0 значение системной переменной:

C:\QNX640\target\qnx6

Значение системных переменных можно самостоятельно прописать в скрипте build.bat в режиме редактирования или добавить в список системных переменных непосредственно в ОС Windows. Для вызова меню работы с системными переменными следует:

  1. войти в панель управления ОС Windows, в списке параметров компьютера левой клавишей «мыши» нажать на иконку «Система»;
  2. левой клавишей «мыши» нажать кнопку «Изменить параметры», появится рабочее окно «Свойства системы»;
  3. в рабочем окне «Свойства системы» перейти в закладку «Дополнительно»;
  4. левой клавишей «мыши» нажать кнопку «Переменные среды», появится рабочее окно «Переменные среды»;
  5. в рабочем окне «Переменные среды» левой клавишей «мыши» нажать кнопку «Создать…», появится рабочее окно «Новая системная переменная».

Вышеуказанная последовательность действий описана для ОС Windows 7, соответствующие рабочие окна представлены на рисунке (Рисунок 1). Для других версий операционной системы Windows порядок вызова рабочего окна редактирования системных переменных может отличаться.

Рисунок 1. Окно настройки переменных среды

Для определения новой системной переменной необходимо в рабочем окне «Новая системная переменная» задать её имя и значение. Сохраняют новую системную переменную нажатием левой клавиши «мыши» на кнопку Ok (Рисунок 2).

Рисунок 2. Добавление новой переменной

При компиляции расчетного модуля под ОСРВ QNX версии 4 используется компилятор, размещённый на целевой системе (приборе). При этом сначала происходит копирование из директории шаблона кода всех исходных текстов расчётного модуля для его компиляции на целевую (или отдельную сборочную) систему, а потом через telnet удалённо вызывается команда make (производит сборку бинарного файла расчетного модуля из исходных текстов). По умолчанию, скрипт для компиляции build.bat использует адрес сборочной системы из опции «Параметры соединения (хост:порт)» закладки «Отладчик» рабочего окна редактирования «Кодогенератор СИ».

Если на приборах не предусмотрено наличие компилятора, пользователь может указать адрес произвольной сборочной системы для осуществления на ней компиляции. Для этого в закладке «Настройки» рабочего окна «Кодогенератор СИ» следует указать собственные данные в поле изменения параметра «Команда сборки модуля» (Рисунок 3).

Рисунок 3. Пользовательская команда сборки модуля

compile.bat имя скрипта сборки находящегося в директории шаблона кода (задается в настройках инструментов автоматики, представленных на рисунке 3);
%progname% имя собираемого исполняемого модуля;
%servername% присваивается из настроек соединения отладчика, допустимо изменить на адрес (имя или ip-адрес) сборочной вычислительной системы, на которой производится компиляция;
root root логин и пароль для записи файлов и выполнения команд сборки на сборочной системе.

Для сборки расчетного модуля под ОСРВ QNX версии 4 используется скрипт build.bat шаблона кода

%codetemplates%QNX4\

расположенный в директории:

<директория установки SimInTech>\bin\CodeTemplates\QNX4

Текст скрипта build.bat:

REM синтаксис build.bat <сервер> <логин> <пароль>
pushd calc
del/q buildcmds.txt
del/q calc
REM Копирование задания на сборочный сервер
ECHO open %1 > ftpcmd.txt
ECHO %2>> ftpcmd.txt
ECHO %3>> ftpcmd.txt
ECHO binary>> ftpcmd.txt
ECHO rmdir calcsrc>> ftpcmd.txt
ECHO mkdir calcsrc>> ftpcmd.txt
ECHO cd calcsrc>> ftpcmd.txt
ECHO mput *.*>> ftpcmd.txt
ECHO quit>> ftpcmd.txt
ftp -s:ftpcmd.txt -i
REM сборка (соединение через telnet)
ECHO %2> buildcmds.txt
ECHO %3>> buildcmds.txt
ECHO cd calcsrc>> buildcmds.txt
ECHO make>> buildcmds.txt
..\..\..\telbuilder %1 buildcmds.txt
REM Копирование скомпилированного расчетного модуля
ECHO open %1 > ftpcmd.txt
ECHO %2>> ftpcmd.txt
ECHO %3>> ftpcmd.txt
ECHO binary>> ftpcmd.txt
ECHO cd calcsrc>> ftpcmd.txt
ECHO get calc calc>> ftpcmd.txt
ECHO quit>> ftpcmd.txt
ftp -s:ftpcmd.txt -i
del/q ftpcmd.txt
popd

Для копирования исходных файлов расчётного модуля и самого скомпилированного расчётного модуля используется утилита ftp (штатная утилита ОС Windows), для которой входной файл с командами протокола передачи данных ftp готовится при помощи скрипта build.bat. Для удалённого запуска компилятора используется утилита telbuilder.exe из директории: SimInTech\bin\. Утилита направляет поток команд по протоколу telnet на указанную сборочную систему и позволяет сделать автоматический ввод логина и пароля по telnet и выполнение произвольной команды. Синтаксис утилиты:

telbuilder <адрес сервера telnet> <файл с потоком команд для telnet>

В файле команд для telnet (по умолчанию: buildcmds.txt) задаётся указанный ниже текст, который автоматически вводится при соединении с сервером. Каждая из строк текста обрабатывается с задержкой в 500 мс (свойство программы).

login
password
cd calcsrc
make

Для сборки расчётного модуля в рабочем окне «Кодогенератор СИ» следует левой клавишей «мыши» нажать кнопку Собрать модули (Рисунок 4).

Рисунок 4. Кнопка сборки модулей

Если верно указаны параметры компилятора и расчетной схемы, системой будет произведена генерация исполняемых файлов расчетных модулей в соответствии с таблицей загрузки в рабочем окне «Кодогенератор СИ» (выбранными в соответствии с рисунком (Рисунок 4) файлами схемы).

В результате генерации исполняемых файлов расчетных модулей в директории исходных текстов и программ будут созданы файлы с расширением .inc и .h, а также бинарные файлы в формате целевой системы (прибора). Имена файлов будут образованы в соответствии с заданным параметром «Имя (имена) алгоритма» в рабочем окне «Параметры расчета» (показано на рисунке 5). Также будет создан файл default.conf, содержащий для диспетчера расчётных модулей информацию о частоте вызова каждого из расчетных модулей и служебных файлов с описанием переменных, которые доступны для чтения и изменения через сервер обмена или вспомогательные утилиты. Директория с созданными файлами представлена на рисунке (Рисунок 5).

Рисунок 5. Состав сгенерированной программы

Файлы из директории исходников в прибор допустимо копировать по протоколу передачи файлов ftp.