Техника компилирования и линкования
Система разработки ISaGRAF не включает в себя “C” компиляторов или линкеров. Однако эта глава объясняет основную технику, которая может быть применена для легкого использования файлов, созданных Менеджером Библиотек ISaGRAF, и затем используемые другим инструментарием, таким как компиляторы и линковщики.
Исходные “C” файлыПреобразуемые исходные “C” файлы, функции и функциональные блоки размещены Менеджером Библиотек ISaGRAF в директории ISAWIN\LIB\DEFS и ISAWIN\LIB\SRC. Имя исходного файла содержит номер соответствующего преобразования, функции или функционального блока в библиотеке ISaGRAF. Используемые имена файлов:
\isawin\lib\defs\TACN0DEF.H файл определений для любых функций преобразования
\isawin\lib\src\GRCN0nnn.H исходный файл функций преобразования
\isawin\lib\defs\GRUS0nnn.H файл определений функций
\isawin\lib\src\GRUS0nnn.C исходный файл функций
\isawin\lib\defs\GRFB0nnn.H файл определений функциональных блоков
\isawin\lib\src\GRFB0nnn.C исходный файл функциональных блоков
(nnn - номер преобразования, функции или функционального блока)
Предупреждение: Когда переименовываются или копируются элементы библиотеки, ее текстовые и программные строки не обновляются Менеджером Библиотек ISaGRAF в соответствии с новыми именами элементов и логическими номерами. Они должны быть обновлены вручную в исходном “C” файле.
Файл \ISAWIN\LIB\USPNUMS дает соотношение между именами и логическими номерами для “C” функций, расположенных в библиотеке ISaGRAF. Пример такого файла:
1 funct_A
10 funct_B
16 funct_C
Файл \ISAWIN\LIB\FBLNUMS дает соотношение между именами и логическими номерами для “C” функциональных блоков, расположенных в библиотеке ISaGRAF.
Пример такого файла:
0 fbl_A
1 fbl_B
2 fbl_C
Файл \ISAWIN\LIB\CNVNUMS дает соотношение между именами и логическими номерами для функций преобразования, расположенных в библиотеке ISaGRAF.
Пример содержимого файла для стандартной библиотеки преобразований:
0 SCALE
1 BCD
Эти файлы автоматически обновляются Менеджером Библиотек ISaGRAF каждый раз при преобразовании, создании функции или функционального блока создании, переименовании, копировании или уничтожении функционального блока. Генератор кода ISaGRAF генерирует следующие файлы при создании приложения:
\isawin\apl\ppp\GRCN0LIB.C Объявление в виде массива всех функций, преобразования используемых
в проекте.
\isawin\apl\ppp\GRUS0LIB.C Объявление в виде массива всех функций, используемых в
проекте.
\isawin\apl\ppp\GRFB0LIB.C Объявление в виде массива всех функционалных блоков, используемых
в проекте.
(ppp имя пректа ISaGRAF)
Эти файлы могут использоваться во время выполнения операций линкования для построения ядра ISaGRAF, предназначенного для проекта, который содержит преобразования, функции и функциональные блоки, используемые только в этом проекте.
Загрузка исходных файлов в систему
Исходные “C” файлы и файлы определений, созданные Менажером Библиотек ISaGRAF, могут быть загружены в целевую задачу системы ISaGRAF, если это поддерживается родным компилятором. Для этого может быть использован стандартный инструмент TERMINAL, поставляемый с Windows.
Когда исходные файлы управляются в целевой системе, файлы определений будут обновляться новыми операциями загрузки каждый раз, когда функциональный интерфейс изменяется Менеджером Библиотек ISaGRAF.
Командные строки для загрузки файлов могут быть сгруппированы, например, в командных файлах, а затем запущены из меню инструментов системы разработки (смотри руководство пользователя: Управление программами)
Использование кросс - компилятора
С исходными файлами можно работать непосредственно на вашем PC, если PC является целевой системой, или доступен кросс - компилятор, запущен на PC и генерирует коды для целевой системы.
В этом случае, пользователь может запустить Менеджер Библиотек ISaGRAF для создания и модификации исходных текстов преобразований, функций и функциональных блоков.
Командные строки для загрузки файлов могут быть сгруппированы, например в командных файлах, а затем запущены из меню инструментов системы разработки (смотри руководство пользователя: Управление программами)
Когда преобразования, функции и функциональные блоки скомпилированы на PC, пользователь просто загружает вновь сгенерированное ядро ISaGRAF (линкованное с новыми компонентами) в целевую задачу системы перед запуском приложений. Если целевой системой является другой PC, то вновь сгенерированное ядро ISaGRAF может быть загружено в эту машину с дискеты или через сеть.
Линкование с библиотеками ядра ISaGRAF
Предупреждение:
Далее следует общая информация, которая может не совсем соответствовать вашей целевой системе.
В любом случае вы можете справиться в readme и .TXT файлах, поставляемых на целевом диске.
Целевая дискета ISaGRAF содержит много файлов утилит для компиляции и линкования преобразований, функций и функциональных блоков библиотеками ядра ISaGRAF.
Существует две реализации:
- однозадачный ISaGRAF: все функции выполняются в одной программе
- многозадачный ISaGRAF: для связи выделяется отдельная задача (или нить)
В любом случае “C” компоненты сгруппированы в одинаковых библиотеках: для “C” программистов нет разницы в создании однозадачной или многозадачной системы. Для однозадачной версии “C” библиотеки пользователя линкуются в одну задачу (обычно называемую isa), тогда как для многозадачной версии библиотеки линкуются в задачу ядра (обычно называемую isaker).
Система разработки Целевая система
Внутренняя часть программного обеспечения ISaGRAF не зависит от аппаратной части.
Она выполняет IEC языки и имеет свою собственную базу данных переменных.
Первым шагом создания связи с ядром является построение библиотек преобразований, функций и функциональных блоков, необходимых для конкретного проекта:
Библиотеки |
Содержание |
ISAUSP |
- объектный файл GRUS0LIB (массив декларированных функций) - объектный файл каждой интегрированной функции |
ISAFBL |
- объектный файл GRFB0LIB (массив декларированных функциональных блоков) - объектный файл каждого интегрированного функционального блока |
ISACNV |
- объектный файл GRCN0LIB (массив декларированных преобразований) - объектный файл каждой интегрированной функции преобразования |
Список объектных модулей и библиотек, которые присоединяются во время линкования:
Построение isaker:
Объектный Модуль: tast0mal
Объектный Модуль: tats0com
Библиотека ядра: isaker
Библиотека ядра: isaoem
Библиотека пользователя: isausp определенные пользователем
функции
Библиотека пользователя: isafbl определенные пользователем
функциональные блоки
Библиотека пользователя: isacnv определенные пользователем
функции преобразования
Библиотека ядра: isasys
Системные библиотеки: (refer to your "C" compiler manual)
Построение isa
Объектный Модуль: tast0mal
Объектный Модуль: tast0com
Библиотека ядра: isaker
Библиотека ядра: isatst
Библиотека ядра: isaoem
Библиотека пользователя: isausp определенные пользователем
функции
Библиотека пользователя: isafbl определенные пользователем
функциональные блоки
Библиотека пользователя: isacnv определенные пользователем
функции преобразования
Библиотека ядра: isasys
Системные библиотеки: (refer to your "C" compiler manual)
Программист может придерживаться порядка следования объектных модулей и библиотек, показанного на предыдущем рисунке. Объектные модули и библиотеки имеют стандартные расширения (“.lib”, “.obj”, “.l”, “.r” ...) в соответствии с целевой системой.
Требующиеся опции компиляции
Опции преобразования могут быть выбраны во время компилирования и линкования.
Они зависят от типа операций, выполняемых в преобразованиях, функциях и функциональных блоках. Некоторые операции требуют другие системные библиотеки
(math, graphics ...) во время линкования.
Все исходные файлы “C” Ядра ISaGRAF были компилированы в LARGE модели памяти. Программист должен использовать одинаковые модели для компилирования преобразований, функций и функциональных блоков.
При компилировании компонентов “C” библиотеки определяется специальная константа. Она указывает тип целевой системы и процессоров, для того, чтобы исходные тексты преобразований, функций и функциональных блоков были независимыми от системы. Ниже указаны значения этой константы:
DOS....................для DOS базированных систем (процессор NTEL)
ISAWNT............для Windows-NT базированных систем (процессор INTEL)
OS9.....................для систем OS9 (процессор MOTOROLA)
VxWorks.............для систем VxWorks (процессор MOTOROLA)
Файлы командных утилит (для компиляции и линкования), поставляемые с целевым программным обеспечением ISaGRAF, показывают как определить соответствующее значение константы для командной строки компилятора.
Поддерживаемые компиляторы
Поддерживаются следующие компиляторы для создания преобразований, функций и функциональных блоков, и линковки с ядром ISaGRAF:
Компилятор Microsoft MSC 7.00 для целевой задачи DOS
Компилятор Microsoft MSVC 4.00 для целевой задачи Windows-NT
Компилятор Microware ULTRA-C для целевой задачи OS-9
Tornado 1.0; GNU Toolkit 2.6 для целевой задачи VxWorks
По поводу использования других компиляторов контактируйте с CJ International.
Резюме
Ниже приведена краткая сводка операторов, которые будут выполняться во время создания новых преобразований, функций или функциональных блоков:
1. Используется с Менеджером Библиотек ISaGRAF для создания новых
элементов: дает им имена и текстовые комментарии. Автоматически генерируется фрейм “C” исходного файла.
2. Используется с Менеджером Библиотек ISaGRAF, описывает интерфейс ( вызывает и возвращает параметры) если элементы являются функциями или функциональными блоками. Автоматически генерируются заголовки исходных “C” файлов.
3. Используется с Менеджером Библиотек ISaGRAF, вводит текст подробного технического описания элемента (руководство пользователя).
4. Используется с Менеджером Библиотек ISaGRAF, завершает исходный файл “C” путем добавления “C” программирования преобразования, функции или алгоритма функционального блока. Исходный код элемента теперь завершен. Можно использовать другой редактор.
5. Выбор опции “Показать логический номер” Менеджера Библиотек, чтобы узнать, какой логический номер присоединен к новому элементу. Этот номер используется в имени пути преобразования “.C” и “.H” исходных файлов.
6. Копировать/Загружать .C и .H файлы в вашу целевую систему (если родной компьютер) или в соответствующее окружение (если кросс компьютер), где находятся целевые библиотеки ISaGRAF и инсталлированы задачи.
7. Запустить компилятор “C” на новом исходном файле и корректировать
имеющиеся синтаксические ошибки.
8. Вставить имя нового элемента определенного сервиса в “GR??0LIB.C”
исходный файл, который определяет массив вставленных элементов.
9. Запустить компилятор “C” для компилирования файла “GR??0LIB.C”..
10. Вставить имя объектного модуля в список объектных файлов, используемых
для построения соответствующих библиотек..
11. Запустить построитель “C” библиотек. Запустить линковщик “C” для
построения нового ядра.
12. Установить вновь созданное ядро на вашей целевой машине.
13. Запустить пример приложения ISaGRAF, которое тестирует вызов и интерфейс нового элемента.