Структура взаимодействия программ NMSDK — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Структура взаимодействия программ NMSDK

2022-10-05 33
Структура взаимодействия программ NMSDK 0.00 из 5.00 0 оценок
Заказать работу

Следующий рисунок иллюстрирует структуру взаимодействия программ NMSDK.

Рис. П-1‑1 Схема взаимодействия программ NMSDK.

Структура каталогов NMSDK

Для удобства работы с программами NMSDK используется предопределенная структура каталогов программного обеспечения. Она описывается следующим деревом каталогов (см. Рис. П-1‑2):

Рис. П-1‑2 Структура каталогов типового комплекта поставки NMSDK.

 

Содержимое каталогов зависит от комплектации поставляемого NMSDK (см. документе по инсталляции для конкретно поставленной программы из состава указанного в документе «ЮФКВ.30048-01. Комплекты поставки кросс-средств разработки программ.»

Переменная окружения NEURO

Для того, чтобы в процессе компиляции и сборки прикладных программ программы NMSDK автоматически находили все необходимые библиотеки и заголовочные файлы, в NMSDK введена переменная окружения NEURO, которая содержит путь к корневому каталогу установки NMSDK.

Пример содержимого при типовой установке:

«C:\Program Files (x86)\Module\NM SDK 3.01»

Помимо установки переменной окружения при инсталляции необходимо добавить путь к каталогу BIN, поскольку в нем содержатся исполняемые программы из состава NMSDK:

PATH=%PATH%; D:\NEURO\BIN;

Данные изменения, окружения производятся автоматически на этапе инсталляции, либо вручную – в зависимости от выбора пользователя.

 


2   Компилятор Си++

Введение

В состав NMSDK входят два компилятора С++ для процессоров серии 1879ВМ – компилятор С++ (см. 2.2) и оптимизирующий компилятор С++ (см. 2.3). В этом разделе собраны данные о поддерживаемой компиляторами версии языка Си++, краткая справка о составе компилятора, опциях управления компилятором, приводится пример компиляции простейшей программы.

 

Примечание Данное справочное руководство не может использоваться в качестве вводного курса по программированию на языке Си++, также оно не содержит справочной информации по языку Си++.

2.2 О компиляторе Си++ для процессоров серии 1879ВМ

Компилятор Си++ для процессоров серии 1879ВМ представляет собой полноценный компилятор, транслирующий Си/Си++ программы в исходные тексты на языке ассемблера для процессоров серии 1879ВМ. Далее описаны ключевые характеристики данного компилятора:

· Компилятор Си++ поддерживает определение языка Си++, описанное в предварительном стандарте ANSI X3J16/95-0029 за исключением шаблонов.

· Рассматриваемая версия компилятора Си++ предназначена для работы в среде Windows 95/98 или Windows NT 4.0 в качестве консольного приложения, управляемого с помощью опций командной строки.

· Компилятор поставляется вместе с библиотекой времени исполнения libc.lib. Библиотека включает в себя функции для time-keeping, динамического распределения памяти, преобразования данных и арифметических операций и функций с плавающей точкой. К ограничениям, налагаемым отсутствием операционной системы, относятся файловый ввод-вывод, функции локализации и работы с датой/временем, обработки сигналов операционной системы, а также функции взаимодействия с ОС (в частности, system()). Взаимодействие с окружением: <stdlib.h>. Файловый ввод-вывод: <stdio.h> Обработка сигналов: <signal.h> Поддержка локализации, мультибайт символы: <locale.h> Средства поддержки определения даты и времени: <time.h>

· Компилятор поддерживает несегментированную (линейную) модель организации памяти. Ограничений на размер объектного кода нет. Пространство памяти ограничено только аппаратной конфигурацией.

· В комплект компилятора входит программная оболочка, которая позволяет пользователю исполнять все шаги трансляции программы в исполняемый код для процессора с помощью одной команды.

· Компилятор поддерживает соглашения о непосредственных вызовах, позволяющих пользователю свободно писать ассемблерные и Си/Си++ функции, вызывающие друг друга.

· Executable and Linkable File (ELF) формат позволяют пользователю определить системную карту памяти во время компоновки. Таким образом, повышается эффективность работы, так как пользователю предоставляется возможность компоновать Си/Си++ коды и данные в отдельные области памяти.

· DWARF Формат отладочной информации обеспечивает полную поддержку отладки на уровне входного языка.

· Данные типов char, short, int, float занимают 32 бита; данные типов long и double занимают 64 бита.

Компилятор имеет интерфейс командной строки и запускается на исполнение при помощи драйвера компонентов nmcc, который представляет собой программное средство, предназначенное для объединения нескольких программ NMSDK под единым пользовательским интерфейсом.

 

Примечание Подпрограммы, составляющие непосредственно компилятор Си++ не предназначены для индивидуального запуска пользователем. Осуществлять компиляцию рекомендуется только через nmcc. В настоящее время данный компилятор считается устаревшим и по-умолчанию используется оптимизирующий компилятор (см. п.2.3). Если же вы хотите использовать именно данный компилятор, задайте драйверу компонент nmcc ключ – Ox.

 

Процесс компиляции разбит на три стадии:

· предобработку, которую выполняет препроцессор;

· разбор входного файла и генерацию промежуточного файла, выполняемые компилятором переднего плана;

· порождение ассемблерного представления программы, осуществляемого генератором кода.

Стадии компиляции выполняются в приведенной выше последовательности, результатом компиляции является файл на языке ассемблера, адекватный соответствующему файлу на языке Си++.

Положение компилятора Си++ в общей структуре NMSDK приведено на Рис. 2‑1.

Рис. 2‑1 Положение компилятора Си++ в общей структуре NMSDK.

2.3 Об оптимизирующем компиляторе Си++ для процессоров серии 1879ВМ

Оптимизирующий компилятор Си++ для процессоров серии 1879ВМ представляет собой новую программу в составе NMDSK - полноценный компилятор, транслирующий Си/Си++ программы в исходные тексты на языке ассемблера для процессоров серии 1879ВМ. Оптимизирующий компилятор используется вместо компилятора С++. Далее описаны ключевые характеристики данного компилятора:

· Более строгое следование стандарту С++, включая шаблоны;

· Продвинутые алгоритмы оптимизации.

Оптимизирующий компилятор имеет интерфейс командной строки и запускается на исполнение при помощи драйвера компонентов nmcc, далее в данном документе описывается именно такой, опосредованный способ его вызова. Однако, его можно вызывать и непосредственно из командной строки по имени nmcpp. В отличие от nmcc, на выходе nmcpp порождает ассемблерный файл, ассемблирование и линковку в данном случае пользователь должен инициировать сам. Из плюсов – доступно более тонкое управление компиляцией. Для получения краткой информации о параметрах вызова, используйте команду «nmcpp -?».

Табл. 2‑3 Параметры командной строки оптимизирующего компилятора.

Параметры Описание
-OPT0, -OPT1, -OPT2 Управление оптимизацией. OPT2 соответствует самой агрессивной оптимизации, OPT0– минимальной. Значение по-умолчанию OPT0
-inline Разрешить встраивание функций (function inlining optimization)
-debug Указание генерировать отладочную информацию.
-except Включить обработку исключений для пользовательского кода.
-rtti Включить поддержку runtime type information для пользовательского кода.
-nologo Не выводить в консоль информацию о себе при вызове.
-6405 Генерировать код оптимальный для устройств на базе ядра nmc3, такой код не будет работать на nm6403.
-O<out_file> Установить имя выходного файла.
-Ia<file> Подставить файл file в начало входного файла
-Ib<file> Подставить файл file в конец входного файла
-I<ipath> Добавить каталог для поиска заголовочных файлов
-A<opt_file> Взять дополнительные опции из файла opt_file
-Dname[=text] Определить в контексте компиляции (аналогично #define) макрос name со значением text
-Uname Отключить макрос в контексте компиляции (аналогично #undef)
-u Отключить все макросы
-p Вместо компиляции выполнить только препроцессинг
-c Сохранить комментарии при препроцессинге
-C<codepage> Указание интерпретировать входной текст, как имеющий кодировку codepage
-E<max_err> Указание остановить компиляцию при достижении заданного числа ошибок
-W<max_warn> Указание остановить компиляцию при достижении заданного числа предупреждений
-w Не выдавать предупреждения
-M<codepage> Задать кодировку для выдаваемых сообщений
-Tc Интерпретировать входной язык как С89 (ANSI)
-Tc99 Интерпретировать входной язык как С99
-Tp Интерпретировать входной язык как С++
-Tp98 Интерпретировать входной язык как С++ версии ISO/IEC 14882:1998
-? Вывести список опций с кратким описанием

 

Драйвер компонентов

Кросс-средства разработки программ, предназначенные для создания пользовательских программ, состоят из следующих отдельных программ:

· Компилятор Си++:

¨ препроцессор;

¨ компилятор переднего плана;

¨ кодогенератор;

· Оптимизирующий компилятор С++;

· Ассемблер;

· Редактор связей.

Для получения исполняемого файла из программы на языке ассемблера или Си/Си++, требуется последовательно запустить несколько программ для каждого исходного файла проекта. Драйвер компонентов позволяет автоматизировать процесс создания результирующего файла из произвольного числа исходных, путём объединения перечисленных программа под единым интерфейсом.

Управление драйвером осуществляется путем использования входных параметров. Эти параметры во многом совпадают по нотации с теми, что используются при запуске отдельных программ NMSDK. Также в качестве входных параметров рассматриваются имена исходных файлов и библиотек. Подробное описание всех входных параметров драйвера приведено в подразделе 2.7. «Список параметров управления компиляцией».

Для каждого исходного файла драйвер запускает программу или программы, предназначенные для его обработки, с теми входными параметрами, которые соответствуют данной программе. Например, для исходного Си/Си++ файла драйвер запустит все перечисленные выше программы, начиная с препроцессора.

В случае возникновения ошибки в процессе компиляции и сборки программы на экран выдается диагностической сообщение, и последующие шаги компиляции не выполняются.


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.