Компьютер eBox-3300 — установка Windows Embedded CE 6.0

№ 10’2010
PDF версия
В первой части статьи был представлен встраиваемый компьютер eBox-3300 как недорогая основа аппаратной части встраиваемой системы. В этой статье рассмотрена операционная система жесткого реального времени Windows Embedded CE 6.0, указаны ее характеристики и стоимость. Описан процесс установки Windows Embedded CE 6.0 на компьютер eBox-3300. А также показано, как установить необходимое программное обеспечение на станцию разработки, произведена сборка образа операционной системы, описан процесс загрузки образа в целевой компьютер. Освещены вопросы компоновки образа под задачу создания промышленного устройства, работающего без монитора.

Обзор операционной системы Windows Embedded CE 6.0

Спроектированная специально для разработчиков встраиваемых продуктов, Windows Embedded CE 6.0 представляет собой 32-битную, компонентную, многозадачную, многопоточную, многоплатформенную операционную систему (ОС) для компактных устройств [1]. Она прошла все независимые тесты на принадлежность к операционным системам жесткого реального времени. Windows Embedded CE поддерживает 4 типа архитектур процессоров: x86, ARM, MIPS32, SH4 (до версии CE 6.0 R2). В дальнейшем мы будем использовать сокращенное название Windows CE.

ОС общего назначения, обычно используемые на настольных компьютерах, не обеспечивают необходимой в реальном времени реакции ответа, требуют больших затрат аппаратных ресурсов, соответственно, устройства с такой ОС потребляют значительную мощность. Windows CE не является просто модифицированной версией настольных операционных систем Windows, это совершенно другая ОС, имеющая свою историю развития. Первая версия Windows CE появилась в середине 1990-х как ОС реального времени для встраиваемых устройств с меньшими объемом памяти и мощностью процессора, чем у настольного компьютера. Ядро Windows CE может работать всего на 32 кбайт памяти. С графическим интерфейсом для работы Windows CE понадобится не менее 5 Мбайт.

Система Windows Embedded CE 6.0 может выполнять одновременно более 32 000 процессов, каждый с 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 колеблется от 300 до 6 тысяч долларов за одно рабочее место, в зависимости от комплектации системы, количества приобретаемых лицензий и других факторов [5]. Лицензия же ОС VxWorks обойдется приблизительно в $7500 в год. На этом фоне цена за Windows CE не кажется завышенной.

Однако есть возможность начать разработку, не покупая никаких лицензий. Компания Microsoft предоставляет возможность бесплатно скачать полнофункциональную Trial-версию среды разработки. Но как среда разработки, так и собранные образы Windows CE будут работать только 180 дней [4].

Установка программного обеспечения на станцию разработки

Итак, перейдем от теории к практике. Для сборки нашего собственного образа Windows CE нам потребуется станция разработки с конфигурацией не хуже следующей:

  1. Компьютер с процессором 933 МГц и более; 2 ГГц рекомендуется.
  2. Операционная система Microsoft Windows 2000 Professional SP4, или Microsoft Windows XP Professional SP2, или Windows Vista (английская версия рекомендуется).
  3. ОЗУ — 512 Мбайт, 1 Гбайт рекомендуется.
  4. 18 Гбайт свободного места на диске, куда будет установлена среда разработки.
  5. 1 Гбайт свободного места на системном диске.
  6. Наличие привода DVD-ROM и монитора с разрешением не менее 1024×768.

Полезным окажется наличие свободных Ethernet-разъема и COM-порта для отладки.

