Компьютер eBox-3300 —
установка Windows Embedded CE 6.0
В первой части статьи [7] был представлен встраиваемый компьютер eBox-3300 как недорогая основа аппаратной части встраиваемой системы. В этой статье рассмотрена операционная система жесткого реального времени Windows Embedded CE 6.0, указаны ее характеристики и стоимость. Описан процесс установки Windows Embedded CE 6.0 на компьютер eBox-3300. А также показано, как установить необходимое программное обеспечение на станцию разработки, произведена сборка образа операционной системы, описан процесс загрузки образа в целевой компьютер. Освещены вопросы компоновки образа под задачу создания промышленного устройства, работающего без монитора.
Андрей КУРНИЦ
Обзор операционной системы Windows Embedded CE 6.0
Спроектированная специально для разработчиков встраиваемых продуктов, Windows Embedded CE 6.О представляет собой 32-битную, компонентную, многозадачную, многопоточную, многоплатформенную операционную систему (ОС) для компактных устройств [1]. Она прошла все независимые тесты на принадлежность к операционным системам жесткого реального времени. Windows Embedded CE поддерживает 4 типа архитектур процессоров: x86, ARM, MIPS32, SH4 (до версии CE 6.О R2). В дальнейшем мы будем использовать сокращенное название Windows CE.
ОС общего назначения, обычно используемые на настольных компьютерах, не обеспечивают необходимой в реальном времени реакции ответа, требуют больших затрат аппаратных ресурсов, соответственно, устройства с такой ОС потребляют значительную мощность. Windows CE не является просто модифицированной версией настольных операционных систем Windows, это совершенно другая ОС, имеющая свою историю развития. Первая версия Windows CE появилась в середине 199О-х как ОС реального времени для встраиваемых устройств с меньшими объемом памяти и мощностью процессора, чем у настольного компьютера. Ядро Windows CE может работать всего на 32 кбайт памяти. С графическим интерфейсом для работы Windows CE понадобится не менее 5 Мбайт.
Система Windows Embedded CE 6.О может выполнять одновременно более 32 ООО процессов, каждый с 2 Гбайт адресного пространства виртуальной памяти. Windows CE предоставляет разработчикам приложений набор функций API (Application Programming Interfaces), основанный на стандартном Win32 API и дополненный специализированным API для
встраиваемых устройств. Поскольку CE поддерживает только часть Win32 API и имеет определенную специфику, связанную со встраиваемой природой операционной системы, приложения, написанные для настольных версий операционной системы Windows, могут потребовать дополнительной адаптации и модификации для запуска их на встраиваемых устройствах. Соответственно, программа для настольной Windows не будет выполняться под управлением Windows CE. Windows CE поддерживает несколько тысяч функций API, последние же настольные версии Windows — до 20 000. Функции API добавлялись разработчиками только по мере необходимости, чтобы разработать небольшой, но самодостаточный набор. Это помогло сократить размер ядра CE. Кроме того, появляется возможность, зная Win32 API, с легкостью перейти к программированию под Windows CE. В дополнение к API система Windows CE предоставляет поддержку многих известных интерфейсов программирования компании Microsoft, включая COM, ActiveX, MFC, ATL и .NET Compact Framework.
Windows CE имеет кросскомпиляторы C/C++ и C#, систему сборки и большой набор инструментов отладки. Специальный инструмент, называемый Platform Builder, который выполняется в Visual Studio 2005, используется для генерации нового ядра ОС.
Немаловажным критерием для разработчика является вопрос стоимости того или иного программного продукта. Что касается Windows CE, то это коммерческая ОС, и плата за ее использование складывается из разовой платы за средства разработки (на момент написания статьи $995 [2]) и платы за каждую копию готовой ОС (Runtime Licensing), которая зависит от набора включенных в нее компонентов (на момент написания статьи — $4-16 [3]).
Для сравнения приведем стоимость лицензий других известных ОС реального времени. Стоимость коммерческой лицензии на ОС QNX колеблется от 3ОО до 6 тысяч долларов за одно рабочее место, в зависимости от комплектации системы, количества приобретаемых лицензий и других факторов [5]. Лицензия же ОС VxWorks обойдется приблизительно в $75ОО в год. На этом фоне цена за Windows CE не кажется завышенной.
Однако есть возможность начать разработку, не покупая никаких лицензий. Компания Microsoft предоставляет возможность бесплатно скачать полнофункциональную Trial-версию среды разработки. Но как среда разработки, так и собранные образы Windows CE будут работать только 18О дней [4].
Установка
программного обеспечения на станцию разработки
Итак, перейдем от теории к практике. Для сборки нашего собственного образа Windows CE нам потребуется станция разработки с конфигурацией не хуже следующей:
1. Компьютер с процессором 933 M^ и более; 2 ГГц рекомендуется.
2. Операционная система Microsoft Windows 2ООО Professional SP4, или Microsoft Windows XP Professional SP2, или Windows Vista (английская версия рекомендуется).
3. ОЗУ — 512 Мбайт, 1 Гбайт рекомендуется.
4. 18 Гбайт свободного места на диске, куда будет установлена среда разработки.
5. 1 Гбайт свободного места на системном диске.
6. Наличие привода DVD-ROM и монитора с разрешением не менее 1О24х768. Полезным окажется наличие свободных
Ethernet-разъема и COM-порта для отладки.
Рис. 1. Выбор аппаратной платформы при установке Platform Builder
Рис. 2. Создание образа Windows CE 6.0. Название проекта
Далее необходимо установить среду разработки. Средой разработки Windows CE является Platform Builder — утилита-дополнение к среде Visual Studio 2ОО5. Кроме того, потребуется набор дополнений (Service Pack). Загрузить Trial-версии этих продуктов и дополнения к ним можно по адресу [6]. Порядок установки следующий:
1. Visual Studio 2ОО5.
2. Windows Embedded CE 6.О (это и есть Platform Builder).
3. Microsoft Visual Studio 2ОО5 Team Suite Service Pack 1.
4. Visual Studio 2ОО5 Service Pack 1 Update for Windows Vista (если на станции разработки установлена ОС Windows Vista).
5. Windows Embedded CE 6.О Platform Builder Service Pack 1.
6. Windows Embedded CE 6.О R2.
7. Windows Embedded CE 6.О R3.
8. Windows Embedded CE 6.О Cumulative Product Update Rollup Package (through 12/31/2ОО9).
9. Windows Embedded CE 6.О Monthly Update May 2О1О.
Так как Embedded CE является мульти-платформенной ОС, то чтобы адаптировать Windows CE под целевое устройство, необходимо решить две задачи:
1. На этапе установки Platform Builder: определиться с типом процессора целевого устройства.
2. После установки: обеспечить взаимодействие ОС с периферией целевого устройства (все внешние по отношению к процессору устройства — память, COM-порты, контроллеры дисков и т. д.).
Первая задача решается на этапе установки Platform Builder. Будет предложено выбрать те аппаратные платформы, на которые планируется установка Windows CE (рис. 1). Что касается дополнений (Update), то здесь выбор осуществляется в процессе их загрузки с сайта компании Microsoft. Загружать следует только
дополнения, соответствующие выбранной аппаратной платформе (ам). В случае использования компьютера eBOX-3300 необходимо выбрать платформу x86 (рис. 1). Поддержку остальных платформ в целях экономии пространства на диске устанавливать не будем.
Вторая задача сводится к загрузке и установке пакета аппаратной поддержки (Board Support Package, BSP) для конкретного устройства. BSP — это программное обеспечение, позволяющее ОС выполняться на конкретной плате с процессором. Возможности целевого устройства становятся доступными в ОС, если они описаны в коде, входящем в состав BSP [8]. Обычно BSP поставляет производитель конкретного устройства. В нашем случае практически все периферийные модули eBOX-3300 содержатся в системе на кристалле, СнК (System-On-Chip, SoC) Vortex86DX [7]. Производитель Vortex86DX — компания DM&P x86 Semiconductor — предоставляет возможность бесплатно скачать BSP с сайта технической поддержки [9]. Рекомендуется использовать самую последнюю версию (на момент написания статьи: Vortex86DX Windows Embedded CE 6.0 (R2/R3) BSP Version B (2009-10-28)).
После установки всех компонентов рекомендуется сделать дефрагментацию диска, куда производилась установка. Это никоим образом не скажется на функциональности, но существенно ускорит время компиляции образа Windows CE. Это далеко не второстепенный вопрос, так как время компиляции в зависимости от производительности станции разработки и «насыщенности» образа ОС составляет от 20 до 40 минут.
Компиляция образа Windows Embedded CE 6.0
Итак, когда все необходимое ПО установлено, можно приступать к созданию образа операционной системы. Как было сказано
выше, OC Windows CE является многокомпонентной системой. Наличие/отсутствие того или иного компонента сказывается на функциональности конечного продукта, стоимости лицензии и времени загрузки целевого устройства.
Рассмотрим создание образа с минимально необходимой функциональностью для устройства без монитора, работающего в качестве промышленного компьютера. Компьютер будет обрабатывать информацию от промышленного датчика с интерфейсом Ethernet и управлять контроллером через интерфейс RS-232C.
Запустив среду разработки Visual Studio 2005, следует выбрать пункт меню File -> New -> Project, далее тип проекта — образ ОС Windows CE 6.0, как показано на рис. 2. Вводим название проекта, в нашем случае пусть это будет еВОХЗЗОО. Вводим путь к папке образа, в нашем случае образ ОС, и сопутствующие файлы будут располагаться в D:\WINCE600\eBOX3300 (рис. 2).
Далее среда разработки предложит выбрать BSP из списка установленных. Необходимо выбрать Vortex86DX_60B, как показано на рис. 3.
I L. ilk i-j ■; /j*i
Г 1
1 Л*т,А Ui+4*' i
: T*r * * BP ewt шгл иг Mw**»
rr fa CTPlprtwS
Wr Г.- "3 i-cwr! r? -r it*** U w*
■
НГт-сш |Г • I ■ I tiW I
Рис. 3. Создание образа Windows CE 6.0. Выбор BSP
Разработчики Microsoft создали несколько шаблонов, чтобы облегчить выбор компонентов Windows CE 6.0 для определенных применений. Можно выбрать шаблон для мобильного телефона, наладонного компьютера и др. Для создания минимального образа необходимо выбрать Custom Device (рис. 4).
Рис. 4. Создание образа Windows СЕ 6.0. Выбор шаблона образа
Далее «мастер» предложит выбрать необходимые компоненты ОС, причем все компоненты будут по умолчанию отключены (рис. 5).
Рис. 6. Выбор компонентов образа через окно Catalog Items View
После чего можно нажать Finish, работа «мастера» будет завершена, и перейти к выбору необходимых компонентов непосредственно из Visual Studio. Просмотр/изменение компонентов образа производится через окно Catalog Items View (рис. 6). Если окно Catalog Items View отсутствует на экране, вывести его можно, выбрав пункт меню View -> Other Windows -> Catalog Items View.
Теперь нужно задать объем памяти, в нашем случае необходимо добавить компонент Third Party -> BSP -> Vortex86DX_60B -> RAM Size -> 256MB RAM. Далее следует добавить в образ поддержку сети Ethernet, для этого необходимо добавить следующие компоненты:
1. Third Party -> BSP -> Vortex86DX_60B -> R6040Ethernet Driver.
2. Core OS -> CEBASE -> Networking -> Local Area Network (LAN) -> Wired Local Area Network (802.3,802.5).
3. Core OS -> CEBASE -> Networking -General -> Windows Networking API/ Redirector (SMB/CIFS).
Рис. 7. Расположение файла реестра проекта
4. Core OS -> CEBASE -> Communication Services and Networking -> Servers -> FTP server.
5. Core OS -> CEBASE -> Communication Services and Networking -> Servers -> Telnet server.
Как и настольные версии Windows ОС, Windows CE хранит информацию о настройках в реестре. Для того чтобы задать сетевой IP-адрес eBOX в сети и активировать FTP и Telnet-серверы, необходимо сделать соответствующие настройки в файле реестра проекта project.reg. Открыть файл project.reg можно в окне Solution Explorer (рис. 7). Если окно Solution Explorer отсутствует на экране, вывести его можно, выбрав пункт меню View -> Solution Explorer.
Необходимо добавить в конец файла project.reg следующие строки:
; Static IP address settings
[HKEY_LOCAL_MACHINE\Comm\PCI\R60401\Parms\TcpIp]
"EnableDHCP"=dword:0
"DefaultGateway"=multi_sz:"192.168.0.1"
"UseZeroBroadcast"=dword:0
"IpAddress"=multi_sz:"192.168.0.232"
"Subnetmask"=multi_sz:"255.255.255.0"
; Telnet server enable
[HKEY_LOCAL_MACHINE\COMM\TELNETD] "IsEnabled"=dword:1 "UseAuthentication"=dword:0 ; FTP server endable
[HKEY_LOCAL_MACHINE\COMM\FTPD]
"IsEnabled"=dword:1
"UseAuthentication"=dword:0
"UserList"="@*;"
"AllowAnonymous"=dword:1
"AllowAnonymousUpload"=dword:1
"AllowAnonymousVroots"=dword:1
"DefaultDir"="\\"
Рис. 8. Задание типа сборки образа
Рис. 9. Задание опций сборки
Это приведет к установке сетевого адреса eBOX "192.168.0.232", маски подсети "255.255.255.0" и активизирует FTP и Telnet-серверы без аутентификации (то есть без проверки имени пользователя и пароля). Если есть необходимость подключить eBOX к Ethernet-сети с другой маской или такой IP-адрес уже используется, то IP-настройки следует соответствующим образом поменять.
Далее необходимо выполнить настройки компилируемого образа. Для этого выбрать пункт меню Project-> eBOX3300Properties... Затем пункт Configuration Properties -> General, нажать Configuration Manager и выбрать тип сборки Release (рис. 8). Это задаст тип сборки без отладочной информации.
После чего выбрать пункт Configuration Properties -> Build Options и снять выделение со всех пунктов (рис. 9).
Такие настройки позволят образу Windows CE выполняться непосредственно с диска на модуле (Disk on Module, DOM) или Compact Flash (CF) карты памяти, вставляемой в eBOX-3300.
Теперь, когда необходимые компоненты включены в образ и настройки образа сделаны, можно приступать к компиляции (сборке) образа Windows CE 6.0. Для ускорения процесса
шнн (ня 'in mi
mt f . *тГ,. . !>•• щ hin
Will* li 1fl <
■HP* .тезеаые б-i»
Рис. 10. Успешное завершение сборки
сборки рекомендуется отключить на станции разработки антивирусную защиту файловой системы. Чтобы начать сборку, необходимо выбрать пункт меню Build -> Build Solution.
Процесс сборки достаточно продолжительный. По его завершении в окне Output должно быть сообщение о том, что ошибок не обнаружено (рис. 10).
Можно убедиться, что файл образа NK.bin получен. Для этого необходимо просмотреть содержимое папки D:\WINCE600\eBOX3300\ eBOX3300\RelDir\Vortex86DX_60B_x86_ Release\.
Следующая задача — загрузка файла образа NK.bin в целевое устройство, то есть
в компьютер eBOX-3300. Загрузка будет производиться посредством стандартного загрузчика, работающего в среде MS-DOS, который называется LoadCEPC.exe. То есть сначала загружается MS-DOS, затем запускается загрузчик и только после этого стартует Windows CE.
Файл образа NK.bin будет располагаться на карте памяти Compact Flash. В случае использования DOM или жесткого диска ничего не меняется, так как и DOM, и жесткий диск, и карта памяти Compact Flash подключаются по одному и тому же параллельному интерфейсу подключения накопителей ATA [1О].
Загрузочный диск MS-DOS 6.22 с загрузчиком LoadCEPC.exe можно найти в папке установки Platform Builder в виде образа дискеты (если установка была произведена на диск «C:», то: C:\WINCE6OO\PLATFORM\ CEPC\SRC\BOOTLOADER\DOS\BOOTDISK\ DISKIMAGE\cepcboot.144). Для того чтобы скопировать загрузочный диск MS-DOS на карту памяти, удобно воспользоваться устройством для чтения карт памяти (Card Reader), поддерживающим тип карт Compact Flash, и утилитой, предназначенной для создания загрузочных flash-дисков. Автор использовал утилиту FlashBoot [11].
Рис. 13. Выбор диска, куда будет записана копия Рис. 14. Окончательные настройки в программе FlashBoot
Рис. 15. Содержимое карты памяти после переноса MS-DOS 6.22 из образа дискеты cepcboot.144
После запуска FlashBoot предложит выбрать тип загрузочного диска, копию которого мы хотим получить (рис. 11). Необходимо выбрать DOS-based floppy disk.
Далее FlashBoot предложит выбрать оригинал загрузочного диска (источник), в нашем случае это будет образ cepcboot.144 (рис. 12).
Затем будет предложено выбрать диск, на который будет записана копия загрузочного диска (приемник). Необходимо убедиться, что выбранный диск соответствует карте памяти (рис. 13).
Теперь необходимо сделать настройки, как показано на рис. 14. Это обеспечит форматирование диска перед записью копии.
Когда FlashBoot закончит работу, можно просмотреть содержимое карты памяти (диск H в нашем случае) и убедиться в присутствии на нем файлов MS-DOS (рис. 15).
Далее следует заменить содержимое файла config.sys на следующее:
Device=himem.sys /testmem:off dos=high
А содержимое файла autoexec.bat должно принять вид:
@echo off loadcepc.exe nk.bin
После чего следует скопировать файл образа Windows CE NK.bin на карту памяти.
Этап подготовки загрузочного диска Windows CE 6.0 закончен: мы имеем накопитель, на который записаны все файлы, необходимые для запуска Windows CE на компьютере eBOX-ЗЗОО. Удостоверимся, что Windows CE загружается и работает. Для этого необходимо вставить карту памяти Compact Flash в соответствующее гнездо на лицевой панели eBOX-ЗЗОО, подключить eBOX-ЗЗОО к свободному порту станции разработки с помощью перекрестного сетевого кабеля (Crossover) и подключить питание eBOX-ЗЗОО. Настройки TCP/IP-соединения на станции разработки в нашем случае должны быть такими, как показано на рис. 16.
Подключимся к eBOX-3300, используя протокол Telnet. Для этого в командной строке интерпретатора команд Windows XP (на станции разработки) необходимо ввести следующую команду:
telnet 192.168.0.232
рис. 16. Пример настройки TCP/IP на станции разработки
Здесь 192.168.0.232 — 1Р-адрес компьютера еВОХ-ЗЗОО в сети.
После чего между станцией разработки и еВОХ-ЗЗОО установится соединение
рис. 17. Работа с командным процессором Windows CE через протокол Telnet
ІрАї Евы*тиння і* Sru Одашм* £кию Qmom Лр^этнснэмАмедо1
. - "U- її . '3 і. r/\ V Л
1 0251 jjn тъшитнги ЕЬдодо | f Ьькгр» dw-і+йгііі: I и
СИшгп ЕВ Сяшіпй C#*V. Wtt¥ Hit іїї LIST ЇИшгг; Яф Ckwr; dal i itrmim С«ЧЯЇ к*тиі<гч* ківпин^и Л zl
rttriltiiaittiii, 'f УАптнийг: | f ■J
із 3 jtl W. W- ** С <&*«***! а- І 9: ЛІ ЗБ ul
■ [ Pmwvp | Тип фаГм 1 Ясигад* 1'ля«рр | Fin tfcwm fbiMpw.niH.. 1
SX< A-K3.S |£нсг»і«і іїі ГЬг.ам*і щк *■*[>_ [Peto-wJ ІЬсіМч JlftCK ^F. С\шгт\m*j\ Сичали CkB#v>^Kr: « аац-! .г1 tJ.- jWrrfcwi OHfDgtiJHKtc i3Ow/Mrt і wf £«№> П*к*чф*... П*геісф*.. Пчпчч4«- Пщф,. Птшсфь.. Ц .CfcEUO (-I... H.№3310 6:2... томное*- DL.Dl J 5*M ^.D... ЗЧ-№КЇ0ЄЇ-Н.0ЬКІ0в:2..
-f г l\
1 Наши».» 1 tu свдкде 1 rX«L£h.. | Скгндое і
| ЦПншцдннд J Н*ДОеа«МґЧри#м ! пвдНчв
і ИН їи««« nj-m H *
рис. 18. Доступ к хранилищу Windows CE с помощью протокола ftp
и на экране появится приглашение командного процессора Windows CE (рис. 17).
Также можно проверить работу FTP-сервера. Это можно сделать, используя любой ftp-клиент. Автор использовал бесплатный ftp-клиент FileZilla [12]. Имя пользователя необходимо задать anonymous, пароль — любой (рис. 18).
Таким образом, была произведена сборка образа Windows CE для компьютера eBOX-ЗЗОО с минимально необходимой функциональностью, установка и запуск Windows CE непосредственно на eBOX-ЗЗОО. Существует также возможность скачать готовый оценочный образ Windows CE с сайта технической поддержки Vortex86DX [1З]. В архиве (VDX_CE6_10020503.zip в нашем случае) находится файл образа NK.bin, который необходимо просто скопировать на карту памяти CF.
Теперь, подключив к eBOX-ЗЗОО монитор, клавиатуру, мышь и перезагрузив его, мы увидим на мониторе привычный вид графической оболочки Windows CE (рис. 19).
На этом установка ОС реального времени Windows Embedded CE 6.0 на встраиваемый компьютер eBOX-ЗЗОО завершена. В следующих статьях мы планируем описать процесс создания приложения под Windows CE,
Рис. 19. Внешний вид графической оболочки Windows CE
рассказать, как заставить загружаться приложение сразу после загрузки Windows CE (автозагрузка), и привести особенности работы с COM-портами и использования библиотеки Windows Sockets 2 в среде Windows CE.
В заключение хотелось бы выразить благодарность Станиславу Павлову и Павлу Белевскому, техническому директору и системному инженеру по встраиваемым решениям компании «Кварта Технологии», за неоценимую помощь в освоении Windows CE. Ш
Литература
1. http://ru.wikipedia.org/wiki/Windows_CE
2. http://www.microsoft.com/windowsembedded/ en-us/products/windowsce/default.mspx
3. http://quarta.ru/embedded/products/Windows_ Embedded_CE_6.0/buy/
4. http://www.msembedded.ru/forum/PrintPost. aspx? PostID=10224
5. http://systemnews.com.ru/? mod=art&part= unix&id=013
6. http://www.microsoft.com/windowsembedded/ en-us/products/windowsce/getting-started.mspx
7. Компьютер eBox-ЗЗОО — бюджетное решение для встраиваемых систем // Компоненты и технологии. 2010. № З.
8. http://channel9.msdn.com/wiki/CEDeveloper/ BSP/
9. http://www.dmp.com.tw/tech/vortex86dx/
10. http://ru.wikipedia.org/wiki/ATA
11. http://flashboot.ru/Files-file-4.html
12. http://filezilla.ru/
13. ftp://[email protected]/vortex86dx/ wince/VDX_CE6_10020502.zip
14. Белевский П. В. Windows Embedded CE б.О R2. Практическое руководство. М.: ДМК Пресс, 2ОО9.
15. http://www.msembedded.ru/forum/ ShowForum.aspx? ForumID=34