Используя утилиту Platform Builder разработчики встраиваемых систем могут собрать специально настроенную ОС CE для своего устройства, которая включает только необходимые свойства. Platform Builder выполняется в знакомой среде Visual Studio IDE. Новую ОС можно загрузить в целевое устройство CE или эмулятор, и затем использовать его для отладки новой ОС и приложений устройства.
Каждое новое встраиваемое устройство нуждается в Операционной системе, специально настроенной для уникальных требований устройства. Включая только те драйверы и службы, которые требуются устройству, можно минимизировать размер ядра. Это ведет к меньшим требования памяти. Даже если экономия недостаточно большая, чтобы дизайнер мог для создания устройства перейти на менее дорогие устройства памяти, любое сбережение памяти тем не менее означает больше памяти, которая будет доступна для прикладных программ и хранилища.
В некоторых случаях экономия памяти может быть существенной. Минимальное ядро Windows Embedded CE требует примерно 400 Кбайт, а самое большое ядро с .NET Compact Framework для С#, полным набором устройств В/В, и полной поддержкой отладки требует более 40 Мбайт. Это различие в размере более чем на два порядка величины. Каждое новое устройство также, скорее всего, нуждается в нескольких драйверах устройств, которые были разработаны и/или настроены для этого конкретного устройства. Лицензионные отчисления ОС также могут быть существенно меньше для систем, которые не требуют некоторых важных свойств и служб (например, устройство без дисплея и без дополнительных приложений ОС).
Процесс сборки нового ядра операционной системы иногда называется Platform Builder, который выполняется в Visual Studio.
В Web доступно несколько коротких вводных видеозаписей по использованию CE по адресу http://msdn.microsoft.com/embedded. Их можно воспроизвести на настольном компьютере в медиа-плеере.
В Интернет доступна также серия вводных упражнений виртуальной лаборатории для Platform Builder системы CE, использующих ARM
Виртуальная лаборатория требует только установки небольшого элемента управления active X для импорта изображений в браузер. Требуется свободно доступная учетная запись паспорта Microsoft. Перед началом каждой лабораторной работы полезно распечатать или сохранить файл *.pdf руководства по лабораторной работе. Вы будете читать инструкции из руководства и вводить команды в инструментах. Небольшую ссылку на файл *.pdf можно найти в верхнем правом углу каждой лабораторной работы на последнем экране перед началом каждой лабораторной. Каждый сеанс лабораторной задает новый образ диска виртуального ПК на сервере со всеми установленными инструментами, и предоставляется 90 минут непрерывного времени лабораторной для выполнения каждой работы, прежде чем сервер прервет работу, поэтому убедитесь вначале, что имеете достаточно времени. Вы не сможете сохранить никакие файлы или перенести файлы назад с сервера на свой ПК. Доступно несколько виртуальных лабораторных работ, но три лабораторные особенно полезны для всех новичков CE. Первая лабораторная собирает ОС и выполняет ее на эмуляторе, а две другие выполняют все действия по разработке приложений C/C++ и C# и знакомит с инструментами отладки. Подробное описание трех этих виртуальных лабораторных работ представлено ниже.
Эта виртуальная лаборатория показывает процесс создания, настройки, сборки и отладки образа времени выполнения ОС Windows CE OS и знакомит со свойствами Platform Builder. Новый образ времени выполнения затем выполняется на поставляемом с CE эмуляторе устройства ARM.
Эта лабораторная работа показывает процесс создания образа операционной системы CE 6.0, которая поддерживает разработку приложений Win32 и MFC (Microsoft Foundation Classes), сюда включается сборка специального SDK (Software Development Kit) для поддержки разработки приложений на настроенном образе операционной системы, и будет использоваться Visual Studio 2005 для написания и развертывания простого приложения MFC на образе операционной системы, выполняющемся на эмуляторе ARM.
Эта виртуальная лабораторная работа показывает процесс создания образа операционной системы CE 6.0, который поддерживает разработку приложений .NET Compact Framework, и использует Visual Studio 2005 для написания и развертывания простого приложения .NET Compact Framework на образе операционной системы, выполняющемся на эмуляторе ARM.
Виртуальные лабораторные работы являются быстрым и легким способом начального изучения использования инструментов для CE на любом ПК. Пользователи без целевого оборудования eBox могут выполнять и отлаживать многие примеры, которые выполняются на эмуляторе ARM, используя инструкции, предоставленные в виртуальных лабораторных работах для компиляции кода для процессора ARM, и соединяясь с эмулятором ARM для загрузки разработки и кода новой ОС. Все примеры, которые требуют внешнего оборудования, не поддерживаемого эмулятором, такие как устройства В/В Phidgets USB будут работать неправильно.
Далее мы соберем новую ОС с помощью Platform Builder и запустим выполнение CE на реальном устройстве, eBox 2300.
Прежде чем переходить к учебному материалу, необходимо установить на ПК системы разработки несколько программных пакетов. Для системы разработки требуется Windows XP с памятью от 512K до 1G RAM и не менее 18 GB свободного доступного дискового пространства до установки программного обеспечения. Это оставит достаточно пространства для поддержки нескольких новых сборок ОС. Нам понадобятся следующие объекты, и они должны быть установлены в данном порядке:
Каждый дополнительный проект новой сборки ОС может использовать около 2 GB дискового пространства, поэтому может понадобиться очистить или удалить более старые проекты сборки ОС в некоторый момент, чтобы освободить дисковое пространство, если дисковое пространство ограничено. Очищенные проекты сборок ОС являются относительно небольшими и их всегда можно собрать заново. Начальная установка Visual Studio 2005 и требуемого пакета VS 2005 SP1 требует достаточно много времени, поэтому начинайте эти процессы установки, когда имеется достаточно времени для их завершения. После установки всего перечисленного программного обеспечения или проверки, что они уже установлены в системе разработки, вы будете готовы начать знакомство с учебным материалом.
ПРИМЕЧАНИЕ: Не забудьте отключить все антивирусное программное обеспечение на доступе к файлам. Отключите сканирование при доступе, или как минимум исключите его из проверки при доступе к основному каталогу CE. Используемым по умолчанию основным каталогом CE является C:\WINCE600, и сканирование вирусов при доступе к файлам этого каталога является основной проблемой. Каждая копия сборки ОС создает и открывает несколько тысяч файлов и проверка каждого из них на вирусы делает длинный процесс сборки ОС действительно слишком медленным.
ПРИМЕЧАНИЕ: Если имеется брандмауэр, выполняющийся в системе разработки, может понадобиться задать его, настроить или отключить, чтобы позволить eBox соединиться и взаимодействовать с настольным ПК через сеть. Сетевое соединение используется для загрузки нового кода и поддержки удаленных операций отладки.
Сетевое соединение ПК разработки и eBox должно быть в одной подсети, чтобы позволить выполнять удаленную загрузку и отладку на eBox. eBox должен иметь в сети включенный DHCP или иметь статический IP-адрес. Дополнительные подробности о сетевых параметрах настройки предоставлены далее.
В этом уроке мы подробно опишем все действия, необходимые для разработки полнофункционального ядра CE, которое выполняется на компьютере eBox 2300. Большое ядро, которое мы разработаем, будет включать средства и драйверы ОС, необходимые для выполнения всех демонстрационных программ в этом учебнике. Для специальных приложений, которые не используют все эти средства, неиспользуемые возможности ОС можно исключить и уменьшить размер ядра.
Инструменты разработки CE выполняются как подключаемый модуль в Visual Studio. Для начала процесса запустите Microsoft Visual Studio 2005. Когда Visual Studio запуститься, вы должны увидеть экран, подобный рисунку 7.1.
(рис 7.1) The Visual Studio 2005 IDE
В зависимости от среды разработки, выбранной во время процесса установки и используемой по умолчанию, вы можете увидеть слегка отличающийся информационный экран. Для CE VS 2005 IDE предоставляет поддержку для нескольких различных типов проектов, включая Console
Затем запустите новый проект сборки ядра ОС, выбирая File $$\Rightarrow$$ New $$\Rightarrow$$ Project. В левом столбце появившегося окна New Project, щелкните, чтобы выделить пункт Platform Builder for CE 6.0. Должно появиться изображение экрана, показанное на рисунке 7.2.
(рис 7.2) Создание нового проекта дизайна ОС
На правой стороне окна New Project щелкните на пункте OSDesign, чтобы выделить его. Введите MyOS в качестве имени нового проекта. Проверьте, что стоит флажок Create directory for solution (Создать каталог для решения). Щелкните OK, чтобы продолжить.
Через несколько секунд начинает выполняться Мастер проектирования (Design Wizard) Windows Embedded CE 6.0, как показано на рисунке 7.3. Он задаст несколько вопросов, а затем создаст новый проект дизайна ОС вместе с требуемыми файлами и каталогами. Щелкните Next, чтобы продолжить.
(рис 7.3) Мастер проектирования (Design Wizard) Windows Embedded CE 6.0
Затем мастер предлагает выбрать пакет поддержки платы (
ПРИМЕЧАНИЕ: Если этот
(рис 7.4) Выбор eBox 2300 BSP в Мастере проектирования
Затем мастер проектирования предлагает выбрать начальный шаблон дизайна. Шаблон дизайна задает параметры ОС в соответствии с базовым типом устройства. Каждый шаблон дизайна автоматически выбирает свойства и драйверы необходимые обычно для такого типа дизайна.
Вам все равно придется добавлять или удалять некоторые средства в каждом базовом типе устройства, но выбор ближайшего типа устройства ускоряет в дальнейшем процесс конфигурации ОС.
Выберите Industrial Device в качестве шаблона дизайна (Design Template). Industrial Device содержит полный набор средств, которые хорошо подходят для аппаратных функций eBox. Щелкните Next для продолжения.
(рис 7.5) Выбор шаблона дизайна в Мастере проектирования
Затем мастер проектирования предлагает выбрать вариант шаблона дизайна. Выводимые варианты зависят от выбранного шаблона дизайна. Рисунок 7.6 показывает варианты, которые выводятся для шаблона дизайна Industrial Device. Выберите Internet
(рис 7.6) Выбор варианта шаблона дизайна в мастере проектирования
Затем мастер проектирования предлагает выбрать несколько приложений и средств медиа, как показано на рисунке 7.7. Так как мы собираем большое полнофункциональное ядро, нам понадобятся большинство из представленных на экране вариантов выбора. Проверьте и/или выберите следующие средства:
Щелкните Next для продолжения.
(рис 7.7) Выбор приложений и средств медиа в мастере проектирования
Мастер проектирования затем предлагает выбрать несколько вариантов организации сети и коммуникации, как показано на рисунке 7.8. Здесь вполне подходят варианты по умолчанию, если только в устройстве не требуется поддержка беспроводной связи 802.11. Для 802.11 добавьте Wireless Local Area Network (802.11) в разделе Local Area Network. Щелкните Next для продолжения.
(рис 7.8) Выбор вариантов сети и коммуникации в мастере проектирования
В завершающем окне уведомления мастера проектирования щелкните просто на Finish и мастер через несколько секунд создаст начальный каталог проекта и файлы.
Когда мастер проектирования заканчивает настройку файлов нового проекта, он выводит предупреждения о безопасности для всех выбранных компонентов, которые могут создавать угрозу безопасности. Многие распространенные сетевые средства могут создавать потенциальные угрозы безопасности в ОС. Щелкните Acknowledge для продолжения. Если щелкнуть Cancel, то это средство будет исключено.
(рис 7.9) Предупреждения безопасности для выбранного свойства ОС
В данный момент задан начальный проект дизайна ОС. Файлы проекта находятся в основном каталоге дизайна ОС в папке с названием проекта. Для данного проекта их можно найти в каталоге, ..\WINCE600\OSDesign \MyOS.
Высокоуровневое решение позволяет объединять проект дизайна ОС с несколькими приложениями C/C++ и C# (которые называются подпроектами, а приложения C# появятся как проекты). Следующий шаг состоит в выборе всех отдельных компонентов, которые нужно дополнительно добавить в дизайн ОС. Проверьте, что выбрано представление объектов каталога, как показано на рисунке 7.10 в левом столбце. Обратите внимание, что вкладки внизу этого окна выбирают различные представления проекта.
(рис 7.10) Представление объектов каталога (левый столбец) используется для выбора отдельных объектов для ОС
Существует еще ряд полезных объектов, которые можно при желании добавить в новое ядро ОС. Чтобы добавить новый объект, необходимо просто найти его в окне представления каталога объектов и щелкнуть на нем. Всякий раз, когда вы не можете найти окно представления объектов каталога, его можно открыть снова, используя View $$\Rightarrow$$ Other Windows $$\Rightarrow$$ Catalog Items View.
Когда объект добавляется, появляется зеленый флажок. Другие объекты, которые могут требоваться вновь выбранному объекту, добавляются автоматически, и они указываются с помощью зеленого квадрата. Объекты, которые нельзя добавить, указываются красным восклицательным знаком. Например, несколько объектов доступно только для определенного типа процессоров.
Во многих случаях нужно будет раскрыть представление, чтобы найти объекты, щелкая на боксе со значком "+". Отметим, что имеется также полезное средство поиска вверху окна представления каталога объектов. Делая щелчок правой кнопкой мыши на каждом объекте, можно вывести свойства объектов или увидеть список других объектов, от которых он зависит.
Щелкните на боксе со значком "+", чтобы раскрыть представление требуемым образом, или используйте средство поиска для нахождения каждого объекта для выбора. Найдите каждый из следующих объектов каталога и выберите их, чтобы добавить в ОС (зеленый флажок), используя окно представления каталога:
Запустите Менеджера конфигурации (Configuration Manager), используя Build $$\Rightarrow$$ Configuration Manager. Должно появиться окно Менеджера конфигурации, как на рисунке 7.11. Проверьте, что ICOP_Vortex_60B_x86 Debug выбрана в качестве активной конфигурации. Для каждого проекта поддерживается два типа сборок ОС. Отладочная сборка включает много отладочных и статусных сообщений, которые будут полезны при первоначальном переносе ОС на новое устройство. Вариант без отладочных сообщений называется сборкой выпуска. Отладочная сборка требует примерно на 40% больше памяти и загружается значительно медленнее, так как она выводит много сообщений, но эти сообщения могут оказаться очень полезны, когда появляются какие-то проблемы.
В окончательно развернутой системе будет использоваться сборка выпуска. Можно переключиться в сборку выпуска, выбирая конфигурацию Release в менеджере конфигураций. Последний шаг сборки ОС должен повторяться для каждой конфигурации, если вам нужны обе. Для сборки выпуска некоторые из параметров отладки скорее всего не будут включаться. Закройте окно Менеджера конфигурации.
(рис 7.11) Менеджер конфигурации можно использовать для выбора сборки ОС отладки или выпуска
Перед сборкой ОС необходимо выбрать еще несколько параметров сборки. В левом столбце внизу выберите вкладку Solution Explorer, чтобы вывести представление решения проекта. Выберите MyOS, сделайте щелчок правой кнопкой мыши и выберите Properties. Когда появится окно страницы свойств, раскройте Configuration Properties и выберите Build Options. В окне страницы свойств, которое появится, как показано на рисунке 7.12, выберите следующие параметры сборки:
eboot в памяти ( IMGEBOOT=1 ). Этот параметр добавляет поддержку для отладки Ethernet, включая начальный загрузчик Ethernet в образ.IMGNODEBUGGER=1 ). Выберите перед сборкой образ времени выполнения, чтобы позволить отладчику соединиться с хост-устройством и передать информацию отладки из целевого устройства.IMGNOKITL=1 ). KITL, сокращение от Kernel Independent Transport Layer (Независимый от ядра уровень транспорта), предоставляет соединение отладки/загрузки между целевым устройством Windows CE и станцией разработки. KITL должен быть включен вместе с образом, чтобы использовать удаленные инструменты в VS2005 и Platform BuilderIMGRAM128 задается равной 1.Пока не щелкайте на OK! В этом окне необходимо выполнить еще несколько дополнительных операций.
(рис 7.12) Окно страниц свойств (Property Pages) используется для задания параметров сборки и переменных окружения
Переменные окружения системы сборки используются для включения и исключения различных объектов образа и настройки конфигураций памяти. Выберите далее Environment вместо Build Options в окне страницы свойств предыдущего шага. Существует критически важная переменная окружения, которую нужно теперь добавить, как видно на рисунке 7.13.
Щелкните на кнопке New…, введите IMGRAM128 для имени переменной (Variable), и введите 1 для значения Variable и щелкните OK. Задавая переменную IMGRAM128, получаемый образ активирует все 128M памяти, общий объем памяти RAM, которая предоставляется в eBox 2300. Могут возникать ошибки нехватки памяти и другие странные проблемы, если эта настройка будет задана неправильно.
Щелкните Apply и затем OK для завершения конфигурации.
(рис 7.13) Добавление переменной окружения с помощью окна страницы свойств
Другим примером переменной окружения, которую можно добавить при удобном случае, является IMGENFORA=1. Это включает драйвер модема сотового телефона для автономного модема Enfora SA-GL GSM/GPRS. Многие переменные окружения задаются автоматически как значения по умолчанию при выборе начального шаблона конструкции и при выборе объекта каталога вручную.
Теперь, когда все параметры сборки и настройки были выбраны, можно выполнить сборку нового образа ОС. В меню верхнего уровня выберите Build $$\Rightarrow$$ Build Solution. Утилита Platform Builder соберет теперь новый образ ОС вместе со всеми подпроектами, которые он может включать (т.е., решение). Процессу нужно проверить, скомпилировать, и скомпоновать тысячи файлов, и это потребует примерно 10-20 минут. Не забывайте, что активная программа антивирусной проверки, выполняющая сканирование доступа, заставит его выполняться на самом деле медленно. Внизу окна VS 2005 будут появляться сообщения системы сборки.
В самом низу окна выводится следующее небольшое анимированное битовое изображение, показывающее, что процесс сборки еще выполняется:
Наверно лучше не пытаться делать что-то еще в VS 2005 или каталогах ОС, и, возможно, даже на ПК во время длинной сборки. Очень легко заблокировать файл или ресурс, делая что-то еще, и это может приводить к ошибкам сборки. Если это произойдет, необходимо выполнить ReBuild (Повторная сборка). ReBuild очищает сначала файлы от предыдущей сборки и запускает новую сборку. Точно также, если не остановить сначала Отладчик (Debugger) перед запуском новой сборки, то это приведет к ошибкам сборки, так как в этом случае блокируются некоторые символьные файлы. Когда процесс сборки завершается, вы должны увидеть, что окончательная сборка выполнилась без сообщений об ошибках в области вывода внизу окна VS 2005 , как видно на рисунке 7.14.
(рис 7.14) Сборка ОС завершилась без ошибок
Когда процесс сборки завершается, генерируются получаемые файлы и помещаются в следующие каталоги сборки (предполагая, что используется место установки по умолчанию):
C:\WINCE600\OSDesigns\MyOS\MyOS\RelDir\ICOP_Vortex86_60B_x86_Debug
C:\WINCE600\OSDesigns\MyOS\MyOS\RelDir\ICOP_Vortex86_60B_x86_Release
После успешной сборки в указанных выше каталогах появится большой файл NK.BIN. Это новый образ ОС Windows Embedded CE 6.0.
Поздравляем, вы только что закончили сборку своего первого образа ОС времени выполнения для eBox 2300. Теперь мы посмотрим, будет ли он правильно загружаться и выполняться на eBox.
Если вы еще этого не сделали, присоедините источник питания, дисплей, клавиатуру, и мышь к eBox. Любая клавиатура ПК, мышь, громкоговорители и дисплей должны работать с eBox. Предоставляется кабель Y для соединения клавиатуры и мыши. Обратите внимание на небольшую иконку клавиатуры и мыши, отпечатанную на кабеле Y, так чтобы подключить каждый конец в правильное гнездо. Включите eBox, используя тумблер питания сзади (ниже кабеля питания), а затем нажмите кнопку на передней панели. Должен загореться зеленый LED-индикатор справа от кнопки передней панели. Проверьте, что он запускается, выводит сообщения BIOS, запускает MS DOS, и выводит меню начальной загрузки. Выключите eBox. Когда вам понадобиться отключить кабель питания от eBox, оттяните сначала черный ползунок на кабеле питания, чтобы отсоединить разъем от eBox.
Если у вас нет дополнительного дисплея и клавиатуры для eBox, или вы настраиваете устройство без таких средств, то Приложение удаленного вывода CE может экспортировать и выводить в окне на ПК системы разработки. Полный набор инструкций можно найти в Приложении В.
Для быстрой загрузки eBox обычно загружают с помощью сетевого соединения. Его можно загрузить с помощью статического IP-адреса или с помощью DHCP (назначенного сервером IP-адреса). Вместе с eBox поставляется перекрестный кабель, который может напрямую соединяться с сетевым соединением сзади ПК разработки. Это предполагает, что вы соединяетесь прямо с eBox, используя статический сетевой IP-адрес на eBox и на ПК системы разработки.
Если ПК в данный момент настроен для DHCP, то нужно будет присвоить ему статический IP-адрес для прямого сетевого соединения через перекрестный кабель, или он будет заблокирован, если нормальный кабель отключается. Это произойдет через несколько секунд после того, как он потеряет соединение с сервером DHCP.
eBox можно также присоединить через сетевой концентратор, используя DHCP или статический IP-адрес, но в большинстве случаев концентратор требует нормальный кабель (не перекрестный кабель). Использование настройки с концентратором имеет преимущества, так как все сетевые приложения, выполняющиеся на eBox, такие как браузер, могут по прежнему соединяться с Интернет.
В любом случае eBox и ПК разработки должны находиться в одной подсети (только три последние цифры IP-адреса могут различаться) для поддержки сетевого запроса BOOTME и для развертывания кода приложения. Дублирование IP-адресов вызывает большие проблемы в сетях и будет блокировать компьютеры, поэтому проверьте, что вы не выбрали IP-адреса, которые уже используются. Вам может понадобиться связаться со своим сетевым администратором, чтобы присвоить eBox статический IP-адрес, если вы соединяете его с концентратором, а не прямо с ПК системы разработки.
Если для соединения с eBox используется DHCP, некоторые защищенные серверы DHCP требуют, чтобы каждый адрес MAC был включен, прежде чем они ответят новому компьютеру. В этом случае нужно будет получить MAC адрес для eBox и связаться с сетевым администратором, чтобы он включил DHCP для нового устройства. Чтобы определить MAC адрес можно выполнить на eBox несколько программ. Вот один из способов получения MAC адреса. Включите eBox. Загрузите локальное ядро ОС (выберите вариант загрузки 1), подождите пока ОС загрузится, выберите Start $$\Rightarrow$$ Run, введите CMD, выберите OK, и затем введите ipconfig /all в окне консоли команд, и адрес MAC должен быть выведен. Можно также задать сетевое соединение eBox, используя вторую сетевую плату в ПК системы разработки. В любом случае, статического IP или настройки DHCP, не забудьте отключить все программы брандмауэры или настроить так, чтобы разрешить доступ к eBox. Активный брандмауэр может помешать коммуникации eBox с ПК системы разработки.
Отладочные и статусные сообщения посылаются через сетевое соединение. В большинстве случаев этих отладочных сообщений достаточно для диагностики проблем. Последовательный null-модемный кабель, поставляемый с eBox, можно использовать для вывода дополнительных отладочных сообщений, которые посылаются через последовательный порт COM1: eBox. Это может оказаться полезно при отладке устройства без сети.
Чтобы увидеть вывод отладочных сообщений на COM1:, соедините null-модемный последовательный кабель с COM1: на eBox и любым доступным портом COM на ПК системы разработки. Выполните Hyperterminal на системе разработки, чтобы вывести дополнительные
Одним из способов отключить
Когда различные вопросы сетевых соединений IP/DHCP будут разрешены, в Visual Studio 2005 необходимо настроить параметры соединения целевого устройства, так чтобы новый образ ОС можно было загрузить в целевое устройство. Выберите Target $$\Rightarrow$$ Connectivity Options, и должно появиться окно Target Device Connectivity Options, как показано на рисунке 7.15.
(рис 7.15) Настройка параметров соединения целевого устройства
Включите eBox-2300. Должен загореться LED-индикатор и начнут выполняться начальная загрузка и файлы DOS Autoexec.bat, и появится меню выбора, аналогичное следующему:
Если станция разработки и eBox-2300 соединяется c LAN со службой DHCP, выбирайте вариант 2, 3, или 4. Если eBox-2300 соединяется прямо со станцией разработки с помощью перекрестного кабеля Ethernet, выбирайте вариант 6, 7, или 8. Отметим различное разрешение дисплея в каждом случае. Если требуется для eBox использовать другой статический IP-адрес, выйдите в DOS и отредактируйте файл eBox Autoexec.bat для задания статического IP-адреса.
Вернитесь в окно Target Device Connectivity Options все еще открытое в системе разработки и щелкните на одной из кнопок настроек Ethernet. Должно появиться окно Ethernet Download Settings, как показано на рисунке 7.16. Каждое устройство eBox имеет уникальное имя устройства CEPCXXXX, где XXXX является уникальным номером, различным для каждого eBox. Когда устройство eBox посылает запрос BOOTME, который обнаруживает ПК системы разработки, оно появляется в окне Active target devices (Активные целевые устройства). Когда вы увидите, что оно там появилось, выберите его, и оно должно стать Target device boot name (Имя загрузки целевого устройства). Затем щелкните OK. Если оно не появится, перезапустите eBox и выберите вариант начальной загрузки. Если оно все равно не появляется, внимательно проверьте IP-адреса и все настройки брандмауэра. Оно должно появиться здесь, прежде чем вы сможете в него загрузить.
Если в подсети имеется несколько активных устройств eBoxe, то возможно соединение с неправильным устройством, так как в окне активных целевых устройств может появиться несколько. Если вы работаете в лабораторной среде с большим числом активных eBoxes, то при желании можно пометить каждое устройство eBox его номером CEPCXXXX, чтобы избежать какой-либо путаницы в большой лабораторной области.
(рис 7.16) Обнаружение и выбор CEPCxxxxx целевого устройства для загрузки
Когда вы увидите номер eBox CEPCXXXX и выберите его, щелкните на OK, чтобы выйти. Затем выберите Apply и Close.
Теперь вы готовы загрузить новый образ ОС в Ebox. В Visual Studio IDE выберите Target $$\Rightarrow$$ Attach Device. После нескольких секунд мелькающих окон должно появиться окно, показанное на рисунке 7.17. Это окно может быстро исчезнуть позади Visual Studio IDE, и вам может понадобиться вернуть его снова на передний план, выбирая объект Download в панели задач Windows в самом низу экрана.
Через несколько секунд целевое устройство должно начать загрузку и зеленая полоса индикатора выполнения должна начать движение, как показано на рисунке 7.18. Если ничего не происходит, перезапустите eBox и снова выберите режим начальной загрузки. Процесс BOOTME быстро заканчивается.
(рис 7.17) Присоединение целевого устройства для загрузки
(рис 7.18) Целевое устройство загружает новый образ ОС
После того как устройство загрузит весь образ ОС, вы должны увидеть
(рис 7.19) Дисплей целевого устройства говорит о том, что выполняется новый образ ОС
Когда появляется изображение, можно будет выбирать объекты с помощью мыши и клавиатуры.
Теперь, когда для eBox был разработан работающий проект дизайна ОС, мы добавим подпроект C/C++ "hello world". Вернитесь снова в Solutions View (Представление решений) в левом столбце Visual Studio IDE. Выделите последнюю запись, помеченную Subprojects. Сделайте щелчок правой кнопкой мыши и выберите Add New Subproject. В появившемся окне выберите WCE
(рис 7.20) Добавление подпроекта C/C++ MyHelloWorld в проект конструкции ОС
Щелкните Next для продолжения. Появится новое окно, аналогичное рисунку 7.21. Выберите A typical "Hello World" application (Типичное приложение "…"), затем щелкните Finish и весь код будет автоматически сгенерирован и помещен в новую папку подпроекта MyHelloWorld. Новая папка появится через несколько секунд снова в окне Solution Explorer.
(рис 7.21) Выбор типичного приложения C/C++ "Hello World" и генерация кода
Затем выделите запись подпроекта MyHelloWorld снова в окне Solution View в левом столбце Visual Studio 2005 IDE. Сделайте щелчок правой кнопкой мыши и выберите Build из всплывающего в ответ на это меню (Важное замечание: Не выбирайте Build из меню верхнего уровня, это приведет к повторной сборки всего, включая ОС, и будет как минимум минут на 10 дольше). Вариант Build, выбранный из контекстного меню при щелчке правой кнопкой мыши, компилирует только код подпроекта и тотчас же компонует его с существующим образом ОС.
Проверьте окно вывода, чтобы убедиться, что сборка прошла нормально. Если имеются ошибки в окне отладки, вы можете щелкнуть на этом сообщение об ошибке, чтобы перейти к соответствующей строке кода.
Предполагая, что все еще соединено и выполняется, выберите Target $$\Rightarrow$$ Reset Device. Устройство должно ответить, загружая новое ядро ОС с подпроектом. Если нет, используйте Target $$\Rightarrow$$ Detach Device, выключите eBox и снова включите, а затем повторите все начальные шаги для выбора варианта начальной загрузки на eBox и загрузки нового образа ОС времени выполнения в устройство. Когда ядро образа времени выполнения будет загружено и выполнит начальную загрузку, снова должно появиться изображение. В этот раз код нашего приложения "hello world" находится в eBox, и мы можем его выполнить. Следующий код генерируется для консольного приложения "hello world"
// MyHelloWorld.cpp : Определяет точку входа для консольного
// приложения
#include "stdafx.h"
int _tmain(int argc, TCHAR *argv[], TCHAR *envp[])
{
_tprintf(_T("Hello World!\n"));
return 0;
}
Этот код можно открыть для редактирования в Visual Studio, раскрывая подпроект MyHelloWorld, а затем раскрывая запись Source Files. Двойной щелчок на записи MyHelloWorld.cpp откроет код в окне редактора Visual Studio. Функция _tprintf печатает сообщения Unicode в окне консоли. Окно консоли появится только когда выполнится первый оператор printf. Окно консоли закрывается автоматически, когда происходит выход из программы. Это программа завершается сразу, поэтому нам нужно задать точку прерывания сразу после оператора _tprintf. Чтобы задать точку прерывания, сделайте щелчок левой кнопкой мыши на затененной полосе сразу слева от строки после оператора return со скобкой "}". Небольшая иконка точки прерывания должна появиться на затененной полосе. Если иконка не появится, вы сможете тем не менее выполнить отладку из предыдущего урока сборки, поэтому используйте Debug _ Stop Debugging и попробуйте еще раз.
(рис 7.22) Задание точки прерывания в приложении C/C++ "Hello World"
Для выполнения программы "hello world" выберите Target _ Run Programs. Просмотрите появляющиеся окна и найдите программу MyHelloWorld. Выделите строку MyHelloWorld.exe и щелкните Run. Через пару секунд должно открыться окно консоли на экране eBox и в конечном счете должно появиться "Hello World" маленькими буквами вверху окна консоли, как видно на рисунке 7.23.
(рис 7.23) Вывод окна консоли eBox во время выполнения приложения "Hello World" C/C++
В этом месте должна встретиться точка прерывания, и вы должны увидеть вывод, похожий на рисунок 7.24 в Visual Studio 2005 IDE. Обратите внимание, что иконка, связанная с точкой прерывания, изменилась. Эта новая иконка указывает, что код достиг точки прерывания.
Включение отладки ядра немного замедляет все операции. Когда разработка ядра немного стабилизируется, можно будет отключить отладку и выполнять сборки выпуска для тестирования приложений. Сборки выпуска будут загружаться и выполняться значительно быстрее. Когда встретится трудная проблема, можно всегда будет вернуться к отладочной сборке для дополнительного тестирования.
(рис 7.24) Остановка в точке прерывания в приложении C/C++ "Hello World"
После остановки программы в точке прерывания выберите Debug $$\Rightarrow$$ Start, чтобы продолжить после точки прерывания. Когда программа закончит выполнение, окно консоли на eBox должно закрыться.
Когда вы найдете проблемы для исправления, не забудьте остановить отладку с помощью Debug $$\Rightarrow$$ Stop Debugging перед запуском любой новой сборки. Отладчик блокирует некоторые символьные файлы во время выполнения, что будет приводить к ошибкам сборщика (Build). Когда вы остановите отладчик, возможно придется перезапустить eBox прежде чем загружать новый образ времени выполнения.
Теперь вы успешно добавили, скомпилировали, отладили и выполнили прикладную программу C/C++, которая была добавлена как подпроект в проект дизайна ОС.
Теперь, когда проект MyOS работает правильно и выполняет приложения, мы перейдем на использование сборки выпуска (Release Build) MyOS вместо большей, более медленной отладочной сборки (Debug). Это сделает начальную загрузку и выполнение приложений значительно быстрее. Запустите Visual Studio и откройте свой проект MyOS. В основном меню Tools item найдите самый левый раскрывающийся комбинированный бокс и выберите ICOP_Vortex86_60B Release, как показано на рисунке 7.25. Это приводит к переключению проекта MyOS на сборку Release. Если комбинированный бокс затенен, нужно будет сначала отсоединить eBox и остановить отладку.
Чтобы собрать версию выпуска, выберите Build $$\Rightarrow$$ Build MyOS. Через несколько минут сборка должна успешно выполниться без каких-либо ошибок.
Выполните описанные ранее действия, чтобы присоединить и загрузить новый образ ядра (версия Release) в eBox. Он должен быть меньше размером и запускаться быстрее, чем отладочный образ.
Основное окно Windows CE должно появиться на экране eBox, когда система запустится. Оставьте Visual Studio работающей, но отсоедините eBox. VS и проект MyOS снова понадобятся через несколько шагов, если вы собираетесь продолжить уроки в данный момент.
(рис 7.25) Переключение проекта MyOS на сборку Release
После создания специального дизайна ОС можно разработать пакет разработки программного обеспечения (SDK), используя этот дизайн ОС для распространения разработчикам приложений. SDK является множеством заголовочных файлов, библиотек, файлов соединения, файлов времени выполнения, расширений дизайна ОС, и справочной документации, которые разработчики могут использовать для написания приложений для специального дизайна ОС. Разработчики приложений, которые используют SDK, не обязаны понимать детали генерации нового ядра ОС. Содержимое SDK позволяет разработчикам создавать и отлаживать приложение на образе времени выполнения, собранном из существующего дизайна ОС.
Platform Builder можно использовать для разработки SDK на основе вашего специального дизайна ОС для установки на другой рабочей станции разработки.
Во время процесса разработки SDK утилита Platform Builder отслеживает базовые модули ОС, которые принадлежат дизайну ОС, исключая необходимость описывать модули и компоненты, содержащие технологии, которые должен поддерживать соответствующий SDK. Вместо этого Platform Builder включает заголовочные файлы и библиотеки, связанные с модулями и компонентами в вашем дизайне ОС в создаваемый SDK.
SDK используется для определения, какие меню, файлы, и приложения отладки выводить разработчику приложений, который создает программное обеспечение, предназначенное для вашего специального дизайна ОС. Эти инструменты используют также компоненты соединения для определения, как пересылать информацию из рабочей станции разработки на целевое устройство через транспортный уровень.
Чтобы помочь разработчикам использовать SDK, при создании SDK инструмент разработки SDK автоматически создает и включает справочный файл HTML, содержащий документацию, показывающую, какие API поддерживаются вашим специальным дизайном ОС.
Когда SDK устанавливается в Visual Studio, эта документация не появляется в оглавлении, но устанавливается на жестком диске разработчика. Прежде чем можно будет собрать SDK, необходимо создать новый SDK для дизайна ОС. Для использования SDK CE 6.0, проверьте, что у вас уже установлен Visual Studio 2005 SP 1 или более новая версия. Следующие действия создают новый SDK:
Platform Builder выводит расположение файла Microsoft Windows Installer (.msi) для SDK и информацию о процессе сборки.Когда новый SDK будет установлен в Visual Studio, вы сможете разрабатывать проекты автономных приложений C/C++/C# для целевой системы, компилировать код, и развертывать (загружать) через сетевое соединение код приложения в целевое устройство, выполняющее существующую ОС. После создания проекта, в Tools $$\Rightarrow$$ Options, выбранные для каждого проекта платформа и целевое устройство должны иметь имя платформы, использованное при генерации нового SDK, в данном случае MySDK.
На целевых устройствах без сети можно использовать коммуникационную программу ActiveSync на последовательном или USB-порте для развертывания кода из хост-системы разработки на целевую систему. Этот урок будет использовать более быстрое сетевое соединение.
Прежде чем можно будет развернуть и выполнить код, разработанный с помощью SDK, понадобиться выполнить начальную загрузку ОС на целевом устройстве и сконфигурировать настройку коммуникаций, использованных для развертывания кода на целевом устройстве.
Это настройка, которая отличается от той, которая использовалась при первоначальной загрузке ОС через сеть, так как в этом случае ОС уже выполняется. Эти шаги подробно объясняются после разработки простого приложения C# для использования при тестировании.
В этом уроке мы рассмотрим последовательность действий, необходимых для создания и сборки проекта C# с помощью нового SDK. Этот новый проект C# будет развернут в проект MyOS, созданный в предыдущих уроках.
Используя SDK, можно создавать проекты разработки автономных приложений C/C++/C#, которые не существуют как часть проекта ОС, но вам также нужно, чтобы сначала новая ОС уже была установлена в энергонезависимую память устройства, или нужно будет загрузить ОС в целевую систему, и чтобы ОС выполнялась. Требуется два экземпляра (копии) VS 2005 для поддержки отладки как C/C++, так и C#. Код C# развертывается (загружается) после начальной загрузки ОС, в отличие от предыдущих подпроектов C/C++, которые предварительно устанавливались в файл ядра NK.BIN.
Для поддержки приложений C# и разработки кода сборка ОС должна включать несколько объектов. Для развертывания разработанного кода как проектов используется другая настройка сетевой коммуникации, называемая Corecon. Corecon требует, чтобы в ядре ОС были установлены следующие 5 модулей поддержки:
ConmanClient2.exeCMaccept.exeeDbgTL.dllTcpConnectionA.dllClientShutDown.exeКомпонент каталога Corecon появляется в разделе Third Party в представлении каталога. Выберите компонент Corecon_X86 Files, чтобы включить эти модули в сборку ОС (Компонент Corecon ранее устанавливался как отдельный объект – если его там нет, смотрите раздел 7.2). Модули компонента Corecon являются частью VS 2005 SP1, но они добавляются в сборку ОС с помощью объекта каталога Corecon_X86. Corecon был включен в предыдущий урок сборки проекта MyOS.
В качестве альтернативы для устройств без какой-либо поддержки сети для развертывания кода можно использовать программу ActiveSync. ActiveSync может использовать для коммуникации последовательный или USB порт. Если используется ActiveSync, то программу устанавливается как на целевом устройстве, так и на ПК системы разработки. ActiveSync широко используется на Windows Mobile Pocket PCs и Smart Phones. Этот урок будет использовать Corecon и сетевой интерфейс для развертывания кода, так как он поддерживается на eBox и работает быстрее.
Требуется также, чтобы IP-адрес eBox был прочитан при использовании DHCP или задан в случае статического IP-адреса. Поэтому сборка ОС должна включать объект каталога поддержки сети TCP/IP и сетевых утилит (т.е., ipconfig и ping).
Для выполнения кода C# использует .Net Compact Framework. Можно определить загрузку .Net Compact Framework, когда развертывается код, но ОС тем не менее должна включать зависимости для объекта каталога Compact Framework. В большинстве случаев легче и проще просто включить объект каталога .Net Compact Framework в сборку ОС для поддержки приложений C# и не развертывать каждый раз заново модуль 8M .NET Compact Framework.
Если .NET Compact Framework развертывается на устройстве, используется файл CAB. В этом случае объект каталога CAB File installer/
При условии, что вы выполнили предложенные ранее действия при сборке MyOS, она должна уже включать все предыдущие компоненты, необходимые для поддержки развертывания C# и .NET Compact Framework, поэтому вам не придется собирать ее заново.
Мы выполним теперь действия по созданию простого проекта C#. Запустите второй экземпляр VS 2005 и выберите File $$\Rightarrow$$ new $$\Rightarrow$$ project. Будет выведен экран нового проекта, показанный на рисунке 7.29.
В появившейся форме в левом столбце в разделе Project types раскройте Other Languages, затем раскройте Visual C#, раскройте Smart Device, и наконец выберите Windows CE 5.0 (не беспокойтесь, 5.0 работает в 6.0). В разделе Templates справа выберите Device Application. Введите HelloCSWorld для имени Name нового проекта. Внимательно проверьте только что введенные настройки, и затем щелкните ОК.
(рис 7.29) Создание проекта C#
(рис 7.30) Создается новый проект HelloCSWorld и открывается окно разработки Forms
Через несколько секунд новый проект будет создан, и вы должны увидеть как появится изображение формы Forms, аналогично рисунке 7.30. В представлении обозревателя решения, обратите внимание, что был добавлен новый проект HelloCSWorld.
Когда создается проект, нужно добавить какой-то код. Сделайте щелчок правой кнопкой мыши на Form и выберите Properties. В свойствах Properties измените размер формы на 320 на 240, более подходящий размер для устройства с небольшой областью вывода. Область Form должна стать меньше, когда изменится размер.
Выберите View $$\Rightarrow$$ Toolbox, и Toolbox (Набор инструментов) должен появиться справа. Используя toolbox, выберите textbox (текстовое поле) и добавьте textbox на форму, затем выберите Button или добавьте кнопку в дизайн формы Form1, как видно на рисунке 7.31.
(рис 7.31) Текстовое поле и кнопка добавлены в форму Form с помощью toolbox
Затем нам нужно изменить свойства, связанные с новым текстовым полем и кнопкой в форме. Выберите текстовое поле в форме, сделайте щелчок правой кнопкой мыши и выберите Properties. Должно появиться окно Properties. В окне Properties измените текст окна свойства на "HelloCSWorld". Текст, выводимый в текстовой окне формы, должен измениться на "HelloCSWorld".
Затем нужно добавить код для ответа на событие нажатия кнопки. Выберите кнопку в окне формы (Forms). В окне Properties вы должны видеть теперь свойства кнопки. Вверху окна Properties должна выводиться небольшая иконка желтой молнии. Щелкните на иконке молнии. Затем сделайте двойной щелчок мышью на выделенной записи "Click", чтобы открылось окно кода.
Окно кода автоматически открывается в том месте, где должен выполняться код в ответ на событие нажатия кнопки. Мы изменим текст, выводимый внутри текстового поля в ответ на событие щелчка кнопки. Введите следующее в окно кода в позиции курсора:
textBox1.Text = "Goodbye";
Textbox1 является используемым по умолчанию именем первого текстового поля, а text является выводимым текстом. Поэтому, когда кнопка нажимается, текстовое поле должно вывести Goodbye.
Окно кода должно теперь выглядеть примерно как на рисунке 7.32.
Выберите Build $$\Rightarrow$$ Build HelloCSWorld, и новый проект будет быстро собран без каких-либо ошибок.
(рис 7.32) Ввод нового кода, который будет связан с событием нажатия кнопки
Теперь, когда была создана и успешно собрана новая программа приложения C#, следующий шаг состоит в развертывании (загрузке) нового приложения в целевое устройство для выполнения. Если используется VS для загрузки или отладки нового ядра ОС, то чтобы также отладить и развернуть C# (управляемый код), вам понадобится запустить второй экземпляр VS 2005, используя проект C#. Первый экземпляр VS будет занят загрузкой и отладкой кода C/C++ в ядре. Попытка отладки одновременно C/C++ и C# с помощью только одного экземпляра VS 2005 приведет к его зависанию в CE 6.0.
Для настройки обоих компьютерных систем для сетевого компонента Corecon, используемого для развертывания кода, требуется вначале выполнить несколько действий. Когда система настроена, вы сможете продолжить развертывание нового кода приложения, пока eBox не будет сброшен в исходное состояние, или приложение не приведет к аварийному останову eBox. Вначале надо выполнить несколько действий, поэтому будьте внимательны и не пропустите ни одного.
Если сборка выпуска MyOS еще не выполняется на eBox с предыдущего шага, то используя первый экземпляр VS присоедините целевое устройство, загрузите и выполните начальную загрузку сборки выпуска MyOS на eBox. Подождите пока выполнится начальная загрузка ОС (так же как в предыдущем уроке по сборке ОС).
Если eBox настроен для использования DHCP, необходимо определить присвоенный ему IP-адрес, который был получен при начальной загрузке (он может меняться всякий раз при выполнении начальной загрузки eBox). На целевой системе eBox используйте Start $$\Rightarrow$$ Run, затем введите CMD, и затем выберите OK, чтобы вывести окно команды Pocket на eBox. Введите ipconfig и отметьте IP-адрес, он понадобится позже. Это можно сделать также на ПК разработки в Windows CE
Если eBox настроен для использования статического IP-адреса, необходимо задать на eBox статический IP-адрес. На eBox выберите Start $$\Rightarrow$$ Settings $$\Rightarrow$$ Network and Dial-up Connections. Выберите иконку сетевого устройства в появившемся окне, сделайте щелчок правой кнопкой мыши и выберите свойства. Задайте статический IP-адрес и маску подсети (255.255.255.0) для eBox. Этот IP-адрес будет нужен позже.
Настройка в реестре также доступна для начального задания статического IP-адреса. Если вы не хотите настраивать сеть вручную, можно добавить следующее (подставляя ваш статический IP-адрес, адрес DNS, и адрес шлюза) в файл реестра Project.reg дизайна ОС (а не в Platform.reg ).
Конфигурирование вручную адреса IPv4
[HKEY_LOCAL_MACHINE\Comm\PCI\RTL81391\Parms\Tcpip]
"DefaultGateway"=multi_sz:"192.168.0.1"
"EnableDhcp"=dword:0
"DNS"=multi_sz:"192.168.0.1"
"IPAddress"=multi_sz:"192.168.0.128"
"SubnetMask"=multi_sz:"255.255.255.0"
Project.reg выводится, когда вы раскрываете в Обозревателе решения (Solution Explorer) "Parameter Files" и "ICOP_Vortex86_60B". Преимущество здесь состоит в том, что для записи реестра в новом проекте дизайна ОС нужно задать IP только один раз.
В любом случае, DHCP или статического IP, ПК системы разработки и целевое устройство должны быть в одной подсети (только последнее число (т.е., ".xxx") в IP-адресе может отличаться), чтобы развертывание работало.
Первый раз, так как вы должны подтвердить, что ПК системы разработки на самом деле находится в той же подсети, что и целевое устройство, выполните на ПК команду ipconfig ( Start =>Run _ введите _Cmd => щелкните _OK => введите ipconfig /all ).
Затем нужно задать настройки IP адреса целевого устройства в экземпляре VS 2005, который выполняет С#. Снова в VS 2005в окне обозревателя решения выберите HelloCSWorld. Сделайте щелчок правой кнопкой мыши и выберите Properties. В появившемся окне свойств HelloCSWorld выберите Devices. Отмените развертывание самой последней версии .NET Compact Framework (если вы включили ее в сборке ОС, так как это сократит время загрузки).
(рис 7.33) Первый шаг в настройке IP-адреса целевого устройства для кода развертывания
Выберите Tools $$\Rightarrow$$ Options, а затем в окне выбора раскрой те Device Tools и выберите Devices. Измените устройство для использования по умолчанию на MySDK x86 Device. Проверьте, что MySDK x86 Device выделено, как показано на рисунке 7.33 и нажмите кнопку Properties.
Появится новое окно, такое как на рисунке 7.34. Подтвердите настройки и щелкните на кнопке Configure рядом с TCP Connect Transport. В окне Configure TCP/IP Transport, показанном на рисунке 7.35 введите реальный IP-адрес, присвоенный eBox и щелкните OK три раза, чтобы выйти.
(рис 7.34) Второй шаг в настройке IP-адреса целевых устройств для развертывания
(рис 7.35) На последнем шаге вводим реальный IP-адрес целевого устройства
Теперь, когда соединения заданы, необходимо запустить коммуникационные компоненты Corecon, выполняющиеся на eBox, и подтвердить, что процессы выполняются.
В экземпляре VS 2005 с дизайном MyOS нажмите "ALT+1", чтобы вызвать окно Windows CE Command Prompt. В командной строке введите следующие три строки, как показано на рисунке 7.36, чтобы запустить Corecon.
s conmanclient2s cmacceptgi procЗатем проверьте, что процессы conmanclient2 и cmaccept находятся в появившемся списке процессов, чтобы убедиться, что они выполняются. Если они не работают, у вас могут отсутствовать в сборке ОС некоторые из пяти компонентов Corecon. После запуска cmaccept вы имеете три минуты для установления начального соединения. Для остановки Corecon используется ClientShutdown. Если активное соединение после установки прервется, попробуйте остановить и снова запустить Corecon.
(рис 7.36) Запуск компонентов Corecon, выполняющихся на целевом устройстве
Если в сборку ОС добавлен подпроект AutoLaunch, то он будет автоматически запускать компоненты CoreCon. Он добавляет записи реестра, необходимые для автоматического запуска компонентов CoreCon сразу после начальной загрузки ОС. Это реальная экономия времени, когда выполняется обширная отладка приложения. Смотрите подробнее в Приложении А.
Как другой вариант можно также запустить компоненты Corecon с помощью окна команд CE, выполняющегося на eBox. Для такого подхода откройте окно команд eBox ( Start $$\Rightarrow$$ Run, введите CMD, а затем щелкните OK). Вернитесь в окно команд eBox, введите Conmanclient2, повторите процесс для другого окна команд и выполните Cmaccept (здесь не вводится никаких "S" на eBox, нет команды "gi proc" для использования, и Cmaccept работает, но не возвращается в
Чтобы проверить, что все настроено правильно, в экземпляре VS с проектом C# HelloCSWorld выберите Tools $$\Rightarrow$$ Connect to device, затем выберите устройство MySDK и щелкните connect, как показано на рисунке 7.37.
Когда соединение будет успешно установлено, выводится сообщение "Connection succeeded", как показано на рисунке 7.38.
(рис 7.37) Выбор устройства MySDK для соединения
(рис 7.38) Компоненты Corecon выполняются на целевом устройстве и оно присоединено
Теперь, когда соединение было настроено, можно развернуть приложения на целевое устройство. Если возникают проблемы соединения, проверьте внимательно сетевые соединения и описанные ранее шаги настройки IP адреса. Вам может понадобиться остановить и запустить компоненты Corecon на eBox, если вы сделаете какие-либо изменения в настройке сети.
Вернитесь назад в окно представления обозревателя решения в экземпляре VS 2005 с вашим проектом C#, выберите проект HelloCSWorld, сделайте щелчок правой кнопкой мыши, и выберите Debug $$\Rightarrow$$ Start New Instance. Через несколько секунд проект должен развернуться без ошибок и еще через несколько секунд приложение должно загрузиться и запуститься на eBox, как показано на рисунке 7.39.
(рис 7.39) Новое приложение C# было развернуто и выполняется на eBox
На eBox щелкните на кнопке HelloCSWorld и проверьте, что сообщение в текстовом поле изменилось на "Goodbye", как показано на рисунке 7.40. Щелкните на красном символе X в верхнем правом углу окна для выхода. Окно должно закрыться.
Поздравляем, вы успешно разработали, скомпилировали, развернули и выполнили приложение C#. Все подробности о программировании приложений находятся за рамками этого документа, но существует ряд доступных прекрасных сетевых ресурсов и учебников о программировании C# и .NET Compact Framework.
Вернитесь назад в окно представления решения, просмотрите файлы проекта *.cs и обратите внимание на весь код, который был автоматически сгенерирован мастером проектирования Forms.
Когда система была правильно соединена и развернута, можно будет протестировать приложение, сделать изменения, и повторно развернуть новое приложение без изменения настройки, пока вы не перезагрузите eBox. Если вы перезагрузитесь, вам нужно будет повторить весь процесс настройки развертывания.
(рис 7.40) Текстовое поле нового приложения C# изменяется после нажатия кнопки
Когда вы разработали стабильное приложение, и хотите выполнять его без отладки и развертывания каждый раз, можно скопировать файл *.exe приложения на флэш-диск USB, внутренний флэш-диск, или плату CF и выполнить его на eBox без необходимости развертывать его каждый раз. Если вы хотите загрузиться с флэш-диска USB, просмотрите Приложение А.
Такой подход разработки SDK обычно используется на более крупных проектах, которым требуется несколько разработчиков приложений. SDK также иногда выпускаются производителями встраиваемых устройств, чтобы другие разработчики могли разработать код для их встраиваемых продуктов. Многие производители не хотят, чтобы конечные заказчики могли изменять ОС, так как это сделает поддержку очень трудной, если вообще возможной. Это типично для популярных потребительских устройствах, таких как сотовые телефоны и PDA.
Пока вы постоянно делаете изменения в ОС и выполняете ее пересборку на постоянной основе, то использованный здесь подход (делая приложение C# другим проектом) будет легче. Когда имеется стабильная сборка ОС, и не требуется поддержка для отладки, можно объединять ОС и проекты С# в одно решение в Visual Studio.
Когда имеется ОС и разработанный код приложения, eBox можно сконфигурировать для автоматической начальной загрузки новой ОС и даже для автоматического запуска выполнения приложений во время начальной загрузки. Она может выполнить начальную загрузку с внутреннего флэш-диска или с флэш-диска USB. Все детали настройки содержатся в лекции 10 и в Приложениях.
API CE GetTickCount. Что он делает?"Windows CE>" введите s osbench –all. Вывод из Osbench появится в окне вывода.TKTEST обратите внимание на использование функции RETAILMSG.TKTEST на ядре Small OS, которое соединено с ПК системы разработки. Проверьте, что базовые функции ядра Small OS работают, выполняя TKTEST на eBox.
Используя утилиту Platform Builder разработчики встраиваемых систем могут собрать специально настроенную ОС CE для своего устройства, которая включает только необходимые свойства. Platform Builder выполняется в знакомой среде Visual Studio IDE. Новую ОС можно загрузить в целевое устройство CE или эмулятор, и затем использовать его для отладки новой ОС и приложений устройства.
Каждое новое встраиваемое устройство нуждается в Операционной системе, специально настроенной для уникальных требований устройства. Включая только те драйверы и службы, которые требуются устройству, можно минимизировать размер ядра. Это ведет к меньшим требования памяти. Даже если экономия недостаточно большая, чтобы дизайнер мог для создания устройства перейти на менее дорогие устройства памяти, любое сбережение памяти тем не менее означает больше памяти, которая будет доступна для прикладных программ и хранилища.
В некоторых случаях экономия памяти может быть существенной. Минимальное ядро Windows Embedded CE требует примерно 400 Кбайт, а самое большое ядро с .NET Compact Framework для С#, полным набором устройств В/В, и полной поддержкой отладки требует более 40 Мбайт. Это различие в размере более чем на два порядка величины. Каждое новое устройство также, скорее всего, нуждается в нескольких драйверах устройств, которые были разработаны и/или настроены для этого конкретного устройства. Лицензионные отчисления ОС также могут быть существенно меньше для систем, которые не требуют некоторых важных свойств и служб (например, устройство без дисплея и без дополнительных приложений ОС).
Процесс сборки нового ядра операционной системы иногда называется Platform Builder, который выполняется в Visual Studio.
В Web доступно несколько коротких вводных видеозаписей по использованию CE по адресу http://msdn.microsoft.com/embedded. Их можно воспроизвести на настольном компьютере в медиа-плеере.
В Интернет доступна также серия вводных упражнений виртуальной лаборатории для Platform Builder системы CE, использующих ARM
Виртуальная лаборатория требует только установки небольшого элемента управления active X для импорта изображений в браузер. Требуется свободно доступная учетная запись паспорта Microsoft. Перед началом каждой лабораторной работы полезно распечатать или сохранить файл *.pdf руководства по лабораторной работе. Вы будете читать инструкции из руководства и вводить команды в инструментах. Небольшую ссылку на файл *.pdf можно найти в верхнем правом углу каждой лабораторной работы на последнем экране перед началом каждой лабораторной. Каждый сеанс лабораторной задает новый образ диска виртуального ПК на сервере со всеми установленными инструментами, и предоставляется 90 минут непрерывного времени лабораторной для выполнения каждой работы, прежде чем сервер прервет работу, поэтому убедитесь вначале, что имеете достаточно времени. Вы не сможете сохранить никакие файлы или перенести файлы назад с сервера на свой ПК. Доступно несколько виртуальных лабораторных работ, но три лабораторные особенно полезны для всех новичков CE. Первая лабораторная собирает ОС и выполняет ее на эмуляторе, а две другие выполняют все действия по разработке приложений C/C++ и C# и знакомит с инструментами отладки. Подробное описание трех этих виртуальных лабораторных работ представлено ниже.
Эта виртуальная лаборатория показывает процесс создания, настройки, сборки и отладки образа времени выполнения ОС Windows CE OS и знакомит со свойствами Platform Builder. Новый образ времени выполнения затем выполняется на поставляемом с CE эмуляторе устройства ARM.
Эта лабораторная работа показывает процесс создания образа операционной системы CE 6.0, которая поддерживает разработку приложений Win32 и MFC (Microsoft Foundation Classes), сюда включается сборка специального SDK (Software Development Kit) для поддержки разработки приложений на настроенном образе операционной системы, и будет использоваться Visual Studio 2005 для написания и развертывания простого приложения MFC на образе операционной системы, выполняющемся на эмуляторе ARM.
Эта виртуальная лабораторная работа показывает процесс создания образа операционной системы CE 6.0, который поддерживает разработку приложений .NET Compact Framework, и использует Visual Studio 2005 для написания и развертывания простого приложения .NET Compact Framework на образе операционной системы, выполняющемся на эмуляторе ARM.
Виртуальные лабораторные работы являются быстрым и легким способом начального изучения использования инструментов для CE на любом ПК. Пользователи без целевого оборудования eBox могут выполнять и отлаживать многие примеры, которые выполняются на эмуляторе ARM, используя инструкции, предоставленные в виртуальных лабораторных работах для компиляции кода для процессора ARM, и соединяясь с эмулятором ARM для загрузки разработки и кода новой ОС. Все примеры, которые требуют внешнего оборудования, не поддерживаемого эмулятором, такие как устройства В/В Phidgets USB будут работать неправильно.
Далее мы соберем новую ОС с помощью Platform Builder и запустим выполнение CE на реальном устройстве, eBox 2300.
Прежде чем переходить к учебному материалу, необходимо установить на ПК системы разработки несколько программных пакетов. Для системы разработки требуется Windows XP с памятью от 512K до 1G RAM и не менее 18 GB свободного доступного дискового пространства до установки программного обеспечения. Это оставит достаточно пространства для поддержки нескольких новых сборок ОС. Нам понадобятся следующие объекты, и они должны быть установлены в данном порядке:
Каждый дополнительный проект новой сборки ОС может использовать около 2 GB дискового пространства, поэтому может понадобиться очистить или удалить более старые проекты сборки ОС в некоторый момент, чтобы освободить дисковое пространство, если дисковое пространство ограничено. Очищенные проекты сборок ОС являются относительно небольшими и их всегда можно собрать заново. Начальная установка Visual Studio 2005 и требуемого пакета VS 2005 SP1 требует достаточно много времени, поэтому начинайте эти процессы установки, когда имеется достаточно времени для их завершения. После установки всего перечисленного программного обеспечения или проверки, что они уже установлены в системе разработки, вы будете готовы начать знакомство с учебным материалом.
ПРИМЕЧАНИЕ: Не забудьте отключить все антивирусное программное обеспечение на доступе к файлам. Отключите сканирование при доступе, или как минимум исключите его из проверки при доступе к основному каталогу CE. Используемым по умолчанию основным каталогом CE является C:\WINCE600, и сканирование вирусов при доступе к файлам этого каталога является основной проблемой. Каждая копия сборки ОС создает и открывает несколько тысяч файлов и проверка каждого из них на вирусы делает длинный процесс сборки ОС действительно слишком медленным.
ПРИМЕЧАНИЕ: Если имеется брандмауэр, выполняющийся в системе разработки, может понадобиться задать его, настроить или отключить, чтобы позволить eBox соединиться и взаимодействовать с настольным ПК через сеть. Сетевое соединение используется для загрузки нового кода и поддержки удаленных операций отладки.
Сетевое соединение ПК разработки и eBox должно быть в одной подсети, чтобы позволить выполнять удаленную загрузку и отладку на eBox. eBox должен иметь в сети включенный DHCP или иметь статический IP-адрес. Дополнительные подробности о сетевых параметрах настройки предоставлены далее.
В этом уроке мы подробно опишем все действия, необходимые для разработки полнофункционального ядра CE, которое выполняется на компьютере eBox 2300. Большое ядро, которое мы разработаем, будет включать средства и драйверы ОС, необходимые для выполнения всех демонстрационных программ в этом учебнике. Для специальных приложений, которые не используют все эти средства, неиспользуемые возможности ОС можно исключить и уменьшить размер ядра.
Инструменты разработки CE выполняются как подключаемый модуль в Visual Studio. Для начала процесса запустите Microsoft Visual Studio 2005. Когда Visual Studio запуститься, вы должны увидеть экран, подобный рисунку 7.1.
(рис 7.1) The Visual Studio 2005 IDE
В зависимости от среды разработки, выбранной во время процесса установки и используемой по умолчанию, вы можете увидеть слегка отличающийся информационный экран. Для CE VS 2005 IDE предоставляет поддержку для нескольких различных типов проектов, включая Console
Затем запустите новый проект сборки ядра ОС, выбирая File $$\Rightarrow$$ New $$\Rightarrow$$ Project. В левом столбце появившегося окна New Project, щелкните, чтобы выделить пункт Platform Builder for CE 6.0. Должно появиться изображение экрана, показанное на рисунке 7.2.
(рис 7.2) Создание нового проекта дизайна ОС
На правой стороне окна New Project щелкните на пункте OSDesign, чтобы выделить его. Введите MyOS в качестве имени нового проекта. Проверьте, что стоит флажок Create directory for solution (Создать каталог для решения). Щелкните OK, чтобы продолжить.
Через несколько секунд начинает выполняться Мастер проектирования (Design Wizard) Windows Embedded CE 6.0, как показано на рисунке 7.3. Он задаст несколько вопросов, а затем создаст новый проект дизайна ОС вместе с требуемыми файлами и каталогами. Щелкните Next, чтобы продолжить.
(рис 7.3) Мастер проектирования (Design Wizard) Windows Embedded CE 6.0
Затем мастер предлагает выбрать пакет поддержки платы (
ПРИМЕЧАНИЕ: Если этот
(рис 7.4) Выбор eBox 2300 BSP в Мастере проектирования
Затем мастер проектирования предлагает выбрать начальный шаблон дизайна. Шаблон дизайна задает параметры ОС в соответствии с базовым типом устройства. Каждый шаблон дизайна автоматически выбирает свойства и драйверы необходимые обычно для такого типа дизайна.
Вам все равно придется добавлять или удалять некоторые средства в каждом базовом типе устройства, но выбор ближайшего типа устройства ускоряет в дальнейшем процесс конфигурации ОС.
Выберите Industrial Device в качестве шаблона дизайна (Design Template). Industrial Device содержит полный набор средств, которые хорошо подходят для аппаратных функций eBox. Щелкните Next для продолжения.
(рис 7.5) Выбор шаблона дизайна в Мастере проектирования
Затем мастер проектирования предлагает выбрать вариант шаблона дизайна. Выводимые варианты зависят от выбранного шаблона дизайна. Рисунок 7.6 показывает варианты, которые выводятся для шаблона дизайна Industrial Device. Выберите Internet
(рис 7.6) Выбор варианта шаблона дизайна в мастере проектирования
Затем мастер проектирования предлагает выбрать несколько приложений и средств медиа, как показано на рисунке 7.7. Так как мы собираем большое полнофункциональное ядро, нам понадобятся большинство из представленных на экране вариантов выбора. Проверьте и/или выберите следующие средства:
Щелкните Next для продолжения.
(рис 7.7) Выбор приложений и средств медиа в мастере проектирования
Мастер проектирования затем предлагает выбрать несколько вариантов организации сети и коммуникации, как показано на рисунке 7.8. Здесь вполне подходят варианты по умолчанию, если только в устройстве не требуется поддержка беспроводной связи 802.11. Для 802.11 добавьте Wireless Local Area Network (802.11) в разделе Local Area Network. Щелкните Next для продолжения.
(рис 7.8) Выбор вариантов сети и коммуникации в мастере проектирования
В завершающем окне уведомления мастера проектирования щелкните просто на Finish и мастер через несколько секунд создаст начальный каталог проекта и файлы.
Когда мастер проектирования заканчивает настройку файлов нового проекта, он выводит предупреждения о безопасности для всех выбранных компонентов, которые могут создавать угрозу безопасности. Многие распространенные сетевые средства могут создавать потенциальные угрозы безопасности в ОС. Щелкните Acknowledge для продолжения. Если щелкнуть Cancel, то это средство будет исключено.
(рис 7.9) Предупреждения безопасности для выбранного свойства ОС
В данный момент задан начальный проект дизайна ОС. Файлы проекта находятся в основном каталоге дизайна ОС в папке с названием проекта. Для данного проекта их можно найти в каталоге, ..\WINCE600\OSDesign \MyOS.
Высокоуровневое решение позволяет объединять проект дизайна ОС с несколькими приложениями C/C++ и C# (которые называются подпроектами, а приложения C# появятся как проекты). Следующий шаг состоит в выборе всех отдельных компонентов, которые нужно дополнительно добавить в дизайн ОС. Проверьте, что выбрано представление объектов каталога, как показано на рисунке 7.10 в левом столбце. Обратите внимание, что вкладки внизу этого окна выбирают различные представления проекта.
(рис 7.10) Представление объектов каталога (левый столбец) используется для выбора отдельных объектов для ОС
Существует еще ряд полезных объектов, которые можно при желании добавить в новое ядро ОС. Чтобы добавить новый объект, необходимо просто найти его в окне представления каталога объектов и щелкнуть на нем. Всякий раз, когда вы не можете найти окно представления объектов каталога, его можно открыть снова, используя View $$\Rightarrow$$ Other Windows $$\Rightarrow$$ Catalog Items View.
Когда объект добавляется, появляется зеленый флажок. Другие объекты, которые могут требоваться вновь выбранному объекту, добавляются автоматически, и они указываются с помощью зеленого квадрата. Объекты, которые нельзя добавить, указываются красным восклицательным знаком. Например, несколько объектов доступно только для определенного типа процессоров.
Во многих случаях нужно будет раскрыть представление, чтобы найти объекты, щелкая на боксе со значком "+". Отметим, что имеется также полезное средство поиска вверху окна представления каталога объектов. Делая щелчок правой кнопкой мыши на каждом объекте, можно вывести свойства объектов или увидеть список других объектов, от которых он зависит.
Щелкните на боксе со значком "+", чтобы раскрыть представление требуемым образом, или используйте средство поиска для нахождения каждого объекта для выбора. Найдите каждый из следующих объектов каталога и выберите их, чтобы добавить в ОС (зеленый флажок), используя окно представления каталога:
Запустите Менеджера конфигурации (Configuration Manager), используя Build $$\Rightarrow$$ Configuration Manager. Должно появиться окно Менеджера конфигурации, как на рисунке 7.11. Проверьте, что ICOP_Vortex_60B_x86 Debug выбрана в качестве активной конфигурации. Для каждого проекта поддерживается два типа сборок ОС. Отладочная сборка включает много отладочных и статусных сообщений, которые будут полезны при первоначальном переносе ОС на новое устройство. Вариант без отладочных сообщений называется сборкой выпуска. Отладочная сборка требует примерно на 40% больше памяти и загружается значительно медленнее, так как она выводит много сообщений, но эти сообщения могут оказаться очень полезны, когда появляются какие-то проблемы.
В окончательно развернутой системе будет использоваться сборка выпуска. Можно переключиться в сборку выпуска, выбирая конфигурацию Release в менеджере конфигураций. Последний шаг сборки ОС должен повторяться для каждой конфигурации, если вам нужны обе. Для сборки выпуска некоторые из параметров отладки скорее всего не будут включаться. Закройте окно Менеджера конфигурации.
(рис 7.11) Менеджер конфигурации можно использовать для выбора сборки ОС отладки или выпуска
Перед сборкой ОС необходимо выбрать еще несколько параметров сборки. В левом столбце внизу выберите вкладку Solution Explorer, чтобы вывести представление решения проекта. Выберите MyOS, сделайте щелчок правой кнопкой мыши и выберите Properties. Когда появится окно страницы свойств, раскройте Configuration Properties и выберите Build Options. В окне страницы свойств, которое появится, как показано на рисунке 7.12, выберите следующие параметры сборки:
eboot в памяти ( IMGEBOOT=1 ). Этот параметр добавляет поддержку для отладки Ethernet, включая начальный загрузчик Ethernet в образ.IMGNODEBUGGER=1 ). Выберите перед сборкой образ времени выполнения, чтобы позволить отладчику соединиться с хост-устройством и передать информацию отладки из целевого устройства.IMGNOKITL=1 ). KITL, сокращение от Kernel Independent Transport Layer (Независимый от ядра уровень транспорта), предоставляет соединение отладки/загрузки между целевым устройством Windows CE и станцией разработки. KITL должен быть включен вместе с образом, чтобы использовать удаленные инструменты в VS2005 и Platform BuilderIMGRAM128 задается равной 1.Пока не щелкайте на OK! В этом окне необходимо выполнить еще несколько дополнительных операций.
(рис 7.12) Окно страниц свойств (Property Pages) используется для задания параметров сборки и переменных окружения
Переменные окружения системы сборки используются для включения и исключения различных объектов образа и настройки конфигураций памяти. Выберите далее Environment вместо Build Options в окне страницы свойств предыдущего шага. Существует критически важная переменная окружения, которую нужно теперь добавить, как видно на рисунке 7.13.
Щелкните на кнопке New…, введите IMGRAM128 для имени переменной (Variable), и введите 1 для значения Variable и щелкните OK. Задавая переменную IMGRAM128, получаемый образ активирует все 128M памяти, общий объем памяти RAM, которая предоставляется в eBox 2300. Могут возникать ошибки нехватки памяти и другие странные проблемы, если эта настройка будет задана неправильно.
Щелкните Apply и затем OK для завершения конфигурации.
(рис 7.13) Добавление переменной окружения с помощью окна страницы свойств
Другим примером переменной окружения, которую можно добавить при удобном случае, является IMGENFORA=1. Это включает драйвер модема сотового телефона для автономного модема Enfora SA-GL GSM/GPRS. Многие переменные окружения задаются автоматически как значения по умолчанию при выборе начального шаблона конструкции и при выборе объекта каталога вручную.
Теперь, когда все параметры сборки и настройки были выбраны, можно выполнить сборку нового образа ОС. В меню верхнего уровня выберите Build $$\Rightarrow$$ Build Solution. Утилита Platform Builder соберет теперь новый образ ОС вместе со всеми подпроектами, которые он может включать (т.е., решение). Процессу нужно проверить, скомпилировать, и скомпоновать тысячи файлов, и это потребует примерно 10-20 минут. Не забывайте, что активная программа антивирусной проверки, выполняющая сканирование доступа, заставит его выполняться на самом деле медленно. Внизу окна VS 2005 будут появляться сообщения системы сборки.
В самом низу окна выводится следующее небольшое анимированное битовое изображение, показывающее, что процесс сборки еще выполняется:
Наверно лучше не пытаться делать что-то еще в VS 2005 или каталогах ОС, и, возможно, даже на ПК во время длинной сборки. Очень легко заблокировать файл или ресурс, делая что-то еще, и это может приводить к ошибкам сборки. Если это произойдет, необходимо выполнить ReBuild (Повторная сборка). ReBuild очищает сначала файлы от предыдущей сборки и запускает новую сборку. Точно также, если не остановить сначала Отладчик (Debugger) перед запуском новой сборки, то это приведет к ошибкам сборки, так как в этом случае блокируются некоторые символьные файлы. Когда процесс сборки завершается, вы должны увидеть, что окончательная сборка выполнилась без сообщений об ошибках в области вывода внизу окна VS 2005 , как видно на рисунке 7.14.
(рис 7.14) Сборка ОС завершилась без ошибок
Когда процесс сборки завершается, генерируются получаемые файлы и помещаются в следующие каталоги сборки (предполагая, что используется место установки по умолчанию):
C:\WINCE600\OSDesigns\MyOS\MyOS\RelDir\ICOP_Vortex86_60B_x86_Debug
C:\WINCE600\OSDesigns\MyOS\MyOS\RelDir\ICOP_Vortex86_60B_x86_Release
После успешной сборки в указанных выше каталогах появится большой файл NK.BIN. Это новый образ ОС Windows Embedded CE 6.0.
Поздравляем, вы только что закончили сборку своего первого образа ОС времени выполнения для eBox 2300. Теперь мы посмотрим, будет ли он правильно загружаться и выполняться на eBox.
Если вы еще этого не сделали, присоедините источник питания, дисплей, клавиатуру, и мышь к eBox. Любая клавиатура ПК, мышь, громкоговорители и дисплей должны работать с eBox. Предоставляется кабель Y для соединения клавиатуры и мыши. Обратите внимание на небольшую иконку клавиатуры и мыши, отпечатанную на кабеле Y, так чтобы подключить каждый конец в правильное гнездо. Включите eBox, используя тумблер питания сзади (ниже кабеля питания), а затем нажмите кнопку на передней панели. Должен загореться зеленый LED-индикатор справа от кнопки передней панели. Проверьте, что он запускается, выводит сообщения BIOS, запускает MS DOS, и выводит меню начальной загрузки. Выключите eBox. Когда вам понадобиться отключить кабель питания от eBox, оттяните сначала черный ползунок на кабеле питания, чтобы отсоединить разъем от eBox.
Если у вас нет дополнительного дисплея и клавиатуры для eBox, или вы настраиваете устройство без таких средств, то Приложение удаленного вывода CE может экспортировать и выводить в окне на ПК системы разработки. Полный набор инструкций можно найти в Приложении В.
Для быстрой загрузки eBox обычно загружают с помощью сетевого соединения. Его можно загрузить с помощью статического IP-адреса или с помощью DHCP (назначенного сервером IP-адреса). Вместе с eBox поставляется перекрестный кабель, который может напрямую соединяться с сетевым соединением сзади ПК разработки. Это предполагает, что вы соединяетесь прямо с eBox, используя статический сетевой IP-адрес на eBox и на ПК системы разработки.
Если ПК в данный момент настроен для DHCP, то нужно будет присвоить ему статический IP-адрес для прямого сетевого соединения через перекрестный кабель, или он будет заблокирован, если нормальный кабель отключается. Это произойдет через несколько секунд после того, как он потеряет соединение с сервером DHCP.
eBox можно также присоединить через сетевой концентратор, используя DHCP или статический IP-адрес, но в большинстве случаев концентратор требует нормальный кабель (не перекрестный кабель). Использование настройки с концентратором имеет преимущества, так как все сетевые приложения, выполняющиеся на eBox, такие как браузер, могут по прежнему соединяться с Интернет.
В любом случае eBox и ПК разработки должны находиться в одной подсети (только три последние цифры IP-адреса могут различаться) для поддержки сетевого запроса BOOTME и для развертывания кода приложения. Дублирование IP-адресов вызывает большие проблемы в сетях и будет блокировать компьютеры, поэтому проверьте, что вы не выбрали IP-адреса, которые уже используются. Вам может понадобиться связаться со своим сетевым администратором, чтобы присвоить eBox статический IP-адрес, если вы соединяете его с концентратором, а не прямо с ПК системы разработки.
Если для соединения с eBox используется DHCP, некоторые защищенные серверы DHCP требуют, чтобы каждый адрес MAC был включен, прежде чем они ответят новому компьютеру. В этом случае нужно будет получить MAC адрес для eBox и связаться с сетевым администратором, чтобы он включил DHCP для нового устройства. Чтобы определить MAC адрес можно выполнить на eBox несколько программ. Вот один из способов получения MAC адреса. Включите eBox. Загрузите локальное ядро ОС (выберите вариант загрузки 1), подождите пока ОС загрузится, выберите Start $$\Rightarrow$$ Run, введите CMD, выберите OK, и затем введите ipconfig /all в окне консоли команд, и адрес MAC должен быть выведен. Можно также задать сетевое соединение eBox, используя вторую сетевую плату в ПК системы разработки. В любом случае, статического IP или настройки DHCP, не забудьте отключить все программы брандмауэры или настроить так, чтобы разрешить доступ к eBox. Активный брандмауэр может помешать коммуникации eBox с ПК системы разработки.
Отладочные и статусные сообщения посылаются через сетевое соединение. В большинстве случаев этих отладочных сообщений достаточно для диагностики проблем. Последовательный null-модемный кабель, поставляемый с eBox, можно использовать для вывода дополнительных отладочных сообщений, которые посылаются через последовательный порт COM1: eBox. Это может оказаться полезно при отладке устройства без сети.
Чтобы увидеть вывод отладочных сообщений на COM1:, соедините null-модемный последовательный кабель с COM1: на eBox и любым доступным портом COM на ПК системы разработки. Выполните Hyperterminal на системе разработки, чтобы вывести дополнительные
Одним из способов отключить
Когда различные вопросы сетевых соединений IP/DHCP будут разрешены, в Visual Studio 2005 необходимо настроить параметры соединения целевого устройства, так чтобы новый образ ОС можно было загрузить в целевое устройство. Выберите Target $$\Rightarrow$$ Connectivity Options, и должно появиться окно Target Device Connectivity Options, как показано на рисунке 7.15.
(рис 7.15) Настройка параметров соединения целевого устройства
Включите eBox-2300. Должен загореться LED-индикатор и начнут выполняться начальная загрузка и файлы DOS Autoexec.bat, и появится меню выбора, аналогичное следующему:
Если станция разработки и eBox-2300 соединяется c LAN со службой DHCP, выбирайте вариант 2, 3, или 4. Если eBox-2300 соединяется прямо со станцией разработки с помощью перекрестного кабеля Ethernet, выбирайте вариант 6, 7, или 8. Отметим различное разрешение дисплея в каждом случае. Если требуется для eBox использовать другой статический IP-адрес, выйдите в DOS и отредактируйте файл eBox Autoexec.bat для задания статического IP-адреса.
Вернитесь в окно Target Device Connectivity Options все еще открытое в системе разработки и щелкните на одной из кнопок настроек Ethernet. Должно появиться окно Ethernet Download Settings, как показано на рисунке 7.16. Каждое устройство eBox имеет уникальное имя устройства CEPCXXXX, где XXXX является уникальным номером, различным для каждого eBox. Когда устройство eBox посылает запрос BOOTME, который обнаруживает ПК системы разработки, оно появляется в окне Active target devices (Активные целевые устройства). Когда вы увидите, что оно там появилось, выберите его, и оно должно стать Target device boot name (Имя загрузки целевого устройства). Затем щелкните OK. Если оно не появится, перезапустите eBox и выберите вариант начальной загрузки. Если оно все равно не появляется, внимательно проверьте IP-адреса и все настройки брандмауэра. Оно должно появиться здесь, прежде чем вы сможете в него загрузить.
Если в подсети имеется несколько активных устройств eBoxe, то возможно соединение с неправильным устройством, так как в окне активных целевых устройств может появиться несколько. Если вы работаете в лабораторной среде с большим числом активных eBoxes, то при желании можно пометить каждое устройство eBox его номером CEPCXXXX, чтобы избежать какой-либо путаницы в большой лабораторной области.
(рис 7.16) Обнаружение и выбор CEPCxxxxx целевого устройства для загрузки
Когда вы увидите номер eBox CEPCXXXX и выберите его, щелкните на OK, чтобы выйти. Затем выберите Apply и Close.
Теперь вы готовы загрузить новый образ ОС в Ebox. В Visual Studio IDE выберите Target $$\Rightarrow$$ Attach Device. После нескольких секунд мелькающих окон должно появиться окно, показанное на рисунке 7.17. Это окно может быстро исчезнуть позади Visual Studio IDE, и вам может понадобиться вернуть его снова на передний план, выбирая объект Download в панели задач Windows в самом низу экрана.
Через несколько секунд целевое устройство должно начать загрузку и зеленая полоса индикатора выполнения должна начать движение, как показано на рисунке 7.18. Если ничего не происходит, перезапустите eBox и снова выберите режим начальной загрузки. Процесс BOOTME быстро заканчивается.
(рис 7.17) Присоединение целевого устройства для загрузки
(рис 7.18) Целевое устройство загружает новый образ ОС
После того как устройство загрузит весь образ ОС, вы должны увидеть
(рис 7.19) Дисплей целевого устройства говорит о том, что выполняется новый образ ОС
Когда появляется изображение, можно будет выбирать объекты с помощью мыши и клавиатуры.
Теперь, когда для eBox был разработан работающий проект дизайна ОС, мы добавим подпроект C/C++ "hello world". Вернитесь снова в Solutions View (Представление решений) в левом столбце Visual Studio IDE. Выделите последнюю запись, помеченную Subprojects. Сделайте щелчок правой кнопкой мыши и выберите Add New Subproject. В появившемся окне выберите WCE
(рис 7.20) Добавление подпроекта C/C++ MyHelloWorld в проект конструкции ОС
Щелкните Next для продолжения. Появится новое окно, аналогичное рисунку 7.21. Выберите A typical "Hello World" application (Типичное приложение "…"), затем щелкните Finish и весь код будет автоматически сгенерирован и помещен в новую папку подпроекта MyHelloWorld. Новая папка появится через несколько секунд снова в окне Solution Explorer.
(рис 7.21) Выбор типичного приложения C/C++ "Hello World" и генерация кода
Затем выделите запись подпроекта MyHelloWorld снова в окне Solution View в левом столбце Visual Studio 2005 IDE. Сделайте щелчок правой кнопкой мыши и выберите Build из всплывающего в ответ на это меню (Важное замечание: Не выбирайте Build из меню верхнего уровня, это приведет к повторной сборки всего, включая ОС, и будет как минимум минут на 10 дольше). Вариант Build, выбранный из контекстного меню при щелчке правой кнопкой мыши, компилирует только код подпроекта и тотчас же компонует его с существующим образом ОС.
Проверьте окно вывода, чтобы убедиться, что сборка прошла нормально. Если имеются ошибки в окне отладки, вы можете щелкнуть на этом сообщение об ошибке, чтобы перейти к соответствующей строке кода.
Предполагая, что все еще соединено и выполняется, выберите Target $$\Rightarrow$$ Reset Device. Устройство должно ответить, загружая новое ядро ОС с подпроектом. Если нет, используйте Target $$\Rightarrow$$ Detach Device, выключите eBox и снова включите, а затем повторите все начальные шаги для выбора варианта начальной загрузки на eBox и загрузки нового образа ОС времени выполнения в устройство. Когда ядро образа времени выполнения будет загружено и выполнит начальную загрузку, снова должно появиться изображение. В этот раз код нашего приложения "hello world" находится в eBox, и мы можем его выполнить. Следующий код генерируется для консольного приложения "hello world"
// MyHelloWorld.cpp : Определяет точку входа для консольного
// приложения
#include "stdafx.h"
int _tmain(int argc, TCHAR *argv[], TCHAR *envp[])
{
_tprintf(_T("Hello World!\n"));
return 0;
}
Этот код можно открыть для редактирования в Visual Studio, раскрывая подпроект MyHelloWorld, а затем раскрывая запись Source Files. Двойной щелчок на записи MyHelloWorld.cpp откроет код в окне редактора Visual Studio. Функция _tprintf печатает сообщения Unicode в окне консоли. Окно консоли появится только когда выполнится первый оператор printf. Окно консоли закрывается автоматически, когда происходит выход из программы. Это программа завершается сразу, поэтому нам нужно задать точку прерывания сразу после оператора _tprintf. Чтобы задать точку прерывания, сделайте щелчок левой кнопкой мыши на затененной полосе сразу слева от строки после оператора return со скобкой "}". Небольшая иконка точки прерывания должна появиться на затененной полосе. Если иконка не появится, вы сможете тем не менее выполнить отладку из предыдущего урока сборки, поэтому используйте Debug _ Stop Debugging и попробуйте еще раз.
(рис 7.22) Задание точки прерывания в приложении C/C++ "Hello World"
Для выполнения программы "hello world" выберите Target _ Run Programs. Просмотрите появляющиеся окна и найдите программу MyHelloWorld. Выделите строку MyHelloWorld.exe и щелкните Run. Через пару секунд должно открыться окно консоли на экране eBox и в конечном счете должно появиться "Hello World" маленькими буквами вверху окна консоли, как видно на рисунке 7.23.
(рис 7.23) Вывод окна консоли eBox во время выполнения приложения "Hello World" C/C++
В этом месте должна встретиться точка прерывания, и вы должны увидеть вывод, похожий на рисунок 7.24 в Visual Studio 2005 IDE. Обратите внимание, что иконка, связанная с точкой прерывания, изменилась. Эта новая иконка указывает, что код достиг точки прерывания.
Включение отладки ядра немного замедляет все операции. Когда разработка ядра немного стабилизируется, можно будет отключить отладку и выполнять сборки выпуска для тестирования приложений. Сборки выпуска будут загружаться и выполняться значительно быстрее. Когда встретится трудная проблема, можно всегда будет вернуться к отладочной сборке для дополнительного тестирования.
(рис 7.24) Остановка в точке прерывания в приложении C/C++ "Hello World"
После остановки программы в точке прерывания выберите Debug $$\Rightarrow$$ Start, чтобы продолжить после точки прерывания. Когда программа закончит выполнение, окно консоли на eBox должно закрыться.
Когда вы найдете проблемы для исправления, не забудьте остановить отладку с помощью Debug $$\Rightarrow$$ Stop Debugging перед запуском любой новой сборки. Отладчик блокирует некоторые символьные файлы во время выполнения, что будет приводить к ошибкам сборщика (Build). Когда вы остановите отладчик, возможно придется перезапустить eBox прежде чем загружать новый образ времени выполнения.
Теперь вы успешно добавили, скомпилировали, отладили и выполнили прикладную программу C/C++, которая была добавлена как подпроект в проект дизайна ОС.
Теперь, когда проект MyOS работает правильно и выполняет приложения, мы перейдем на использование сборки выпуска (Release Build) MyOS вместо большей, более медленной отладочной сборки (Debug). Это сделает начальную загрузку и выполнение приложений значительно быстрее. Запустите Visual Studio и откройте свой проект MyOS. В основном меню Tools item найдите самый левый раскрывающийся комбинированный бокс и выберите ICOP_Vortex86_60B Release, как показано на рисунке 7.25. Это приводит к переключению проекта MyOS на сборку Release. Если комбинированный бокс затенен, нужно будет сначала отсоединить eBox и остановить отладку.
Чтобы собрать версию выпуска, выберите Build $$\Rightarrow$$ Build MyOS. Через несколько минут сборка должна успешно выполниться без каких-либо ошибок.
Выполните описанные ранее действия, чтобы присоединить и загрузить новый образ ядра (версия Release) в eBox. Он должен быть меньше размером и запускаться быстрее, чем отладочный образ.
Основное окно Windows CE должно появиться на экране eBox, когда система запустится. Оставьте Visual Studio работающей, но отсоедините eBox. VS и проект MyOS снова понадобятся через несколько шагов, если вы собираетесь продолжить уроки в данный момент.
(рис 7.25) Переключение проекта MyOS на сборку Release
После создания специального дизайна ОС можно разработать пакет разработки программного обеспечения (SDK), используя этот дизайн ОС для распространения разработчикам приложений. SDK является множеством заголовочных файлов, библиотек, файлов соединения, файлов времени выполнения, расширений дизайна ОС, и справочной документации, которые разработчики могут использовать для написания приложений для специального дизайна ОС. Разработчики приложений, которые используют SDK, не обязаны понимать детали генерации нового ядра ОС. Содержимое SDK позволяет разработчикам создавать и отлаживать приложение на образе времени выполнения, собранном из существующего дизайна ОС.
Platform Builder можно использовать для разработки SDK на основе вашего специального дизайна ОС для установки на другой рабочей станции разработки.
Во время процесса разработки SDK утилита Platform Builder отслеживает базовые модули ОС, которые принадлежат дизайну ОС, исключая необходимость описывать модули и компоненты, содержащие технологии, которые должен поддерживать соответствующий SDK. Вместо этого Platform Builder включает заголовочные файлы и библиотеки, связанные с модулями и компонентами в вашем дизайне ОС в создаваемый SDK.
SDK используется для определения, какие меню, файлы, и приложения отладки выводить разработчику приложений, который создает программное обеспечение, предназначенное для вашего специального дизайна ОС. Эти инструменты используют также компоненты соединения для определения, как пересылать информацию из рабочей станции разработки на целевое устройство через транспортный уровень.
Чтобы помочь разработчикам использовать SDK, при создании SDK инструмент разработки SDK автоматически создает и включает справочный файл HTML, содержащий документацию, показывающую, какие API поддерживаются вашим специальным дизайном ОС.
Когда SDK устанавливается в Visual Studio, эта документация не появляется в оглавлении, но устанавливается на жестком диске разработчика. Прежде чем можно будет собрать SDK, необходимо создать новый SDK для дизайна ОС. Для использования SDK CE 6.0, проверьте, что у вас уже установлен Visual Studio 2005 SP 1 или более новая версия. Следующие действия создают новый SDK:
Platform Builder выводит расположение файла Microsoft Windows Installer (.msi) для SDK и информацию о процессе сборки.Когда новый SDK будет установлен в Visual Studio, вы сможете разрабатывать проекты автономных приложений C/C++/C# для целевой системы, компилировать код, и развертывать (загружать) через сетевое соединение код приложения в целевое устройство, выполняющее существующую ОС. После создания проекта, в Tools $$\Rightarrow$$ Options, выбранные для каждого проекта платформа и целевое устройство должны иметь имя платформы, использованное при генерации нового SDK, в данном случае MySDK.
На целевых устройствах без сети можно использовать коммуникационную программу ActiveSync на последовательном или USB-порте для развертывания кода из хост-системы разработки на целевую систему. Этот урок будет использовать более быстрое сетевое соединение.
Прежде чем можно будет развернуть и выполнить код, разработанный с помощью SDK, понадобиться выполнить начальную загрузку ОС на целевом устройстве и сконфигурировать настройку коммуникаций, использованных для развертывания кода на целевом устройстве.
Это настройка, которая отличается от той, которая использовалась при первоначальной загрузке ОС через сеть, так как в этом случае ОС уже выполняется. Эти шаги подробно объясняются после разработки простого приложения C# для использования при тестировании.
В этом уроке мы рассмотрим последовательность действий, необходимых для создания и сборки проекта C# с помощью нового SDK. Этот новый проект C# будет развернут в проект MyOS, созданный в предыдущих уроках.
Используя SDK, можно создавать проекты разработки автономных приложений C/C++/C#, которые не существуют как часть проекта ОС, но вам также нужно, чтобы сначала новая ОС уже была установлена в энергонезависимую память устройства, или нужно будет загрузить ОС в целевую систему, и чтобы ОС выполнялась. Требуется два экземпляра (копии) VS 2005 для поддержки отладки как C/C++, так и C#. Код C# развертывается (загружается) после начальной загрузки ОС, в отличие от предыдущих подпроектов C/C++, которые предварительно устанавливались в файл ядра NK.BIN.
Для поддержки приложений C# и разработки кода сборка ОС должна включать несколько объектов. Для развертывания разработанного кода как проектов используется другая настройка сетевой коммуникации, называемая Corecon. Corecon требует, чтобы в ядре ОС были установлены следующие 5 модулей поддержки:
ConmanClient2.exeCMaccept.exeeDbgTL.dllTcpConnectionA.dllClientShutDown.exeКомпонент каталога Corecon появляется в разделе Third Party в представлении каталога. Выберите компонент Corecon_X86 Files, чтобы включить эти модули в сборку ОС (Компонент Corecon ранее устанавливался как отдельный объект – если его там нет, смотрите раздел 7.2). Модули компонента Corecon являются частью VS 2005 SP1, но они добавляются в сборку ОС с помощью объекта каталога Corecon_X86. Corecon был включен в предыдущий урок сборки проекта MyOS.
В качестве альтернативы для устройств без какой-либо поддержки сети для развертывания кода можно использовать программу ActiveSync. ActiveSync может использовать для коммуникации последовательный или USB порт. Если используется ActiveSync, то программу устанавливается как на целевом устройстве, так и на ПК системы разработки. ActiveSync широко используется на Windows Mobile Pocket PCs и Smart Phones. Этот урок будет использовать Corecon и сетевой интерфейс для развертывания кода, так как он поддерживается на eBox и работает быстрее.
Требуется также, чтобы IP-адрес eBox был прочитан при использовании DHCP или задан в случае статического IP-адреса. Поэтому сборка ОС должна включать объект каталога поддержки сети TCP/IP и сетевых утилит (т.е., ipconfig и ping).
Для выполнения кода C# использует .Net Compact Framework. Можно определить загрузку .Net Compact Framework, когда развертывается код, но ОС тем не менее должна включать зависимости для объекта каталога Compact Framework. В большинстве случаев легче и проще просто включить объект каталога .Net Compact Framework в сборку ОС для поддержки приложений C# и не развертывать каждый раз заново модуль 8M .NET Compact Framework.
Если .NET Compact Framework развертывается на устройстве, используется файл CAB. В этом случае объект каталога CAB File installer/
При условии, что вы выполнили предложенные ранее действия при сборке MyOS, она должна уже включать все предыдущие компоненты, необходимые для поддержки развертывания C# и .NET Compact Framework, поэтому вам не придется собирать ее заново.
Мы выполним теперь действия по созданию простого проекта C#. Запустите второй экземпляр VS 2005 и выберите File $$\Rightarrow$$ new $$\Rightarrow$$ project. Будет выведен экран нового проекта, показанный на рисунке 7.29.
В появившейся форме в левом столбце в разделе Project types раскройте Other Languages, затем раскройте Visual C#, раскройте Smart Device, и наконец выберите Windows CE 5.0 (не беспокойтесь, 5.0 работает в 6.0). В разделе Templates справа выберите Device Application. Введите HelloCSWorld для имени Name нового проекта. Внимательно проверьте только что введенные настройки, и затем щелкните ОК.
(рис 7.29) Создание проекта C#
(рис 7.30) Создается новый проект HelloCSWorld и открывается окно разработки Forms
Через несколько секунд новый проект будет создан, и вы должны увидеть как появится изображение формы Forms, аналогично рисунке 7.30. В представлении обозревателя решения, обратите внимание, что был добавлен новый проект HelloCSWorld.
Когда создается проект, нужно добавить какой-то код. Сделайте щелчок правой кнопкой мыши на Form и выберите Properties. В свойствах Properties измените размер формы на 320 на 240, более подходящий размер для устройства с небольшой областью вывода. Область Form должна стать меньше, когда изменится размер.
Выберите View $$\Rightarrow$$ Toolbox, и Toolbox (Набор инструментов) должен появиться справа. Используя toolbox, выберите textbox (текстовое поле) и добавьте textbox на форму, затем выберите Button или добавьте кнопку в дизайн формы Form1, как видно на рисунке 7.31.
(рис 7.31) Текстовое поле и кнопка добавлены в форму Form с помощью toolbox
Затем нам нужно изменить свойства, связанные с новым текстовым полем и кнопкой в форме. Выберите текстовое поле в форме, сделайте щелчок правой кнопкой мыши и выберите Properties. Должно появиться окно Properties. В окне Properties измените текст окна свойства на "HelloCSWorld". Текст, выводимый в текстовой окне формы, должен измениться на "HelloCSWorld".
Затем нужно добавить код для ответа на событие нажатия кнопки. Выберите кнопку в окне формы (Forms). В окне Properties вы должны видеть теперь свойства кнопки. Вверху окна Properties должна выводиться небольшая иконка желтой молнии. Щелкните на иконке молнии. Затем сделайте двойной щелчок мышью на выделенной записи "Click", чтобы открылось окно кода.
Окно кода автоматически открывается в том месте, где должен выполняться код в ответ на событие нажатия кнопки. Мы изменим текст, выводимый внутри текстового поля в ответ на событие щелчка кнопки. Введите следующее в окно кода в позиции курсора:
textBox1.Text = "Goodbye";
Textbox1 является используемым по умолчанию именем первого текстового поля, а text является выводимым текстом. Поэтому, когда кнопка нажимается, текстовое поле должно вывести Goodbye.
Окно кода должно теперь выглядеть примерно как на рисунке 7.32.
Выберите Build $$\Rightarrow$$ Build HelloCSWorld, и новый проект будет быстро собран без каких-либо ошибок.
(рис 7.32) Ввод нового кода, который будет связан с событием нажатия кнопки
Теперь, когда была создана и успешно собрана новая программа приложения C#, следующий шаг состоит в развертывании (загрузке) нового приложения в целевое устройство для выполнения. Если используется VS для загрузки или отладки нового ядра ОС, то чтобы также отладить и развернуть C# (управляемый код), вам понадобится запустить второй экземпляр VS 2005, используя проект C#. Первый экземпляр VS будет занят загрузкой и отладкой кода C/C++ в ядре. Попытка отладки одновременно C/C++ и C# с помощью только одного экземпляра VS 2005 приведет к его зависанию в CE 6.0.
Для настройки обоих компьютерных систем для сетевого компонента Corecon, используемого для развертывания кода, требуется вначале выполнить несколько действий. Когда система настроена, вы сможете продолжить развертывание нового кода приложения, пока eBox не будет сброшен в исходное состояние, или приложение не приведет к аварийному останову eBox. Вначале надо выполнить несколько действий, поэтому будьте внимательны и не пропустите ни одного.
Если сборка выпуска MyOS еще не выполняется на eBox с предыдущего шага, то используя первый экземпляр VS присоедините целевое устройство, загрузите и выполните начальную загрузку сборки выпуска MyOS на eBox. Подождите пока выполнится начальная загрузка ОС (так же как в предыдущем уроке по сборке ОС).
Если eBox настроен для использования DHCP, необходимо определить присвоенный ему IP-адрес, который был получен при начальной загрузке (он может меняться всякий раз при выполнении начальной загрузки eBox). На целевой системе eBox используйте Start $$\Rightarrow$$ Run, затем введите CMD, и затем выберите OK, чтобы вывести окно команды Pocket на eBox. Введите ipconfig и отметьте IP-адрес, он понадобится позже. Это можно сделать также на ПК разработки в Windows CE
Если eBox настроен для использования статического IP-адреса, необходимо задать на eBox статический IP-адрес. На eBox выберите Start $$\Rightarrow$$ Settings $$\Rightarrow$$ Network and Dial-up Connections. Выберите иконку сетевого устройства в появившемся окне, сделайте щелчок правой кнопкой мыши и выберите свойства. Задайте статический IP-адрес и маску подсети (255.255.255.0) для eBox. Этот IP-адрес будет нужен позже.
Настройка в реестре также доступна для начального задания статического IP-адреса. Если вы не хотите настраивать сеть вручную, можно добавить следующее (подставляя ваш статический IP-адрес, адрес DNS, и адрес шлюза) в файл реестра Project.reg дизайна ОС (а не в Platform.reg ).
Конфигурирование вручную адреса IPv4
[HKEY_LOCAL_MACHINE\Comm\PCI\RTL81391\Parms\Tcpip]
"DefaultGateway"=multi_sz:"192.168.0.1"
"EnableDhcp"=dword:0
"DNS"=multi_sz:"192.168.0.1"
"IPAddress"=multi_sz:"192.168.0.128"
"SubnetMask"=multi_sz:"255.255.255.0"
Project.reg выводится, когда вы раскрываете в Обозревателе решения (Solution Explorer) "Parameter Files" и "ICOP_Vortex86_60B". Преимущество здесь состоит в том, что для записи реестра в новом проекте дизайна ОС нужно задать IP только один раз.
В любом случае, DHCP или статического IP, ПК системы разработки и целевое устройство должны быть в одной подсети (только последнее число (т.е., ".xxx") в IP-адресе может отличаться), чтобы развертывание работало.
Первый раз, так как вы должны подтвердить, что ПК системы разработки на самом деле находится в той же подсети, что и целевое устройство, выполните на ПК команду ipconfig ( Start =>Run _ введите _Cmd => щелкните _OK => введите ipconfig /all ).
Затем нужно задать настройки IP адреса целевого устройства в экземпляре VS 2005, который выполняет С#. Снова в VS 2005в окне обозревателя решения выберите HelloCSWorld. Сделайте щелчок правой кнопкой мыши и выберите Properties. В появившемся окне свойств HelloCSWorld выберите Devices. Отмените развертывание самой последней версии .NET Compact Framework (если вы включили ее в сборке ОС, так как это сократит время загрузки).
(рис 7.33) Первый шаг в настройке IP-адреса целевого устройства для кода развертывания
Выберите Tools $$\Rightarrow$$ Options, а затем в окне выбора раскрой те Device Tools и выберите Devices. Измените устройство для использования по умолчанию на MySDK x86 Device. Проверьте, что MySDK x86 Device выделено, как показано на рисунке 7.33 и нажмите кнопку Properties.
Появится новое окно, такое как на рисунке 7.34. Подтвердите настройки и щелкните на кнопке Configure рядом с TCP Connect Transport. В окне Configure TCP/IP Transport, показанном на рисунке 7.35 введите реальный IP-адрес, присвоенный eBox и щелкните OK три раза, чтобы выйти.
(рис 7.34) Второй шаг в настройке IP-адреса целевых устройств для развертывания
(рис 7.35) На последнем шаге вводим реальный IP-адрес целевого устройства
Теперь, когда соединения заданы, необходимо запустить коммуникационные компоненты Corecon, выполняющиеся на eBox, и подтвердить, что процессы выполняются.
В экземпляре VS 2005 с дизайном MyOS нажмите "ALT+1", чтобы вызвать окно Windows CE Command Prompt. В командной строке введите следующие три строки, как показано на рисунке 7.36, чтобы запустить Corecon.
s conmanclient2s cmacceptgi procЗатем проверьте, что процессы conmanclient2 и cmaccept находятся в появившемся списке процессов, чтобы убедиться, что они выполняются. Если они не работают, у вас могут отсутствовать в сборке ОС некоторые из пяти компонентов Corecon. После запуска cmaccept вы имеете три минуты для установления начального соединения. Для остановки Corecon используется ClientShutdown. Если активное соединение после установки прервется, попробуйте остановить и снова запустить Corecon.
(рис 7.36) Запуск компонентов Corecon, выполняющихся на целевом устройстве
Если в сборку ОС добавлен подпроект AutoLaunch, то он будет автоматически запускать компоненты CoreCon. Он добавляет записи реестра, необходимые для автоматического запуска компонентов CoreCon сразу после начальной загрузки ОС. Это реальная экономия времени, когда выполняется обширная отладка приложения. Смотрите подробнее в Приложении А.
Как другой вариант можно также запустить компоненты Corecon с помощью окна команд CE, выполняющегося на eBox. Для такого подхода откройте окно команд eBox ( Start $$\Rightarrow$$ Run, введите CMD, а затем щелкните OK). Вернитесь в окно команд eBox, введите Conmanclient2, повторите процесс для другого окна команд и выполните Cmaccept (здесь не вводится никаких "S" на eBox, нет команды "gi proc" для использования, и Cmaccept работает, но не возвращается в
Чтобы проверить, что все настроено правильно, в экземпляре VS с проектом C# HelloCSWorld выберите Tools $$\Rightarrow$$ Connect to device, затем выберите устройство MySDK и щелкните connect, как показано на рисунке 7.37.
Когда соединение будет успешно установлено, выводится сообщение "Connection succeeded", как показано на рисунке 7.38.
(рис 7.37) Выбор устройства MySDK для соединения
(рис 7.38) Компоненты Corecon выполняются на целевом устройстве и оно присоединено
Теперь, когда соединение было настроено, можно развернуть приложения на целевое устройство. Если возникают проблемы соединения, проверьте внимательно сетевые соединения и описанные ранее шаги настройки IP адреса. Вам может понадобиться остановить и запустить компоненты Corecon на eBox, если вы сделаете какие-либо изменения в настройке сети.
Вернитесь назад в окно представления обозревателя решения в экземпляре VS 2005 с вашим проектом C#, выберите проект HelloCSWorld, сделайте щелчок правой кнопкой мыши, и выберите Debug $$\Rightarrow$$ Start New Instance. Через несколько секунд проект должен развернуться без ошибок и еще через несколько секунд приложение должно загрузиться и запуститься на eBox, как показано на рисунке 7.39.
(рис 7.39) Новое приложение C# было развернуто и выполняется на eBox
На eBox щелкните на кнопке HelloCSWorld и проверьте, что сообщение в текстовом поле изменилось на "Goodbye", как показано на рисунке 7.40. Щелкните на красном символе X в верхнем правом углу окна для выхода. Окно должно закрыться.
Поздравляем, вы успешно разработали, скомпилировали, развернули и выполнили приложение C#. Все подробности о программировании приложений находятся за рамками этого документа, но существует ряд доступных прекрасных сетевых ресурсов и учебников о программировании C# и .NET Compact Framework.
Вернитесь назад в окно представления решения, просмотрите файлы проекта *.cs и обратите внимание на весь код, который был автоматически сгенерирован мастером проектирования Forms.
Когда система была правильно соединена и развернута, можно будет протестировать приложение, сделать изменения, и повторно развернуть новое приложение без изменения настройки, пока вы не перезагрузите eBox. Если вы перезагрузитесь, вам нужно будет повторить весь процесс настройки развертывания.
(рис 7.40) Текстовое поле нового приложения C# изменяется после нажатия кнопки
Когда вы разработали стабильное приложение, и хотите выполнять его без отладки и развертывания каждый раз, можно скопировать файл *.exe приложения на флэш-диск USB, внутренний флэш-диск, или плату CF и выполнить его на eBox без необходимости развертывать его каждый раз. Если вы хотите загрузиться с флэш-диска USB, просмотрите Приложение А.
Такой подход разработки SDK обычно используется на более крупных проектах, которым требуется несколько разработчиков приложений. SDK также иногда выпускаются производителями встраиваемых устройств, чтобы другие разработчики могли разработать код для их встраиваемых продуктов. Многие производители не хотят, чтобы конечные заказчики могли изменять ОС, так как это сделает поддержку очень трудной, если вообще возможной. Это типично для популярных потребительских устройствах, таких как сотовые телефоны и PDA.
Пока вы постоянно делаете изменения в ОС и выполняете ее пересборку на постоянной основе, то использованный здесь подход (делая приложение C# другим проектом) будет легче. Когда имеется стабильная сборка ОС, и не требуется поддержка для отладки, можно объединять ОС и проекты С# в одно решение в Visual Studio.
Когда имеется ОС и разработанный код приложения, eBox можно сконфигурировать для автоматической начальной загрузки новой ОС и даже для автоматического запуска выполнения приложений во время начальной загрузки. Она может выполнить начальную загрузку с внутреннего флэш-диска или с флэш-диска USB. Все детали настройки содержатся в лекции 10 и в Приложениях.
API CE GetTickCount. Что он делает?"Windows CE>" введите s osbench –all. Вывод из Osbench появится в окне вывода.TKTEST обратите внимание на использование функции RETAILMSG.TKTEST на ядре Small OS, которое соединено с ПК системы разработки. Проверьте, что базовые функции ядра Small OS работают, выполняя TKTEST на eBox.Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.