Далее необходимо установить среду разработки. Средой разработки Windows CE является Platform Builder — утилита-дополнение к среде Visual Studio 2005. Кроме того, потребуется набор дополнений (Service Pack). Загрузить Trial-версии этих продуктов и дополнения к ним можно по адресу [6]. Порядок установки следующий:

  1. Visual Studio 2005.
  2. Windows Embedded CE 6.0 (это и есть Platform Builder).
  3. Microsoft Visual Studio 2005 Team Suite Service Pack 1.
  4. Visual Studio 2005 Service Pack 1 Update for Windows Vista (если на станции разработки установлена ОС Windows Vista).
  5. Windows Embedded CE 6.0 Platform Builder Service Pack 1.
  6. Windows Embedded CE 6.0 R2.
  7. Windows Embedded CE 6.0 R3.
  8. Windows Embedded CE 6.0 Cumulative Product Update Rollup Package (through 12/31/2009).
  9. Windows Embedded CE 6.0 Monthly Update May 2010.

Так как Embedded CE является мульти-платформенной ОС, то чтобы адаптировать Windows CE под целевое устройство, необходимо решить две задачи:

  1. На этапе установки Platform Builder: определиться с типом процессора целевого устройства.
  2. После установки: обеспечить взаимодействие ОС с периферией целевого устройства (все внешние по отношению к процессору устройства — память, COM-порты, контроллеры дисков и т. д.).

Первая задача решается на этапе установки Platform Builder. Будет предложено выбрать те аппаратные платформы, на которые планируется установка Windows CE (рис. 1). Что касается дополнений (Update), то здесь выбор осуществляется в процессе их загрузки с сайта компании Microsoft. Загружать следует только дополнения, соответствующие выбранной аппаратной платформе (ам). В случае использования компьютера eB0X-3300 необходимо выбрать платформу x86 (рис. 1). Поддержку остальных платформ в целях экономии пространства на диске устанавливать не будем.

Выбор аппаратной платформы при установке Platform Builder

Рис. 1. Выбор аппаратной платформы при установке Platform Builder

Вторая задача сводится к загрузке и установке пакета аппаратной поддержки (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:WINCE600eBOX3300 (рис. 2).

Создание образа Windows CE 6.0. Название проекта

Рис. 2. Создание образа Windows CE 6.0. Название проекта

Далее среда разработки предложит выбрать BSP из списка установленных. Необходимо выбрать Vortex86DX_60B, как показано на рис. 3.

Создание образа Windows CE 6.0. Выбор BSP

Рис. 3. Создание образа Windows CE 6.0. Выбор BSP

Разработчики Microsoft создали несколько шаблонов, чтобы облегчить выбор компонентов Windows CE 6.0 для определенных применений. Можно выбрать шаблон для мобильного телефона, наладонного компьютера и др. Для создания минимального образа необходимо выбрать Custom Device (рис. 4).

Создание образа Windows CE 6.0. Выбор шаблона образа

Рис. 4. Создание образа Windows CE 6.0. Выбор шаблона образа

Рис. 6. Выбор компонентов образа через окно Catalog Items View

Рис. 4. Создание образа Windows CE 6.0. Выбор шаблона образа

Далее «мастер» предложит выбрать необходимые компоненты ОС, причем все компоненты будут по умолчанию отключены (рис. 5).

 

Создание образа Windows CE 6.0. Выбор компонентов образа

Рис. 5. Создание образа Windows CE 6.0.
Выбор компонентов образа

 

После чего можно нажать Finish, работа «мастера» будет завершена, и перейти к выбору необходимых компонентов непосредственно из Visual Studio. Просмотр/изменение компонентов образа производится через окно Catalog Items View (рис. 6). Если окно Catalog Items View отсутствует на экране, вывести его можно, выбрав пункт меню View -> Other Windows -> Catalog Items View.

Выбор компонентов образа через окно Catalog Items View

Рис. 6. Выбор компонентов образа через окно 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).
  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.

Расположение файла реестра проекта

Рис. 7. Расположение файла реестра проекта

Необходимо добавить в конец файла project.reg следующие строки:

; Static IP address settings

[HKEY_L0CAL_MACHINECommPaR60401ParmsTcpIp]

«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_MACHINECOMMTELNETD] «IsEnabled»=dword:1 «UseAuthentication»=dword:0 ; FTP server endable

