Windows Embedded Compact 7 – отличная платформа для устройств

Павел Белевский

Журнал Электронные компоненты 

№ 5/2011

Введение

Вопрос выбора операционной системы для разрабатываемого устройства многогранен. В первую очередь, что очевидно, система должна предоставлять базовый функционал максимально раскрывающий возможности разрабатываемого устройства, с тем чтобы разработчик мог сконцентрироваться над решением собственных, специфичных для данного устройства задачах. Вторая сторона вопроса – это сложность вхождения в цикл разработки, что можно охарактеризовать удобством и возможностями инструментария по разработке, его распространенности в среде разработчиков. В общем, перечисленные факторы определяют время затрачиваемое на разработку, что в итоге безусловно отражается на стоимости устройства. Кроме этого краткий цикл по выпуску продукта является важным конкуретным преимуществом в современном достаточно насыщенным цифровыми технологиями мире. Немаловажными аспектами также являются цикл поддержки системы, возможности по защите интеллектуальной собственности и лицензированию в конечных устройствах. Обо всех этих определяющих моментах и в какой степени они применимы к новой встраиваемой ОС Windows Embedded Compact 7 мы и поговорим.

Возможности

Так что же конкретно дает WEC 7 разработчику? Компактность, что позволяет использовать для построения устройств не только мощные платформы, но и платформы с ограниченными вычислительными возможностями. Кроссплатформенность расширяет выбор аппаратной начинки устройства – это может быть ARM, MIPS или широко распространенная x86-архитектура. Для полноценной работы современных микропроцессоров в WEC 7 реализована поддержка многоядерности и оперативной памяти вплоть до 3 Гбайт. Многозадачность: до 32 тысяч одновременно запущенных процессов с виртуальным адресным пространством в 2 Гбайт для каждого процесса; ограничений на количество потоков, исполняющихся в контексте каждого процесса, не накладывается и опеределяется исключительно возможностями аппаратной платформы – в первую очередь объемом оперативной памяти. Уникальная для ОС компании Microsoft архитектура WEC 7 позволяет строить на её базе системы реального времени, причем появившаяся в новой версии поддержка многоядерных процессоров расширяется возможности таких систем. А именно, есть возможность одновременно обеспечивать требования для работы в режиме реального времени и предоставлять интерфейс пользователя, разработанный с использованием современных технологий, как, например, Silverlight for Windows Embedded.

Безусловно, ввиду особенностей WEC 7, в первую очередь компактности, кроссплатформенности и работе в режиме реального времени, архитектура данной системы отличается от архитектуры настольной Windows-системы. Данный факт означает, как минимум, бинарную несовместимость, т.е. невозможно использование исполняемых файлов драйверов и приложений разработанных для настольной системы. При этом реализованная модель драйверов с одной стороны проще чем в настольной системе, а с другой стороны инфрастуктура ряда драйверов (Wi-Fi, NDIS) максимально приближена к реализации таковых в Windows 7, что позволяет при необходимости быстро разрабатывать драйвера или использовать существующие наработки.

Доступный в компонентной форме функционал системы, полный перечень которого приведен в таблице 1, содержит все необходимые элементы для построения современных устройств. В особенности это касается мультимедийных устройств с расширенными коммуникационными возможностями. Среди всего спектра поддерживаемых в Compact 7 технологий следует отметить новые возможности по разработке интерфейсов устройств – это поддержка сенсорных экранов с распознаванием множественных касаний и Silverlight for Windows Embedded. SfWE – это портированная версия Silverlight 3.0 для работы на устройствах под управлением WEC 7. Особенностью данной реализации Silverlight является, то что разработка приложений ведется на C/C++. Использование «native»-кода дает выигрыш в производительности и позволяет напрямую взаимодействовать с драйверами.

Таблица 1 

Приложения Драйвера устройств Шрифты
ActiveSync

Аксселерометр

Scripts

Справка

Аудио

Symbol

Клиент RDP 7

Драйвер подсветки

UI

WordPad

