Создание ядер для Windows CE Embedded

Разворачивание рабочего места для сборки ядра

Данный пункт достаточно громоздок, но прост в понимании. Надо установить все необходимые дистрибутивы, в целом следуя бессмертному тексту документу eBox2300SX_SPARK, а именно:

  1. Visual Studio 2005 (лучше найти на диске)
  2. Visual Studio 2005 SP1
  3. Windows Embedded CE 6.0 (есть  в офисе на диске), с обязательным выбором платформы X86
  4. Windows Embedded CE 6.0 SP1 (есть  в офисе на диске),
  5. Windows Embedded CE 6.0 R2 (есть  в офисе на диске),
  6. Windows Embedded CE 6.0 R3 (есть  в офисе на диске) – опционально,
  7. Если мы собираем ядро для eBox2300, то
    1. Vortex86DX_60A_BSP_090324.msi (а не ICOP_eBox2300SX_60A2, как рекомендуется)
    2. eBox2300SX_WINCE600_SDK.msi
  8. Если мы собираем ядро для eBox3310, то
    1. eBox3310A_WINCE600_SDK.msi
    2. ICOP_eBox3310A_60GS_BSP
  9. VS2005_CoreCon_x86_WINCE600.msi

Бонус-трек:

  1. Дрова для WiFi карты VT6655 Wireless driver – если будем использовать карточку
  2. Полезная хреновина – проект для автозапуска AutoLaunch

Станцию лучше иметь Win XP. Весь процесс установки долгий и займет примерно полдня.

Особенности: если какой-то SDK не будет ставиться, выберете тип установки “Custom…” и устанавливайте без документации.

Создаем проект

Ядро – это проект VS2005. Открываем студию, создаем новый проект типа Platform builder. Место для этих проектов по умолчанию - C:\WINCE600\OSDesigns.

NB: В настоящее время существует 4 живых проекта:

Проект BSP Железо Используется в проекте
eBox_v1.0 Vortex86DX_60A_x86 eBox2300SX КЗСП
eBox_v3.0 ICOP_eBox2300_60B_x86 eBox2300JSK КЗСП
eBox_v1.2 Vortex86DX_60A_x86 eBox2300 МДВ, СТП
eBox_v4.0 ICOP_eBox3310A_60GS_BSP eBox3310 ТБС

Так что новый проект наверное имеет смысл именовать также. Я рассмотрю пример проекта с именем “eBox_XX”

Собираем проект, следуя мастеру

  1. Выберем BSP - Vortex86DX_60A или ICOP_eBox3310A_60GS, в зависимости от железа (см чуть выше)
  2. Выберем тип – Industrial Device,
  3. Выберем подтип – Industrial Controller,ы
  4. Потом начинаем ставить галочки предустановки ряда компонентов:
  5. image
  6. image
  7. Соглашаемся с предупреждением о политике безопасности,  жмем ОК.
  8. Получаем проект операционной системы и достраиваем ее.

Достройка операционной системы

То, что мы отстроили галочками, маловато для нормальной работы системы. Добавим так сказать системе драйва. Первое, что мы сделаем, это пробежимся по галочкам на вкладке Catalog Items View.

Блок “Third Party”. Это блок опций сборки данной BSP. Что мы отмечаем в нашем BPS (он собственно только и может быть выбран):

image

  1. 2nd IDE Device – без этого в системе часто не бывает папки \Hard disk, так как в BIOS карточка Compact Flash  определена как Second IDE Master, а не Primary. Если Primary – то галочку можно на ставить
  2. R6040 Ethernet Driver – поддержка собственной LAN карты
  3. RAM… 128 – поддержка в ядре малой памяти. Мы строим ОС для eBox2300, а там как раз столько памяти
  4. Vortex86sx Comptability mode – поддержка процессора Vortex86SX в рамках BSP для процессора Vortex86DX
  5. Z9s Display Driver – тут тонкая ситуевина. Ставить можно любое расширение, но глубина цвета должна быть только 16 цветов, иначе не будет работать CERHOST – удаленный рабочий стол. Я обычно ставлю 800x600x16x60

Ставим галочки поддержки CoreCone – для деплоймента приложений и для драйвера WiFi  карты:

image

Переходим к галочкам от Microsoft – блок Core OS.

В приложениях конечного пользователя добавим Word для корректировки XML файлов, возможность развертки CAB файлов, ActiveSync.

image

Если пользователи заслужили, можно также добавить им сапера или косынку.

Applications and Service Deployment:

  1. Меняем .NET 2.0 на .NET 3.5
  2. Добавляем SQL Compact

 

image

“Галочка” из черного квадратика означает - “выбрано, потому что выбрано что-то другое”. Например, на OS Dependecies for .NET CF 3.5 она появляется сама, когда выставляется галочка на NET CF 3.5.

В Communication Services докинем поддержку ASP в веб-сервере:

image

В Core OS Services выставляем:

  1. Remote Display Application – это наш CERHOST,
  2. Поддержку USB клавы, мышки и флешки

image

С галочками все. Но не все с проектом. Сделаем еще пару вещей.

Проект автозапуска

Добавим подпроект AutoLaunch, для чего скопируем скачанную папку в C:\WINCE600\OSDesigns\eBox_XX\AutoLaunch, а потом на вкладке Solution Explorer добавим этот подпроект:

image

Кстати, заметьте что там появилось два подпроекта. Это следствие установки галочек “VIA VNWLC6 PCI Wireless LAN” и “VS2005_CoreCon_X86_WINCE600 Files Component”

Этот шаг даст возможность запускать хост CERHOST и разрешение на коннект CoreCone автоматически. Заглянем в AutoLaunch.reg в этом подпроекте:

image

Все очевидно.

Далее, если мы хотим внести изменения в реестр – например, указать статический IP  или сделать автозапуск, редактируем файл project.reg в основном проекте:

image

Что я туда обычно добавляю:

[HKEY_LOCAL_MACHINE\Init]
"Launch70"=\\Hard Disk\\Intelmet\\Autorun\\Intelmet.SteelTracePoint.AutoRun.exe

Это автозапуск “разрульщика” Intelmet.SteelTracePoint.AutoRun, который на основании конфига запускает SteelTracePoint

Добавляю постоянный www root folder:

[HKEY_LOCAL_MACHINE\COMM\HTTPD\VROOTS\/intelmet]
@="\\Hard disk\\Intelmet\\wwwpub"
"a"=dword:0

Настраиваю WiFi карточку на подключение ко всем доступным сетям (подробнее см тут - http://www.msembedded.ru/forum/ShowPost.aspx?PostID=16983)

[HKEY_LOCAL_MACHINE\Drivers\Builtin\Ethman\Popup]
"Popup"=dword:0

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WZCSVC\Parameters\Interfaces\PCI\VNWLC61]
"ControlFlags"=dword:0181c002

Сборка

Уф, мы подготовили проект к сборке. Но, прежде чем жать на Build.. и ждать 40 минут, сделаем еще пару вещей.

Идем в Build – Configuration manager и ставим ему тип Release

image

Идем в свойства проекта:

image

В Build options снимаем все галки

image

Все. Командуем - Build.

image

 

 

 

Ждем 40 минут, наблюдая за аутпутом, и трясем бубном...

========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

Ура, это победа!

Идем в папку C:\WINCE600\OSDesigns\eBox_XX\eBox_XX\RelDir\Vortex86DX_60A_x86_Release и забираем оттуда ядро – файл NK.BIN

powered by metaPost


print

rating
  Комментарии