Операционная система Linux для встроенного микропроцессора СнК SmartFusion
19 августа 2010 года корпорация Actel и компания RoweBots объявили о доступности для СнК SmartFusion версии операционной системы (ОС) Unison.
Введение
Системы на кристалле (СнК) SmartFusion состоят из ARM-совместимого процессора CortexM3, аналогового блока с усилителями — формирователями аналоговых сигналов, одного или нескольких АЦП, развитой системы ввода/вывода и матрицы ПЛИС. Unison — это ультракомпактная операционная система, совместимая с ОС Linux. Ее отличительной чертой является построение по модульному принципу, что в большинстве приложений позволяет сократить объем используемой памяти. Теперь разработчики встроенных систем имеют возможность использовать в своих проектах весь набор программного обеспечения, разработанного под операционную систему Linux.
Создание операционной системы Unison для СнК SmartFusion стало результатом сотрудничества корпорации Actel, ведущего производителя малопотребляющих ПЛИС, и компании RoweBots, известной своими разработками малых операционных систем реального времени (RTOS) для встроенных приложений. Штаб-квартира Actel находится в США, корпорация имеет официального представителя в России и Украине [1]. А штаб-квартира RoweBots расположена в Канаде [2].
СнК SmartFusion
Микросхемы семейства SmartFusion представляют собой системы на кристалле (рис. 1).
В состав каждой микросхемы SmartFusion входит:
- Аппаратный ARM-совместимый процессор CortexM3 с тактовой частотой до 100 МГц.
- Набор аппаратных контроллеров интерфейсов, состоящий из контроллеров Ethernet 10/100, SPI, I 2 C и UART.
- Развитая периферия процессора: контроллеры прямого доступа к памяти и контроллер внешней памяти, 32-битные таймеры и часы реального времени с возможностью работы от независимого источника питания, сторожевой таймер и блоки ФАПЧ для формирования сетки тактовых частот.
- Встроенное ПЗУ до 512 кбайт и ОЗУ до 64 кбайт.
- От одного до трех аналоговых блоков, в каждый из которых входит 12-разрядный АЦП и ЦАП и набор операционных и измерительных усилителей с программируемым коэффициентом усиления, предназначенный для подготовки аналогового сигнала на входе АЦП.
- Набор быстродействующих компараторов напряжения с временем задержки распространения менее 50 нс.
- Цифровой блок обработки аналоговых сигналов, позволяющий без использования процессора и ресурсов ПЛИС осуществлять фильтрацию и масштабирование данных, поступающих с АЦП.
- Матрица ПЛИС, выполненная по Flash-технологии, а следовательно, не требующая повторной загрузки, что позволяет создавать системы, готовые к работе сразу после включения питания. Матрица может работать с тактовыми частотами до 350 МГц и имеет в своем составе блоки ОЗУ, которые могут быть сконфигурированы как регистры FIFO.
Для создания и отладки проектов на базе СнК SmartFusion доступна среда разработки Libero, версию которой, Libero Gold, можно бесплатно скачать с сайта Actel [3]. Доступны и стартовые наборы, включающие в себя плату с микросхемой SmartFusion и необходимыми цепями обвязки. Демонстрационный ролик, посвященный стартовому набору SmartFusion, можно найти на популярном сервере YouTube [4], там же есть много полезных видеороликов, посвященных различным аспектам программирования систем на базе СнК SmartFusion.
Рис. 1. Составляющие СнК SmartFusion
Операционная система Unison
Операционная система Unison доступна в двух вариантах: бесплатная версия Unison 4 и версия Unison 5 с базовой ценой около $1000. В поставку бесплатной версии Unison 4 входят базовая версия ядра ОС, некоммерческий вариант модуля TCP, файловая система, модуль последовательного ввода/вывода, базовый набор документации и 6 примеров программ. В платную версию дополнительно входят: расширенное ядро, коммерческие модули протоколов TCP и полная документация. В комплект поставки Unison 5 входят 33 примера. Для платной версии доступно множество дополнительных модулей, например, файловая система FAT, модули сетевых интерфейсов, модули беспроводного доступа, развитый стек TCP, графические модули и модули поддержки интерфейсных шин. Для покупателей ОС Unison доступна поддержка, и им оказывается помощь в адаптации ОС к требованиям конечной системы.
Классические версии Linux требуют наличия в процессоре модуля защиты памяти (memory management unit, MMU); встраиваемые версии Linux могут обходиться без MMU, однако требуют значительного объема памяти для своей работы. Unison сочетает в себе совместимость с операционными системами POSIX и Linux, высокую производительность для приложений, работающих в режиме реального времени, полноценные модули ввода/вывода с низкими запросами к объему памяти системы и простыми интерфейсами для подключения драйверов устройств. Все это дает возможность использовать развитую аналоговую периферию систем на кристалле SmartFusion и ресурсы ПЛИС под управлением операционной системы реального времени. Unison поставляется с примерами и демонстрационными программами, каждую из которых можно без труда скомпилировать, прошить в микросхему SmartFusion и запустить, используя SoftConsole.
К достоинствам Unison можно отнести и поддержку сетевых соединений, что сэкономит значительное количество времени и усилий при интеграции приборов в сеть, а аппаратная поддержка Ethernet в СнК SmartFusion сэкономит еще и место на печатной плате. Структура проекта по разработке программного обеспечения для семейства SmartFusion показана на рис. 2. Система поставляется с подробным руководством по установке, к которому прилагаются видеоролики с пошаговыми инструкциями. Совместимость интерфейсов всех версий ОС Unison и DSPnano позволяет легко, без изменений в исходном коде, менять базовый процессор приложения, увеличивая или уменьшая его вычислительную мощность в соответствии с требованиями проекта.
Рис. 2. Структурная схема разработки приложений под ОС Unison
Все версии операционной системы Unison успешно прошли тщательное тестирование, как на стандартном наборе тестов POSIX так и на специализированных тестах, что подтверждает их надежность и позволяет использовать в качестве устойчивой сверхкомпактной операционной системы. Возможности
Unison поражают: она может выполнять приложения в конфигурации, где доступно 1 кбайт ОЗУ и всего 6 кбайт ПЗУ.
Заключение
Появление операционной системы реального времени Unison значительно упрощает разработку сложных проектов для СнК SmartFusion, а то, что эта операционная система совместима с ОС Linux, открывает широчайшие возможности по использованию готовых программных решений в новых проектах. Разработка такой операционной системы является еще одним подтверждением решимости корпорации Actel и дальше расширять «экосистему» готовых решений, доступных для применения в СнК SmartFusion.
Литература
Что такое Embedded Linux?
Термин «Embedded – встроенный Linux®» может использоваться для описания любого варианта операционной системы, работающей на встроенной компьютерной системе – специализированного устройства или платформы, интегрированных в более крупный общий продукт, такой как устройство бытовой электроники или часть оборудования. Модульная архитектура ядра Linux® наряду с поддержкой широкого спектра микропроцессоров и других типов оборудования сделала систему популярной в области вычислений. Но в некоторых сценариях Linux® может страдать от снижения производительности, поскольку ей требуется дополнительное программное обеспечение для работы в качестве операционной системы реального времени (RTOS), что является требованием для некоторых встроенных систем.
Несмотря на это, для встроенных систем используется множество пользовательских дистрибутивов Linux® – от мобильных телефонов до оборудования для тестирования авионики.
Встроенный компьютер отличается от персонального компьютера (ПК) тем, что встроенная система спроектирована или сконструирована для одной или нескольких конкретных целей, в то время как ПК предназначены для широкого спектра функций. Встроенный компьютер может быть спроектирован с минимальной производительностью, необходимой для достижения его конкретных целей, что обеспечивает лёгкую и высокоэффективную компьютерную платформу. Категория охватывает широкий спектр вычислительных устройств, от бытовой электроники до оборудования авионики, роверов и космических кораблей, которые исследуют солнечную систему. Но, как и любой компьютер, аппаратное обеспечение встроенной системы бесполезно без программной платформы, и во многих случаях выбранная программная платформа представляет собой некий вид встроенной Linux®.
Linux® доказала свою популярность во многих областях встраиваемых вычислений благодаря высокому уровню настройки и гибкости, а также разнообразной аппаратной поддержке. Ядро Linux® имеет модульную архитектуру, что означает, что разработчик или инженер может выбирать драйверы и программное обеспечение высокого уровня, необходимое для конкретной системы. Поддержка множества различных микропроцессорных архитектур также является важным преимуществом, предлагаемой встроенной Linux®, поскольку во встроенных системах может использоваться микропроцессор, который сильно отличается от тех, которые имеются в ПК. Как проект программного обеспечения с открытым исходным кодом, Linux® также может использоваться без ограничений и лицензионных отчислений, которые могут присутствовать в коммерческих предложениях.
Встраиваемые системы часто требуют операционной системы реального времени – операционной системы, способной реагировать на события в течение очень короткого периода времени. Поскольку ядро Linux® не было разработано с учётом производительности в режиме реального времени, для обеспечения этой функциональности, поверх ядра необходимо запустить дополнительное программное обеспечение. Это является потенциальным недостатком использования встроенной Linux®, поскольку это дополнительное программное обеспечение потребляет больше ресурсов.
Некоторые версии встроенной Linux® могут быть построены практически с нуля, в то время как другие являются слегка изменёнными версиями существующих дистрибутивов. Как коммерческие, так и некоммерческие организации предлагают свои собственные готовые дистрибутивы, предназначенные для производителей и дизайнерских фирм. Например, мобильные телефоны и медиаплееры обычно используют готовые варианты встроенной Linux®. Компьютерные системы или сетевые устройства могут использовать только слегка изменённую версию дистрибутива Linux® для настольных компьютеров.
В областях с высокими требованиями в режиме реального времени или требованиями к производительности конечный пользователь часто активно участвует в разработке системы. Например, Национальное управление по аэронавтике и исследованию космического пространства (НАСА) получает программное обеспечение Linux® от сторонних поставщиков, но устанавливает руководящие указания для поставщиков. Другие организации, такие как компании, производящие оборудование для тестирования авионики, могут разработать собственный вариант встроенной Linux®.