Драйвера шин (I2C, PCI)

Web Fonts

Office Viewers (Word, Excel, PowerPoint, PDF)

Камера

Wingdings

Internet Explorer 7.0 + Adobe Flash 10.1

Дисплей

Графическая подсистема
Поддержка приложений

Устройства ввода/вывода (клавиатура/мышь)

Аудио-кодеки
.NET Compact Framework 3.5

Сетевые адаптеры

Графическая подсистема (GDI, DirectDraw)
Active Template Library (ATL) SD Мультимедиа (Аудио-, видео-кодеки, DRM, DirectShow)
C Libraries and Runtimes Последовательный порт Интернациализация
CE Messaging API (MAPI) Smart Card Поддержка кодовых станиц
Component Services (COM and DCOM) Устройства хранения (ATAPI, флеш) Multilingual User Interface (MUI)
Lightweight Directory Access Protocol (LDAP) Client USB Безопасность
Message Queuing (MSMQ) USB Audio Kerberos
Object Exchange Protocol (OBEX) Администрирование NTLM
Pocket Outlook Object Model (POOM) API Simple Network Management Protocol (SNMP) Schannel (SSL/TLS)
SMS transport for CEMAPI Подсистема хранения Службы сертификатов
SQL Compact Сжатие Оболочка и UI
Standard SDK for Windows Embedded Compact Поддержка баз данных Оконный менеджер
String Safe Utility Functions Репликация файлов и баз данных

Touch Gestures

XML Диспетчер кэширования файлов

Оболочки

Коммуникации Реестр

Оболочка командной строки

Поддержка сетей сотовой связи Файловые системы Стандартная оболочка
Connection Manager

Binary Rom Image File System

Оболочка мультимедийного устройства (Silverlight)
MTP Responder

CD/UDFS File System

Оболочка тонкого клиента
Протоколы сетевого взаимодействия (TCP/IP, IPSec, UPnP, SMB, WinSock)

exFAT File System

Интерфейс
Поддержка беспроводных сетей (Wi-Fi, Bluetooth 2.1)

FAT File System

Поддержка стандартных элементов управления (Common Controls)
Поддержка удаленных сетей (RAS/PPP, PPPoE, VPN)

Transaction-Safe FAT File System (TFAT)

Поддержка стандартных диалоговых окон

Сервера Файловые системы

Панель управления (Silverlight for Windows Embedded)

DHCP

Binary Rom Image File System

Настраиваемый интерфейс (Windows XP-like Sample Skin)

Файловый сервер

CD/UDFS File System

Настройки дисплея

FTP

exFAT File System

Настройки по подключению

Принт-сервер (SMB/CIFS)

FAT File System

Сетевые настройки

Сервер входящих соединений RAS/PPTP

Transaction-Safe FAT File System (TFAT)

Региональные настройки

SNTP

 

Экранная клавиатура

Telnet

 

Поддержка сенсорных экранов (Stylus)

Web-сервер

 

Настройка Wi-Fi

 

Инструментарий

Возвращаясь к одному из ключевых моментов при выборе системы, средствам разработки, инструментарий разработчика состоит из Microsoft Visual Studio 2008 Professional c соответсвующим дополнением (Platform Builder), пакета для тестирования устройств (Compact Test Kit), средства для разработки интерфейсов - Microsoft Expression Blend 3, а также вспомогательных утилит.

Уже само по себе использование VS в качестве основного интрумента разработчика является неоспоримым преимуществом WEC 7, поскольку, предоставляя мощные средства по разработке кода и его отладке, VS является самой распространенной средой разработки на платформе Microsoft. VS 2008, как известно, является универсальным инструментом по разработке приложений и изначально в неё не включены средства по разработке образов WEC 7. Специальное дополнение, Platform Builder, расширяет возможности VS по конфигурированию, сборке и отладке образов WEC 7.

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

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

Важной особенностью Platform Builder является возможность отладки образа системы как непосредственно на самом устройстве так и в эмуляторе. В качестве эмулятора устройства в WEC 7 используется Microsoft Virtual PC – бесплатное средство виртуализации на платформе Microsoft Windows. Причем, помимо аппаратной отладки, в средствах разработки WEC 7 реализованы специальные механизмы полностью программной отладки, которая не требует использования каких-либо вспомогательных средств кроме станции разработки, на которой установлены средства разработки, и самого устройства. Для разработчика WEC 7 доступны как стандартные средства отладки VS, стек вызовов, точки останова, просмотр содержимого переменных и пр., так и целый класс новых для VS средств, которые позволяют удаленно запускать приложения, регулировать в процессе исполнения на устройстве детализацию отладочной информации, выполнять типичные операции по просмотру содержимого файловой системы и реестра, исследовать производительность системы и анализировать поведение системы для обеспечения требований по реальному времени. И все это можно делать удаленно непосредственно на разрабатываемом устройстве.

Практически весь цикл разработки устройств на базе WEC 7 выполняется в среде VS за исключением непосредственно тестирования работы устройства в целом, которое вынесено в отдельный пакет – Compact Test Kit (CTK). CTK предоставляет расширяемую инфраструктуру для выполнения массового тестирования устройств с удобными средствами анализа результатов. В состав данного пакета входит большое количество библиотек тестирования различных функциональных блоков устройства (графической подсистемы, портов ввода/вывода и многон другое), а также есть возможность расширить этот набор собственными тестами. Архитектура CTK позволяет запускать тесты как вручную непосредственно на устройстве, так и в автоматическом режиме с сервера тестирования, на который будут стекаться результаты тестирования.

Третьим основным инструментом, но скорее дизайнера чем разработчика, является Microsoft Expression Blend 3. Данное средство дополняет возможности VS в плане разработки интерфейсов с использованием Silverlight for Windows Embedded. Основным преимуществом использования SfWE является разделение процесса создания интерфейсной части приложения, то каким образом оно будет выглядеть, и логики работы приложения. Как следствие применения такого подхода становиться возможным быстро модернизировать интерфейс с минимальными изменениями в коде приложения.

Лицензирование

В поставке средств разработки идут исходные коды основных компонентов системы, в частности, ядра системы. Исходные коды позволяют понять принципы работы ОС в случае если информации в документации недостаточно. Также есть возможность использовать предоставленные исходные коды для реализации собственного функционала или выполнить их доработку без каких-либо отчислений в пользу Microsoft или декларировании - все вносимые модификации полностью остаются за разработчиком и не требуют публикации, как, например в случае GPL-лицензии. Тем самым с WEC 7 полностью защищены права компании-разработчика.

Как и в большинстве продуктов компании Microsoft для использования WEC 7 в конечных устройствах необходима лицензия на устройство. В WEC 7 доступно несколько вариантов лицензий в зависимости от выбранного функционала ОС. В общем случае можно выделить 2 типа лицензий: базовая и полная. Также есть несколько вертикальных лицензий, использование которых ограничено конкретным типом устройств, например, портативными навигационными системами. Гибкая политика лицензирования позволяет выбрать именно то тип лицензии, который наилучшим образом соответсвует разрабатываемому устройству, что в ряде случаев позволяет ощутимо съэкономить на лицензировании.

Резюме

С Windows Embedded Compact 7 разработчик получает все необходимые средства разработки, тем самым полностью охватывая цикл разработки образов системы начиная от прототипирования в эмуляторе и заканчивая всесторонним тестированием.

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

Благодаря развитой экосистеме экспертов и профессионалов вхождение в разработку устройств на базе WEC 7 может быть максимально эффективным и быстрым. Для начинающих разработчиков доступны авторизированные курсы и сертификационные экзамены, что также является весомым аргументом в пользу WEC 7.

П.В. Белевский, ведущий специалист отдела исследований и разработок,

Департамент встраиваемых систем,

ООО «Кварта Технологии», г. Москва,

pavelb@quarta.ru

Журнал Электронные компоненты 

№ 5/2011

 

Подписка на новости