Перейти на новую версию сайта

ПРОЕКТ В ФОКУСЕ

Первый инновационный центр управления сетями в МЭС Сибири
КАТАЛОГ

Программные средства разработки

Luminosity
Luminosity
Интегрированная среда на базе Eclipse для разработки встраиваемых приложений


ПРОИЗВОДИТЕЛЬ: LynuxWorks

ОПИСАНИЕ:

Luminosity – набор инструментов разработки встраиваемых приложений от компании LynuxWorks. Luminosity предлагает пользователю мощную среду разработки, отладки и анализа, интегрирующую в единую систему средства на базе платформы Eclipse с целью обеспечения максимального удобства и возможности взаимодействия между компонентами. Luminosity предлагает современный интерфейс, основанный на открытых стандартах, обеспечивая пользователя единым инструментом для всего семейства операционных систем реального времени LynuxWorks. Единый подход среды Luminosity поддерживается на различных хост-платформах и развивается для различных целевых процессорных архитектур.

Среда Luminosity основана на популярной платформе Eclipse и является полнофункциональной интегрированной средой разработки на базе Java для всех платформ кросс-разработки LynuxWorks с целевыми операционными системами, такими как BlueCat® Linux®, LynxOS®, LynxOS-178, LynxOS-SE и LynxSecure.

Ключевые особенности интегрированной среды (IDE) Luminosity:

  1. Построена на базе инструментальной среды Eclipse CDT (C и C++ Development Tools).
  2. Позволяет пользователю легко переключаться между различными возможностями:
    построением кода на языке C/C++;
    отладкой;
    работой с целевой системой;
    анализом (представлением) процесса;
    профилированием;
    удаленным просмотром файлов.
  3. Имеет развитые средства отладки операционной системы:
    интегрированный отладчик позволяет работать как с процессами, так и с потоками, причем на каждый поток выделяется отдельное окно;
    встроенные интегрированные средства просмотра содержимого ядра: очередей, мьютексов и семафоров;
    отладка приложений с порожденными (fork) процессам (родительскими и дочерними).
  4. Поддерживает отладку как отдельных процессоров, так и разделов:
    позволяет присоединяться к нескольким целевым системам, причем индивидуально конфигурировать метод и параметры связи;
    позволяет присоединяться к различным разделам и отлаживать безопасные или секретные приложения.
  5. Включает средства анализа межпроцессной информации и инструмент трассировки SpyKer, что позволяет получать детальную информацию системного уровня.
  6. Имеет открытые коммуникационные интерфейсы с целевой системой.
  7. Имеет уникальную программу проверки дополнительных средств расширения.

Eclipse де-факто открытая платформа

Среда Eclipse стала стандартной промышленной платформой для разработки встраиваемого программного обеспечения. Eclipse обеспечивает выдающиеся функциональные возможности и стабильность. Eclipse обеспечивает открытую среду разработки, которую разработчики и поставщики встраиваемого программного обеспечения могут настроить в соответствии с их собственными потребностями, поддерживая стандартный пользовательский интерфейс. Платформа Eclipse доступна на различных хост-системах и в общем случае является независимой от встраиваемой целевой архитектуры.

Поддержка открытых стандартов в Luminosity

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

В рамках платфомы Eclipse и объединенного вокруг нее сообщества разработчиков доступно много проектов с открытым кодом, которые расширяют среду разработки и поставляются в виде стандартов и примеров, которые можно включить в среду Eclipse и тем самым расширить возможности базовых инструментов. Эти проекты обеспечивают стандартный набор представлений и перспектив.

Представлением в Eclipse является некая рабочая панель. Все рабочее пространство Eclipse состоит из нескольких представлений. Примером может служить навигационное или схематическое представление (navigator или outline views). Набор таких представлений называется перспективой. Одна из наиболее распространённых перспектив – ресурсы (Resource) – представляет собой базовый набор представлений для управления проектами и просмотра, а также редактирования файлов проекта.

Среда Luminosity использует проект CDT для различных задач в процессе жизненного цикла при разработке программ, а также расширяет стандартные перспективы CDT, чтобы поддержать операционные системы LynuxWorks для целей построения и отладки. Это означает, что клиенты LynuxWorks получают лучшие в своем классе инструменты для своей целевой среды разработки, не требующие от них изучения нового набора составляющих частнофирменных инструментов и интерфейсов.