[HKEY_LOCAL_MACHINECOMMFTPD]

«IsEnabled»=dword:1

«UseAuthentication»=dword:0

«UserList»=»@*;»

«AllowAnonymous»=dword:1

«AllowAnonymousUpload»=dword:1

«AllowAnonymousVroots»=dword:1

«DefaultDir»=»»

Это приведет к установке сетевого адреса eBOX «192.168.0.232», маски подсети «255.255.255.0» и активизирует FTP и Telnet-серверы без аутентификации (то есть без проверки имени пользователя и пароля). Если есть необходимость подключить eBOX к Ethernet-сети с другой маской или такой IP-адрес уже используется, то IP-настройки следует соответствующим образом поменять.

Далее необходимо выполнить настройки компилируемого образа. Для этого выбрать пункт меню Project-> eB0X3300Properties… Затем пункт Configuration Properties -> General, нажать Configuration Manager и выбрать тип сборки Release (рис. 8). Это задаст тип сборки без отладочной информации.

Задание типа сборки образа

Рис. 8. Задание типа сборки образа

После чего выбрать пункт Configuration Properties -> Build Options и снять выделение со всех пунктов (рис. 9).

Задание опций сборки

Рис. 9. Задание опций сборки

Такие настройки позволят образу Windows CE выполняться непосредственно с диска на модуле (Disk on Module, DOM) или Compact Flash (CF) карты памяти, вставляемой в eBOX-3300.

Теперь, когда необходимые компоненты включены в образ и настройки образа сделаны, можно приступать к компиляции (сборке) образа Windows CE 6.0. Для ускорения процесса сборки рекомендуется отключить на станции разработки антивирусную защиту файловой системы. Чтобы начать сборку, необходимо выбрать пункт меню Build -> Build Solution.

Процесс сборки достаточно продолжительный. По его завершении в окне Output должно быть сообщение о том, что ошибок не обнаружено (рис. 10).

Успешное завершение сборки

Рис. 10. Успешное завершение сборки

Можно убедиться, что файл образа NK.bin получен. Для этого необходимо просмотреть содержимое папки D:WINCE600eBOX3300 eBOX3300RelDirVortex86DX_60B_x86_ Release.

Следующая задача — загрузка файла образа NK.bin в целевое устройство, то есть в компьютер eBOX-3300. Загрузка будет производиться посредством стандартного загрузчика, работающего в среде MS-DOS, который называется LoadCEPC.exe. То есть сначала загружается MS-DOS, затем запускается загрузчик и только после этого стартует Windows CE.

Файл образа NK.bin будет располагаться на карте памяти Compact Flash. В случае использования DOM или жесткого диска ничего не меняется, так как и DOM, и жесткий диск, и карта памяти Compact Flash подключаются по одному и тому же параллельному интерфейсу подключения накопителей ATA [10].

Загрузочный диск MS-DOS 6.22 с загрузчиком LoadCEPC.exe можно найти в папке установки Platform Builder в виде образа дискеты (если установка была произведена на диск «C:», то: C:WINCE600PLATF0RMCEPCSRCBOOTLOADERDOSBOOTDISK DISKIMAGEcepcboot.144). Для того чтобы скопировать загрузочный диск MS-DOS на карту памяти, удобно воспользоваться устройством для чтения карт памяти (Card Reader), поддерживающим тип карт Compact Flash, и утилитой, предназначенной для создания загрузочных flash-дисков. Автор использовал утилиту FlashBoot [11].

После запуска FlashBoot предложит выбрать тип загрузочного диска, копию которого мы хотим получить (рис. 11). Необходимо выбрать DOS-based floppy disk.

Выбор типа загрузочного диска

Рис. 11. Выбор типа загрузочного диска

Далее FlashBoot предложит выбрать оригинал загрузочного диска (источник), в нашем случае это будет образ cepcboot.144 (рис. 12).

Выбор оригинала загрузочного диска

Рис. 12. Выбор оригинала загрузочного диска

Затем будет предложено выбрать диск, на который будет записана копия загрузочного диска (приемник). Необходимо убедиться, что выбранный диск соответствует карте памяти (рис. 13).

Выбор диска, куда будет записана копия

Рис. 13. Выбор диска, куда будет записана копия

Теперь необходимо сделать настройки, как показано на рис. 14. Это обеспечит форматирование диска перед записью копии.

Окончательные настройки в программе FlashBoot

Рис. 14. Окончательные настройки в программе FlashBoot

Когда FlashBoot закончит работу, можно просмотреть содержимое карты памяти (диск H в нашем случае) и убедиться в присутствии на нем файлов MS-DOS (рис. 15).

Содержимое карты памяти после переноса MS-DOS 6.22 из образа дискеты cepcboot.144

Рис. 15. Содержимое карты памяти после переноса MS-DOS 6.22 из образа дискеты cepcboot.144

Далее следует заменить содержимое файла 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 на компьютере eB0X-3300. Удостоверимся, что Windows CE загружается и работает. Для этого необходимо вставить карту памяти Compact Flash в соответствующее гнездо на лицевой панели eB0X-3300, подключить eBOX-3300 к свободному порту станции разработки с помощью перекрестного сетевого кабеля (Crossover) и подключить питание eB0X-3300. Настройки TCP/IP-соединения на станции разработки в нашем случае должны быть такими, как показано на рис. 16.

Пример настройки TCP/IP на станции разработки

Рис. 16. Пример настройки TCP/IP
на станции разработки

Подключимся к eBOX-3300, используя протокол Telnet. Для этого в командной строке интерпретатора команд Windows XP (на станции разработки) необходимо ввести следующую команду:

telnet 192.168.0.232

Здесь 192.168.0.232 — IP-адрес компьютера eBOX-3300 в сети.

После чего между станцией разработки и eBOX-3300 установится соединение и на экране появится приглашение командного процессора Windows CE (рис. 17).

Работа с командным процессором Windows CE через протокол Telnet

Рис. 17. Работа с командным процессором Windows CE через протокол Telnet

Также можно проверить работу FTP-сер-вера. Это можно сделать, используя любой ftp-клиент. Автор использовал бесплатный ftp-клиент FileZilla [12]. Имя пользователя необходимо задать anonymous, пароль — любой (рис. 18).

Доступ к хранилищу Windows CE с помощью протокола ftp

Рис. 18. Доступ к хранилищу Windows CE с помощью протокола ftp

Таким образом, была произведена сборка образа Windows CE для компьютера eBOX-3300 с минимально необходимой функциональностью, установка и запуск Windows CE непосредственно на eBOX-3300. Существует также возможность скачать готовый оценочный образ Windows CE с сайта технической поддержки Vortex86DX [13]. В архиве (VDX_CE6_10020503.zip в нашем случае) находится файл образа NK.bin, который необходимо просто скопировать на карту памяти CF.

Теперь, подключив к eBOX-3300 монитор, клавиатуру, мышь и перезагрузив его, мы увидим на мониторе привычный вид графической оболочки Windows CE (рис. 19).

Внешний вид графической оболочки Windows CE

Рис. 19. Внешний вид графической оболочки
Windows CE

На этом установка ОС реального времени Windows Embedded CE 6.0 на встраиваемый компьютер eBOX-3300 завершена. В следующих статьях мы планируем описать процесс создания приложения под 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-3300 — бюджетное решение для встраиваемых систем // Компоненты и технологии. 2010. № 3.
  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://download@ftp.dmp.com.tw/vortex86dx/ wince/VDX_CE6_10020502.zip
  14. Белевский П. В. Windows Embedded CE 6.0 R2. Практическое руководство. М.: ДМК Пресс, 2009.
  15. http://www.msembedded.ru/forum/ ShowForum.aspx? ForumID=34

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *