Среда разработки программного обеспечения для встраиваемых систем на основе JME

Сафронов А.Ю., Намиот Д.Е.

Аннотация—В данной работе производится обзор средств разработки программного обеспечения для встраиваемых
систем, рассматривается проблематика современных подходов к разработке ПО для встраиваемых систем, а так
же рассматривается предлагаемая к использованию система разработки программного обеспечения на базе
JME Ключевые слова— среда разработки, встраиваемые
системы, embedded, IDE, embedded Java, JME,Embedded.

I. ВВЕДЕНИЕ
Встраиваемая система (embedded system) – это компьютерная система, спроектированная для
специальных функций управления внутри большой системы, часто с жесткими условиями по временной
задержке реакции на события. По сравнению со встраиваемыми системами, персональный компьютер
спроектирован для решения широкого круга задач пользователей. Встраиваемая система проектируется для
решения более узкого круга задач.

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

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

Встраиваемые системы содержат процессорные ядра, которые в большинстве представляют собой
микроконтроллер или цифровой сигнальный процессор (DSP).

Классы ядер, используемых во ВС очень широк, начиная от 8,16-битных микроконтроллеров и заканчивая 32
битными микроконтроллерами типа ARM, MIPS, PowerPC с частотой десятки и сотни мегагерц, внешней
RAM и FLASH памятью объемами в десятки и сотни мегабайт.

Сафронов Андрей Юрьевич – студент второго курса магистратуры факультета вычислительной математики и кибернетики Московского
Государственного Университета им. Ломоносова.

Намиот Дмитрий Евгеньевич – кандидат физико-математических
наук, старший научный сотрудник лаборатории открытых информационных технологий факультета вычислительной математики
и кибернетики Московского Государственного Университета им.

Ломоносова.

Так как встраиваемые системы предназначены для решения специализированных задач, то инженеры
имеют возможность оптимизировать дизайн систем таким образом, чтобы снизить размер и стоимость
продукта и увеличить надежность и производительность. С этой целью очень широко
применяются системы на кристалле (System-on-a-Chip ) при проектировании устройств.

Типичная система на кристалле содержит в себе процессорное ядро, банк памяти RAM и FLASH, а так
же различные периферийные устройства(аналоговые преобразователи, внешние интерфейсы USB, Ethernet,
SPI). За счет высокой интегрированности устройств различного назначения, получается значительная
экономия в размерах, энергопотреблении, а также стоимости проектирования конечных устройств.

Благодаря этим характеристикам SoC пользуются большой популярностью, например, одна только
компания MICROCHIP к 2011 году поставила заказчикам 10 миллиардную микросхему SoC семейства
PIC, это больше чем число процессоров в персональных компьютерах.

II. ОБЗОР СРЕДСТВ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ВСТРАИВАЕМЫХ СИСТЕМ.

Не смотря на широкое распространение встраиваемых систем с ограниченными ресурсами, нельзя назвать
широко распространенных средств разработки.

Наиболее используемая практика – программирование
на языке C,C++ и assembler.

Многие компании-разработчики микропроцессоров
предлагают пользователям свои средства разработки.

Компания Microchip предлагает для своих продуктов
среду разработки MPLAB IDE[7], включающую средства компиляции на базе gcc и средства отладки,
графические, сетевые библиотеки и библиотеки вывода.

Весь это инструментарий можно использовать в
основном только с продуктами компании Microchip.

Компания Atmel производит очень популярные
семейства систем на кристалле C51, AVR и так же предлагает свою среду разработки AVR Studio[9]
Компания Texas Instruments поддерживает свой инструментарий — Code Composer Studio[10].

Такой подход к выпуску инструментов разработки программного обеспечения для встраиваемых систем со
стороны компаний-производителей систем на кристалле имеет свои минусы. Зачастую компании-разработчики
параллельно разрабатывают программные библиотеки  Среда разработки программного обеспечения для
 встраиваемых систем на основе JME Сафронов А.Ю., Намиот Д.Е.

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

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

 Некоторые компании разработчики ПО, предлагают
свои решения в области тех же графических библиотек, например компания Amulet Technologies является одним
из известных разработчиков высокопроизводительных GUI решений для встраиваемых систем. Компания
поставляет свою систему разработки GEMstudio GUI Design Software[11].

 В мире десктоп-систем и мобильных систем с достаточным количеством ресурсов существуют
распространенные способы решения таких проблем, например разработчики для создания
кроссплатформенного программного обеспечения могут использовать Qt библиотеки или платформу разработки
Java. К сожалению, такие средства разработки не применимы к большинству систем на кристалле в силу
ограниченности вычислительных ресурсов. В системах на кристалле зачастую отсутствует ОС и размер
оперативной памяти измеряется 10кб.

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

 Можно выделить для рассмотрения две технологии
разработки программного обеспечения для систем уровня десктоп, которые в настоящее время
адаптируются для встраиваемых систем. Это платформа .NET и платформа JEE/JME
Такая крупная компания как Microsoft не обошла своим вниманием рынок встраиваемых систем и представила
свое решение для встраиваемых систем — адаптированную версию платформы .NET[1].

A. Платформа разработки .NET Micro FrameWork.