CDT является расширением (плагином) платформы Eclipse. Система плагинов, с помощью которых реализуется практически вся функциональность Eclipse, позволяет этой платформе быть крайне гибкой и масштабируемой. CDT является одним из популярнейших расширений Eclipse, причем не только среди разработчиков Linux, – более половины разработчиков используют CDT для разработок Windows-приложений. В составе проекта CDT идут подкомпоненты, отвечающие за возможности пакета. Базовую функциональность обеспечивает компонент CDT. Компонент CDT Debug UI предоставляет пользовательский интерфейс для отладчика. CDT UI – возможности интерфейса пользователя, программы просмотра и редактирования, набор мастеров. Редакторы CDT имеют возможности по подсветке синтаксиса и помощника по коду (code assist, автоматическое дописывание кода в соответствии с шаблонами), которые могут настраиваться индивидуально под требования разработчика и делают проект CDT еще более популярным. И это далеко не полный перечень компонентов проекта CDT.

Перспективы Eclipse

Перспектива построения C/C++ объединяет открытый проект CDT, инструменты компиляции GNU и развитую среду разработки образов операционных систем LynuxWorks и встраиваемых приложений, которые будут работать в среде OC.

Luminosity упрощает руководство проектом на основе перспектив, доступных внутри представлений Eclipse. Варианты построения могут предназначаться для индивидуальных файлов или всего проекта. Параметры настройки среды разработки служат, чтобы настроить компилятор и варианты компоновщика, а также целевую среду, которая будет построена.

Управление проектом под руководством помощников

В Luminosity при создании проектов пользователю неоценимую помощь могут оказать легкие в использовании помощники (wizard).

Разработчик может использовать помощника нового проекта (New Project Wizard) для легкого и быстрого создания структуры кода нового проекта (C, C++), а затем использовать кросс-процессный viewer в перспективе сборки (Build Perspective), чтобы наблюдать за активностью всего процесса и за работой потоков на целевой системе. Проекты могут быть созданы из множества шаблонов кода, основанных на POSIX®, драйверах устройства или пользователь может создать пустой проект и импортировать в него существующий код.

В Luminosity опции проекта LynuxWorks C/C++ позволяют пользователям напрямую редактировать и управлять своими make-файлами. Luminosity будет управлять make-файлами автоматически, если выбрана опция Managed Make C/C++. Разработчики могут использовать помощника ядра (Kernel Wizard) в Luminosity для проектов C, которые собирают ядро LynxOS-SE, или помощника драйвера (Driver Wizard), чтобы создать скелет проекта драйвера, который будет служить отправной точкой при разработке драйвера устройства.

Рис. 1. Помощник создания проекта
Рис. 1. Помощник создания проекта

Администрирование целевой системы в Luminosity

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

Расширенный отладчик, трассировщик событий и программные расширения Luminosity

На основе перспективы сборки CDT Luminosity предоставляет мощный отладчик, который обеспечивает доступ к работающей целевой системе. Luminosity обеспечивает также стандартные представления отладки, такие как контрольные точки, память, регистр и переменные, дисассемблирование кода, представления связи с целевой системой, навигацию исходной файловой системы и окна для консоли вывода.

Luminosity также добавляет дополнительные представления в перспективе отладки для операционных систем LynuxWorks. Эти расширенные представления отображают информацию о состоянии операционной системы и ее коммуникационных механизмов, таких как очереди сообщений, семафоры, условные переменные и мьютексы. Отладчик также обеспечивает представления для множества потоков и данные о динамически присоединенных к системе процессах. Для операционных систем с временным и пространственным изолированием разделов, таких как LynxOS-178, доступна дополнительная информация об этих разделах, которая облегчает отладку приложений, работающих в различных разделах.

Luminosity обеспечивает невероятно полезную возможность, tracepoints (точки трассировки), которая позволяет разработчику наблюдать поведение программы, не прерывая ее. Это помогает решить проблему, возникающую в некоторых приложениях, в которых задержки, введенные отладчиком, могут кардинально изменить поведение программы или привести к сбою, даже если сам код правильный.

Отладчик в Luminosity поддерживает отладку ядра и устройств на уровне исходного текста.

Для систем с несколькими процессорами или ядрами отладчик Luminosity поддерживает отдельно конфигурируемые соединения с каждой целевой системой.

Рис. 2. Архитектура Luminosity
Рис. 2. Архитектура Luminosity

Доступ к исполнительной (runtime) системе

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

Рис. 3. Перспектива построения C/C++ в Luminosity вместе с конфигурированием ядра
Рис. 3. Перспектива построения C/C++ в Luminosity вместе с конфигурированием ядра

Рис. 4. Перспектива отладки Luminosity вместе с межпроцессным представлением
Рис. 4. Перспектива отладки Luminosity вместе с межпроцессным представлением

Расширенный анализ системы с помощью инструмента SpyKer

