Тион-про 28. Сборка образа ОС

/ Просмотров: 382

Я снова на связи, продолжаю знакомить вас с одноплатным компьютером тионом, и сегодня мы займёмся сборкой образа операционной системы. Но прежде чем приступить к сборке, разберём ещё один способ прошивки, который я обещал ещё в предыдущей статье. Здесь нам понадобится подключение тиона к локальной сети обычной витой парой, которую надо подключить к одному из ethernet-портов: X11 или X24. Здесь также необходимо, чтобы загрузчик уже присутствовал во внутренней флеш-памяти устройства, поэтому данный способ подходит для вторичной прошивки, то есть прошивки своего образа со включённым в него своим программным обеспечением. Но пока попробуем прошить тот же самый фирменный образ, который мы использовали в прошлый раз.

После подключения платы к локальной сети, включаем её и с помощью консоли COM-порта заходим в меню загрузчика. Там с помощью клавиши "6" измените MAC-адрес устройства на тот, который наклеен на этикетке платы. После этого рекомендую настроить ваш роутер на статическую раздачу IP-адресов, чтобы тион всегда имел один и тот же IP-адрес. Это будет полезно на следующем этапе, когда мы будем отлаживать программы. Если у вас нет DHCP-сервера, можно с помощью клавиши "0" вручную установить IP-адрес устройства и выключить запросы к DHCP-серверу с помощью клавиши "3". После этого необходимо настроить плату на получение образа ОС из локальной сети. Для этого нажимаем клавишу "Е" до тех пор, пока значение параметра "Select Ether Device" не станет равным "ENET".

На стороне рабочего компьютера понадобится tftp-клиент, я использую tftpd32. На Windows 7 его надо запускать в режиме совместимости с Windows XP SP2. Запускаем программу, скармливаем ей наш файл образа ОС NK.bin, устанавливаем имя файла на приёмной стороне "boot.bin", вводим IP-адрес тиона, порт 980, размер блока 512. После этого в консоли COM-порта нажимаем клавишу "D" для начала загрузки образа. Как только появится надпись "Send Bootme to 255.255.255.255", нажимаем кнопку PUT в tftp-клиенте. Начнётся загрузка образа в флеш-память устройства. Теперь нужно лишь следовать указаниям консоли.

Теперь приступим к сборке образа операционной системы. Для этого нам понадобится около 10 ГБ разных программ. Вот список, именно в таком порядке их надо устанавливать.

Visual Studio 2005 Team Suite + SP1
Windows Embedded CE 6.0 + SP1
Windows Embedded CE 6.0 R2
Windows Embedded CE 6.0 R3  
Visual Studio 2008 Professional + SP1
SDK-iMX28 http://www.zao-zeo.ru/dokuwiki/doku.php/wince-dev

Да, не удивляйтесь - надо сразу две визуал студии. На первой будем собирать образ, на второй - писать программы. Дело в том, что мне не удалось подружить Visual Studio 2005 с .NET Compact Framework 3.5. Если у тебя получится, можешь ставить только 2005. Остальные программы представляют собой плагин к VS, позволяющий собирать операционную систему.

Следующим этапом надо получить BSP. Board Support Package - это исходный код операционной системы Windows CE. Чтобы его получить, надо написать письмо производителю info@zao-zeo.ru с соответствующей просьбой. Здесь и начались мои основные проблемы. У них произошла какая-то путаница, и они выслали неполные исходники, и мне пришлось многократно писать им о недостающих файлах и других ошибках сборки.

Что делать с BSP? Распаковываем архив. В нём должно быть 4 папки. Папку files копируем в корень диска C:. Папки OSDesigns, Platform и SUPPORT_PDK1_9 копируем в C:\WINCE600. После этого открываем папку Platform\Platform, берём там папку Common и копируем её в папку C:\Wince600\Platform. Повторюсь, мой BSP был не вполне корректный, с хорошим BSP последнее действие не требуется. Потом открываем файл C:\Wince600\Platform\iMX28-EVK-PDK1_9\iMX28-EVK-PDK1_9.bat и меняем там строчку "set BSP_NONLED=" на "set BSP_NONLED=1". Теперь можно приступать к сборке.

Открываем проект iMX28-EVK-PDK1_9-SmallFootprint, находящийся в папке OSDesigns. Если студия будет ругаться, игнорируем. Потом в менеджере проектов удаляем SDK и SubProject. Теперь мы имеем рабочий проект операционной системы, который уже можно собрать, но он ничем не будет отличаться от фирменного. Чтобы внести в него изменения, давайте взглянем в его внутренности.

