Среда программирования для встраиваемых систем на

advertisement
УДК 621.38(06) Электроника
К.В. КОНОНЕНКО, Ю.Б. РЕШЕТНИКОВА
Московский инженерно-физический институт (государственный университет)
СРЕДА ПРОГРАММИРОВАНИЯ ДЛЯ ВСТРАИВАЕМЫХ
СИСТЕМ НА КРИСТАЛЛЕ НА БАЗЕ ARM-ЯДЕР
Разработана среда программирования, предназначенная для встраиваемых систем на кристалле на базе ARM-ядер.
Проектирование прикладного обеспечения для систем на кристалле на
базе ARM-ядер [1], [2] происходит всё на более высоком уровне сложности. Использование языка программирования C/C++ оказывается неэффективным для проектов большой сложности. Особенности языка C/C++,
которые необходимо учитывать, существенно зависят от используемой
операционной системы и аппаратного обеспечения. Написание платформо-независимого кода становится нетривиальной задачей.
Существует потребность в создании среды программирования, которая
бы была изначально платформо-независимой, но в которой одновременно
можно было бы использовать уже ранее созданные платформо-зависимые
библиотеки, написанные на языках высокого и низкого уровня для целевой операционной системы.
Целесообразным оказывается использование виртуальных машин.
Наиболее известные реализации - стековые виртуальные машины Java и
.NET.
В
работах
[3],
[4]
описана
реализация
системы
программирования .NET, предназначенная для операционной системы
GNU/Linux. Созданная в данной работе система основана на среде исполнения Portable .NET [5].
Особенностью большинства ARM процессоров является отсутствие
сопроцессора для операций над числами с плавающей точкой. Таким образом, возможны два варианта. Первый - состоит в том, что при попытке
выполнить недопустимую операцию ARM-процессор посылает исключение операционной системе, которая его обрабатывает, выполняя операцию вместо сопроцессора. Этот вариант является более медленным по
сравнению с использованием программной эмуляции, предоставляемой
компилятором.
Целесообразным оказывается использование динамической компиляции, когда некоторые инструкции виртуальной машины интерпретируются, а другие компилируются в машинный код компилятором времени выполнения. Для операций над целыми числами Portable.NET использует
______________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 1
157
УДК 621.38(06) Электроника
компилятор времени выполнения, а для операций над числами с плавающей точкой интерпретацию.
Особенностью операционных систем семейства GNU/Linux является
их универсальность при работе с различным оборудованием, универсализация работы с оборудованием. Однако кроме работы с ядром и процессором, особенностью системы на кристалле является возможное отсутствие
дисплея, значительное варьирование его характеристик, ограничения, связанные с размером используемой памяти. Версии используемых библиотек, их имена также могут существенно различаться в различных версиях
операционной системы GNU/Linux. Кроме того, сложной задачей становится создание удобного механизма кросс компиляции.
В рамках данной работы в среду исполнения Portable.NET были внесены изменения с целью уменьшения ее размера, обеспечения удобной
кросс компиляции, увеличения скорости работы среды, добавления библиотеки GTK# [6], выявления и устранение ошибок в исходном коде.
Вся работа по созданию конечного пакета для целевой системы-накристалле выполняется в среде Open Embedded [7]. Пакеты делятся на два
вида, компилируемые в бинарные файлы совместимые с системой, и пакеты кросс компиляции для целевой системы на кристалле.
Для работы с графическим дисплеем поддерживаются два варианта.
Первый вариант – основан на использовании библиотеки X11. Она хорошо переносима на новые платформы. Поэтому этот вариант работает на
любой системе на кристалле поддерживающей не только текстового изображения, но и графического. Используется .NET библиотека Windows.Forms.dll, вывод графики в которой реализован полностью на основе
примитивов X11. Второй поддерживаемый вариант – использование .NET
библиотеки GTK#, основанной на платформо-независимых графических
примитивах библиотеки GTK.
Список литературы
1.
2.
3.
4.
5.
6.
7.
RISC-микроконтроллеры с процессорным ядром ARM, А. Емелин, И. Шагурин //
http://www.cec-mc.ru/read/art12.shtml
ARM Architecture Reference Manual // http://arm.com
Rhys Weatherley, Gopal V: Design of the Portable .NET Interpreter, .NET Developers Journal, Vol. 1, Issue No. 3, Mar 2003.
Rhys Weatherley: TreeCC: An Aspect-Oriented Approach to Writing Compilers, Free Software Magazine, Vol. 1, Issue No. 2, Feb 2002.
Домашняя страница DotGNU // http://dotgnu.org
Домашняя страница GTK# // http://gtk-sharp.sourceforge.net
Страница проекта Open Embedded // http://oe.handhelds.org
______________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 1
158
УДК 621.38(06) Электроника
______________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 1
159
Download