SpyKer использует возможности расширения платформы Eclipse и показывает подробную информацию о процессах, работающих на фактически загруженном (развернутом) ядре. SpyKer вносит чрезвычайно малые искажения при трассировке и минимизирует воздействие на целевую систему. Это обеспечивает объективность измерений и устраняет потенциальные проблемы при анализе временных характеристик, которые могли бы скрыть трудноуловимые ошибки. Например:

  • Разработчики могут отслеживать обширный диапазон событий, включая запросы системы, прерывания, переключения контекста, исключения процессора и много других системных событий.
  • Точки трассировки могут быть вставлены статически и динамически в запросы к разделенным библиотекам, позволяя пользователям визуализировать процедуры работы библиотеки с помощью знакомых им названий.
  • SpyKer может также захватывать события «вручную» (для так называемых событий пользователя), что позволяет настраивать SpyKer для специфической задачи отладки. Cобытия пользователя могут быть добавлены и в ядре, и в разделяемых прикладных уровнях.

SpyKer позволяет ядрам и активным приложениям стать автоинструментованными во время выполнения, не прибегая к длинным циклам инструментирования и перезагрузкам. (Традиционные инструменты анализа работы требуют предварительного инструментирования приложения с помощью специальных запросов или управления этим в среде специально инструментированного ядра.)

SpyKer также собирает информацию об использовании центрального процессора и статистику использования памяти. Для быстрого анализа проблем, связанных со временем, доступен инструмент отображения гистограмм временных событий, который позволяет легко визуализировать время, затраченное системой в процедурах обслуживания прерываний (ISRs) или между любыми двумя событиями в системе. Гистограмма показывает интервал времени между событиями с помощью единственного щелчка мыши пользователя.

Открытые коммуникации между хостом и целевой системой

Luminosity предлагает разработчикам встраиваемых систем и партнерам LynuxWorks открытый коммуникационный интерфейс LOCI (Open Communications Interface), который дает возможность легко связать инструменты разработки на хосте с резидентными агентами отладки и анализа целевых систем. Открытый интерфейс, наряду с модулями расширения Eclipse, дает возможность новым инструментам быть интегрированными в Luminosity, что в результате позволяет им взаимодействовать, управлять, отлаживать или выполнять приложения и ядра на встраиваемой целевой системе.

Преимущества открытого коммуникационного интерфейса:

  • Полнофункциональные сервисы и сессии, легкодоступные для инструментов и приложений на хост-платформе.
  • Упрощенное портирование инструментов для хост-платформ с изоляцией различия операционных систем для целевого сервера и целевых агентов.
  • Абстракция операционной системы.
  • Собственные структуры данных операционной системы скрыты за коммуникационным интерфейсом.
  • Более легкое для партнеров портирование инструментов в семейство операционных систем LynuxWorks.
  • Абстрагирует коммуникационные каналы для поддержки соединений по TCP/IP, последовательному или JTAG-интерфейсу.

Программа проверки средств расширения Luminosity

Luminosity использует стандартное немодифицированное окружение (framework) Eclipse, поэтому дополнительно требуемые инструменты, необходимые как часть жизненного цикла разработки программного обеспечения, могут быть легко включены в Luminosity с помощью стандартной нотации для программных расширений Eclipse. Кроме того, использование CDT учитывает дополнительную интеграцию с другими инструментами, которые используют в своих интересах точки расширения, предлагаемые CDT.

Многие популярные инструменты разработки из мира промышленных или офисных приложений также полезны при разработке встраиваемых систем. Это позволяет получить реальную выгоду и открывает подход к интеграции инструментов, предлагая разработчикам встраиваемых систем лучшие наработки из обоих миров. У разработчиков есть возможность выбрать лучшие в своем классе инструменты и включить их в интегрированную систему, чтобы обеспечить лучшую среду разработки для своей встраиваемой системы.

Программа проверки модулей расширений Luminosity была создана для проверки других инструментов как из мира open source, так и от коммерческих поставщиков на корректность работы в среде Luminosity. Инструменты: редакторы, компиляторы, средства проектирования высокого уровня, менеджеры исходного текста и инструменты тестирования и анализа – в общем случае доступны как программные расширения Eclipse. Luminosity и Eclipse могут предоставить конкретной среде разработки стандартный пользовательский интерфейс для всех инструментов, необходимых в течение всего жизненного цикла разработки встраиваемого программного обеспечения.

Открытый подход к решению проблем разработки встраиваемого программного обеспечения соответствует концепции LynuxWorks и среды разработки Luminosity и существенно облегчает создание встраиваемых систем.


ТЕХНИЧЕСКАЯ ИНФОРМАЦИЯ: