Будем работать с WinCE 6.0 R3 (самая свежая сборка встраиваемой винды на сегодня), прикладное ПО для системы можно писать на С++ использую морально устаревшую embedded Visual Studio, которая на ОС выше ХР иногда ведет себя очень странно, я же выбрал вариант со связкой C# + .NET Compact Framework (версии 2.0 или выше, 1.0 и 1.1 слишком стары и убоги), поскольку это позволяет создавать приложения достаточно быстро и удобно. Но для начала надо собрать образ винды и залить его в мини.
Для этого нам потребуется:1) Visual Studio 2005 Professional с установленными SP1, SP1 Update for Vista (если работаем в Висте/7-ке), SP1 ATL Security Update. Студенты, школьники и аспиранты студию могут получить легально и бесплатно по программе dreamspark.com, остальным гугл в помощь.
2) Windows Embedded CE 6.0 Platform Builder
Windows Embedded CE 6.0 Platform Builder SP1
Windows Embedded CE 6.0 RE2 Platform Builder
Windows Embedded CE 6.0 RE3 Platform Builder
Это добро можно найти на рутрекере ввиде отдельных образов, либо получить через dreamspark в виде одного образа(легально и бесплатно)
3) с сайта friendlyarm.net необходимо скачать свежие WinCE 6.0 BSP и SDK.
Порядок установки всего этого добра: - Microsoft® Visual Studio 2005
- Microsoft Visual Studio 2005 Service Pack 1 (VS80sp1-KB926601-X86-ENU.exe)
- Microsoft Visual Studio 2005 Service Pack 1 Update for Windows Vista® (VS80sp1-KB932232-X86-ENU.exe)
- Windows Embedded CE 6.0
- Windows Embedded CE 6.0 Platform Builder Service Pack 1
- Windows Embedded CE 6.0 R2
- Windows Embedded CE 6.0 R3
- Mini2440-CE6-Suite-1022.exe (берется из архива wince6-bsp_20100609.zip с friendlyarm.net)
При установке все директории для установки оставляем без изменений, чтобы потом геморроя не было с путями. Также в висте/7-ке на всякий случай лучше все установшики запускать от имени администратора. Все файлы системы находятся в папке c:\WINCE600\PLATFORM\Mini2440\. Можно там полазить, посмотреть исходники драйверов и т.д.
Когда все установилось, попробуем собрать образ системы. Запускаем студию, причем ОБЯЗАТЕЛЬНО от имени администратора, иначе будут косяки при сборке образа! Запустили. Жмем File-Open-Project/Solution... и находим файл c:\WINCE600\OSDesigns\Mini2440\Mini2440.sln и открываем его. На скриншоте показано окно студии с открытым проектом.
В закладке Catalog Item View можно выставляя или убирая галочки по всякому менять параметры будущего образа (вырезать ненужный софт - игры к примеру, добавить или убрать дрова, уточнить включенную в образ версию .NET Compact Framework (на выбор 2.0 или 3.5)). Для сборки образа выбираем Build-Advanced Build Commands-Clean Sysgen и ждем некоторое время, иногда может показаться что построение образа зависло, но это не так, надо ждать. Когда в окне Output студии появится что-то типа:
Цитата:
Mini2440 build complete
Mini2440 - 0 error(s), 64 warning(s)
===========Build: 1 succeded or up-to-date, 0 failed, 0 skipped============
значит все готово к заливке в мини 2440. Идем в папку c:\WINCE600\OSDesigns\Mini2440\Mini2440\RelDir\Mini2440_ARMV4I_Release\ и ищем там файл NK.bin - это и есть образ системы. Теперь будем его заливать. Предполагается, что у нас уже поставлен драйвер USB из комплекта поставки, есть необходимые шнурки и прошит загрузчик последней версии в мини.
1) Запускаем DNW.exe
2) Configuration-Options. Выставляем номер своего COM-порта, скорость 115200, Download address 0x30000000. Жмем ОК.
3) Подсоединяем к мини USB шнурок, COM-портовый шнурок и шнурок питания(ПИТАНИЕ НЕ ВКЛЮЧАЕМ!), переключатель S2 переводим в положение NOR.
4) В DNW Serial Port-Connect. Теперь включаем питание мини с помощью переключателя S1.
В окне DNW появится нечто подобное:
5) Жмем f для форматирования NAND памяти
6) Жмем v для заливки свежего supervivi. Предварительно надо скачать с friendlyarm.net свежую версию под свой объем NAND памяти.
Как определить объем NAND:
На плате ищем модуль памяти Samsung, смотрим маркировку:
K9F1208 > 64 MB NAND Flash
K9F1G08 > 128 MB NAND Flash
K9F2G08 > 256 MB NAND Flash
K9F8G08 > 1024 MB NAND Flash
7) Выбираем USB Port - Transmit, указываем путь к файлу supervivi-XXX (XXX = размер NAND), ждем окончания загрузки.
Теперь грузим nboot. Жмем n, USB Port - Transmit, выбираем версию nboot согласно используемому экрану nboot_A70.bin, nboot_T35.bin или nboot_N35.bin, если брали плату с 3,5 дюймовым экраном, то подойдет nboot_T35.bin. Ждем окончания загрузки.
9) Грузим бутлого. Жмем l, USB Port - Transmit, выбираем файл bootlogo.bmp.
10 Грузим образ системы. Жмем w, USB Port - Transmit, выбираем недавно созданный NK.bin. По завершению загрузки образа мини загрузится сама. Теперь можно ее выключить, вернуть переключатель в положение NAND и работать с системой. По умолчанию в системе есть драйвера для работы с переферией (GPIO, ADC), но они предполагают написание кода на С++. Мне же было интересно создавать приложения используя преимущества C# + .NET Compact Framework. Один хороший человек Domodom
http://www.domodom.fr/spip/index.php?lang=en написал драйвер для работы с GPIO средствами C# + .NET Compact Framework (
http://www.domodom.fr/spip/A-GPIO-driver-for-mini2440.html). Скачиваем драйвер с его сайта и приступаем к интеграции в образ системы.
Скачиваем архив,
1) папку gpio кладем в \WINCE600\PLATFORM\Mini2440\SRC\DRIVERS
2) файл gpio.h в папку C:\WINCE600\PLATFORM\Mini2440\SRC\INC
3) в файл \WINCE600\PLATFORM\Mini2440\SRC\DRIVERS\dirs дописываем строку gpio
4) в файл \WINCE600\PLATFORM\Mini2440\FILES\platform.bib дописываем строку
Цитата:
gpio.dll $(_FLATRELEASEDIR)\gpio.dll NK SHK
5) в файл \WINCE600\PLATFORM\Mini2440\FILES\platform.reg добавляем
Цитата:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPI]
"Prefix"="GPI"
"Dll"="GPIO.DLL"
"Order"=dword:100
"Index"=dword:0
"FriendlyName"="Domodom GPIO Driver"
Собираем образ как описано выше. Все, драйвер интегрирован в систему. Чуть позже расскажу как написать первое приложение чтобы помигать диодами и считывать нажатия кнопок, как написать приложение для работы с COM-портом, как подключить BT USB донгл и повесить его на виртуальный COM-порт.