Откройте Catalog Items View, он находится там же, где и диспетчер проектов. Если его нет, нажмите View->Other Windows->Catalog Items View.

catalog.png

Здесь можно включать и отключать различные компоненты операционной системы. Посмотрите всё дерево объектов и решите, что нужно вам для работы.

Следует также отметить, что образы для разработки ПО и для конечного пользователя отличаются. В образ для разработки ПО следует включить telnet-сервер, утилиту удалённого администрирования cerdisp, а также утилиты удалённой отладки. Первые два компонента по умолчанию включаются в образ, а отладочные утилиты мы добавим дополнительно. В образ для конечного пользователя не следует включать эти компоненты, ибо они будут являться уязвимостью компьютера.

Вернёмся в менеджер проектов и откроем Parameter Files->Freescale i.MX28 EVK: ARMV4I (Active). Там есть 4 файла: project.bib, project.dat, project.db и project.reg. Очевидно, что project.reg - это файл реестра. В него следует вносить все необходимые изменения. Например, можно указать программы автозапуска. Для этого в ключе HKLM создаём ключ init и прописываем в нём нужные программы. Но здесь есть свои особенности. Параметр реестра должен иметь имя LaunchXX, где ХХ - номер приложения по порядку запуска. Начинать рекомендуется с номера 90, номера меньше зарезервированы под системные приложения. И есть один недостаток: нельзя указывать параметры командной строки.

И ещё один нюанс. Следует создать двоичный параметр DependXX и указать зависимость нашей программы от explorer.exe. Чтобы указать зависимость, берём номер приложения, от которого зависит наше, переводим его в шестнадцатеричный формат и вписываем номер в реестр, а после него пишем 00. explorer.exe имеет номер 50, в шестнадцатеричном виде - 32.

Ещё можно указать часовой пояс по умолчанию. В ключе Time Zones в параметре Default я указал для этого Ekaterinburg Standard Time. Чтобы узнать название вашего часового пояса, просмотрите этот ключ в реестре уже прошитого компьютера. Как это сделать, расскажу в следующий раз.

На этом закончим рассмотрение реестра, перейдём к файлу project.bib. С помощью этого файла можно включать собственные файлы в образ операционной системы. Например, таким образом следует включать своё программное обеспечение. Но сейчас мы включим несколько отладочных утилит. Для этого в разделе Files прописываем следующие строчки:

Clientshutdown.exe "C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\target\wce400\armv4i\Clientshutdown.exe" NK
CMAccept.exe "C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\target\wce400\armv4i\CMAccept.exe" NK
ConmanClient2.exe "C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\target\wce400\armv4i\ConmanClient2.exe" NK
DeviceDMA.dll "C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\target\wce400\armv4i\DeviceDMA.dll" NK
eDbgTL.dll "C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\target\wce400\armv4i\eDbgTL.dll" NK
TcpConnectionA.dll "C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\target\wce400\armv4i\TcpConnectionA.dll" NK

Как видите, сначала пишется имя файла на приёмной стороне, потом путь к файлу на своём компьютере, потом - область памяти, куда этот файл будет вшит. Обозначенные здесь файлы должны появиться на вашем компьютере после установки Windows Embedded CE.

На этом рассмотрение параметров проекта образа ОС завершено. Можно приступать к сборке. Для этого нажимаем Build->Advanced Build Commands->Clean Sysgen. Сборка займёт около двух часов. После сборки файл NK.bin можно найти в папке RelDir\Freescale_i_MX28_EVK_ARMV4I_Release\, можно смело его прошивать.

Ещё раз напомню, что этот образ - для отладки ПО. Когда работа будет завершена, следует убрать те файлы, которые мы добавили в project.bib, добавить туда ваши файлы, и отключить telnet-сервер. Также следует почистить всё ненужное в файле platform.bib, который находится в папке platform\iMX28-EVK-PDK1_9\FILES и удалить там тестовые файлы BSP (строки 351-355), утилиты удалённого администрирования (строки 384-390), также следует удалить файл соединения с удалённым рабочим столом cerdisp.exe, но пока мне не удалось выяснить, как это сделать. Так что предоставляю это вам.

Удачи!

Оставьте комментарий!

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)