Для разработки встраиваемых систем, преимущества
.NET Micro FrameWork, могут быть обобщены следующим образом:
 низкий уровень стоимости разработки, чем у традиционных встраиваемых платформ;
 более быстрый выход готового продукта на рынок;  более низкая стоимость устройств managed platforms;
 меньший размер устройств managed platforms;  более низкое энергопотребление managed platforms;
 нет ограничений по специфическому чипсету;  составляет важную часть “Microsoft embedded
strategy”.

Следующие возможности платформы .NET Micro
FrameWork обеспечивают снижение стоимости разработки и более быстрый выход готового продукта
на рынок, чем у традиционных встраиваемых платформ: 1) управляемый код и все его преимущества;
2) программирование на современном языке с помощью Visual C#;
3) широкий выбор библиотеки базовых классов (подмножество обычной платформы .NET);
4) возможность низкоуровневой работы с устройствами с помощью драйверов;
5) интеграция с Visual Studio; 6) большое сообщество .NET разработчиков;
7) возможность прототипирования и отладки с помощью эмулятора.

.NET MFW позволяет разрабатывать приложения для встраиваемых систем с использованием языка С# и
Visual Studio.

При использовании .NET MFW не требуется наличие
операционной системы во встраиваемых устройствах, MFW может выполняться низкоуровневым способом,
т. к. MFW содержит сервисы, обычно предоставляемые операционной системой:
1)загрузочный код; 2) исполнение кода.

Рассмотрим требования к вычислительным ресурсам у платформы .NET Micro FrameWork.

В последних версиях платформы, разработчикам удалось снизить требования к минимальной
конфигурации встраиваемой системы до 256kb Flash памяти и 64kb оперативной памяти, разрядность
процессора — 32 бит. Для исполнения кода, .NET Micro FrameWork использует интерпретатор. Указанные
минимальные характеристики в виде разрядности процессора и интерпретатора ограничивают сферу
применения .NET Micro FrameWork.

К платформе JEE/JME также наблюдается интерес со стороны производителей средств разработки для
встраиваемых систем.

B. Виртуальная машина KVM
Компания Sun/Oracle предлагает свою технологию, для разработки ПО для встраиваемых систем. Предлагаемая
технология, основана на платформе J2ME и виртуальной машине KVM [2].

Виртуальная машина K (KVM), являющаяся ключевым элементом архитектуры J2ME и представляет собой
переносимую виртуальную машину, спроектированную заново для устройств с маленькой памятью,
ограниченными ресурсами, и которые подключены к сетям, такие как сотовые телефоны и т.д. Эти устройства
обычно включают в себя 16-битный или 32-битный процессор и с минимум оперативной памяти в районе
128 килобайт. Однако, KVM может быть гибко развернута на широком классе устройств для различных
применений и с широким диапазоном вариаций процессоров, размера памяти, характеристик устройств.

Общая идея дизайна KVM была в создании наименьшей возможной «полной» Java виртуальной машины, которая
будет поддерживать все главные аспекты языка программирования Java, но может быть запущена в
устройстве с ограниченными ресурсами с несколькими сотнями kB оперативной памяти.

Более подробно, KVM должна была удовлетворять требованиям:
1)занимать мало места, от 40 до 80 kB; 2) быть легко переносимой;
3) быть модульной и конфигурируемой; 4) быть «полной» и «быстрой» насколько это возможно.

Платформа J2ME вместе с KVM подходит для встраиваемых систем с объемом RAM больше 128к и
достаточно высоким быстродействием CPU, поскольку Java байт-код интерпретируется виртуальной машиной.

Но для большинства систем на кристалле, виртуальная машина KVM все же довольно велика по объему
занимаемой памяти и недостаточно эффективна по быстродействию вследствие интерпретации.

C. Excelsior JET Embedded.

Компания Excelsior предлагает программное решение
Excelsior JET Embedded[5], для использования Java во встраиваемых системах. Вместо медленной
интерпретирующей байт-код виртуальной VM, Excelsior JET включает в себя оптимизирующий Ahead-Of-Time
(AOT) компилятор. Java разработчики могут использовать его для трансформации jar файлов
приложения в оптимизированный исполняемый бинарный код целевой архитектуры. В результате, Java
приложения исполняются на высокой скорости с момента запуска приложения. Компилятор AOT
использует jar и class файлы на входе и создает исполняемый код на выходе, runtime так же включает в
себя JIT компилятор для обработки классов, которые не были предварительно скомпилированы AOT.

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

Требования к системе: CPU Intel Pentium II, 200 MHz и выше
RAM 5 MB минимум, рекомендуется 16+MB ROM/FLASH Минимум 15 MB
OS Windows Linux: kernel 2.6.x, glibc 2.3+, NPTL 2.3+
D. Java платформа MicroEJ.

Компания IS2T предлагает свой подход к
использованию Java для разработки приложений для встраиваемых систем [15].

Компанией разработана своя версия Java машины с учетом вычислительных возможностей встраиваемых
систем. Виртуальная машина занимает в минимальном виде 28кб Flash памяти и 1кб оперативной памяти.

Есть варианты использования разработанной виртуальной машины как в составе с RTOS так и без
нее. 

Категории: 

Метки: