18+
реклама
18+
Бургер менюБургер меню

Владимир Волков – Программирование для карманных компьютеров (страница 2)

18

От издательства

Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

Подробную информацию о наших книгах вы найдете на веб-сайте издательства: http://www.piter.com.

Глава 1

Pocket PC с разных точек зрения

Внутреннее устройство Pocket PC

Если не брать в расчет сам факт миниатюрности и отсутствие некоторых привычных на настольном ПК устройств, таких как клавиатура и мышь, то можно считать, что Pocket PC является полноценным компьютером. Мало того, по своим параметрам он является куда более производительной машиной, чем многие, совсем недавно сошедшие со сцены компьютеры.

Как и в каждом настольном компьютере, сердцем Pocket PC является микропроцессор, установленный на материнскую плату и соединенный с различными периферийными устройствами при помощи шины. Поскольку основное достоинство Pocket PC это компактность и мобильность, то устройств, подключаемых к нему, существует не очень много. Сначала их вообще не было, но со временем все же появились мобильные клавиатуры и некоторые другие внешние устройства. Поэтому Pocket PC вполне следует известному изречению «все свое ношу с собой».

Большинство современных Pocket PC снабжено следующими устройствами и органами управления:

♦ TFT-экран. Для Pocket PC стандартным является размер 320x240 пикселов. Экран играет роль и клавиатуры, и мыши, поэтому для работы с ним в состав Pocket PC обычно входит стилус, при помощи которого осуществляется щелчок на определенной области экрана.

♦ Кнопка питания.

♦ Кнопка включения диктофона.

♦ Программируемые кнопки (кнопки приложений).

♦ Навигационная кнопка.

♦ Светодиоды индикации состояния батарей и соединений.

♦ Разъем подключения кабеля соединения с настольным компьютером.

♦ Слот для подключения расширений.

♦ Слот для подключения дополнительной памяти.

♦ IRDA-устройство для беспроводной связи на короткие расстояния в инфракрасном диапазоне.

♦ Антенна (если Pocket PC оснащен встроенным адаптером Wi-Fi для беспроводной связи).

♦ Микрофон.

♦ Микродинамик.

♦ Разъем для наушников.

♦ Кнопки мягкой и жесткой перезагрузки.

♦ Аппаратный регулятор громкости (присутствует только в некоторых моделях).

Внутри корпуса Pocket PC, как уже упоминалось, находится системная плата с установленным на ней микропроцессором и микросхемами дополнительных устройств. Также на материнской плате размещены платы памяти ROM и RAM.

Pocket PC производится множеством фирм на основе разных типов микропроцессоров. Несмотря на то что 80 % этих устройств работают с микропроцессорами ARM, среди наладонников присутствуют также устройства на чипах MIPS и SH. Средства разработки от Microsoft поддерживают создание программ для всех видов процессоров, включая x86, который применяется для запуска на эмуляторе, в то время как сторонние производители средств разработки ограничиваются каким-либо одним типом.

Более подробно о всех типах микропроцессоров, которые сертифицированы для работы с Windows CE, вы можете узнать на русском сайте Microsoft по адресу: http://www.msembedded.ru/processors.aspx.

Pocket PC с точки зрения программиста

Windows CE и Pocket PC

Для программиста общение с устройством – это прежде всего общение с его операционной системой. Даже те программисты, которые пишут драйверы на языке ассемблера, машинных кодах или языке C, все равно пишут их для определенной операционной системы.

Но ознакомившись с историей развития Pocket PC мы можем обнаружить, что с этими компьютерами связывают очень уж много названий операционных систем. В списке находятся Windows CE 2.11, Windows CE 3.0, Windows CE 4.0, Windows CE 4.1, Windows CE 4.2, Windows CE 5.0, Windows CE.NET, Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003, Windows Mobile 2003 SE и Windows Mobile 5.0.

Дело в том, что Windows CE – это модульная, настраиваемая в очень широком диапазоне операционная система, которая в своем чистом виде нигде не используется. Когда производитель создает устройство, то после окончательной компоновки всех комплектующих, определения установленных и подключаемых устройств, органов управления и всего спектра выполняемых функций, наступает этап сборки операционной системы. Из выбранной версии Windows CE создается операционная система для конкретного устройства. Эта операционная система практически собирается из модулей Windows CE как конструктор. В качестве отдельных деталей к ней добавляются модули, которые разрабатывает сам производитель устройства и, возможно, дополнительные приложения. Такая операционная система для Pocket PC в ее современном исполнении называется Windows Mobile for Pocket PC, а первые ее варианты назывались Microsoft Pocket PC. Версии Windows Mobile обычно меняются вместе с версиями Windows CE, из которых они собираются.

В таблице 1.1 показано, как соответствуют друг другу поколения устройств и версии соответствующих операционных систем.

Нельзя не признать, что Microsoft остается верной своей давней традиции обратной совместимости. Начиная с версии Windows CE 3.0, подавляющее большинство программ, созданных для более ранних версий, запускается и на более свежих версиях OS. Практически все программы, предназначенные для Pocket PC 2002, без особых проблем запускаются на Pocket PC 2003 без перекомпиляции, если при их создании были использованы обращения только к документированным возможностям программных интерфейсов.

Название Windows CE.NET является общим для всех версий Windows CE 4.x. Дело в том, что начиная с версии Windows CE 4.0, Microsoft объявила о включении в состав Windows CE своей новой технологии. NET в виде специального исполнения для встраиваемых устройств Compact Framework (CF). В версию Windows CE 4.0 CF была включена со статусом Beta, в версию 4.1 включалась окончательная реализация, а в версию 4.2 вошла уже. NET Framework service pack 2.

Несмотря на то, что Pocket PC – маленький компьютер и выглядит почти как детская игрушка, программирование для него является вполне серьезным делом. Операционная система Windows Mobile (Windows CE) предоставляет программисту подмножество функций Win32 API и других программных интерфейсов, с которыми программисту приходится взаимодействовать на настольном компьютере.

Достаточно простая схема, отображающая архитектуру операционной системы, приведена на рис. 1.1.

Рис. 1.1. Схема архитектуры Windows Mobile для Pocket PC.

Расшифровка терминов, использованных в этой схеме, приведена в следующем списке.

OAL (OEM Adaptation Layer) – минимальное программное обеспечение, необходимое для того, чтобы стандартное ядро операционной системы начало взаимодействовать с устройством. Обычно OAL включает в себя код загрузки ядра и набор нестандартных драйверов.

GWES (Graphics, Windowing, and Events Subsystem) включает в себя графический интерфейс устройства (GDI, Graphics Device Interface) и компоненты пользовательского интерфейса.

Windows CE предоставляет программисту богатейший набор разнообразных API, позволяющий взаимодействовать со всеми устройствами и подсистемами OS.

Core OS Interface отвечает за базовые операции операционной системы по управлению объектами ядра, памятью системы, сообщениями, системным временем, вызовами отладки, динамическими загружаемыми библиотеками.

Блок DLL содержит процедуры управления загрузкой и выгрузкой динамических библиотек, а также вызовом функций из них. Интерфейс Fiber предназначен для создания потоков, управляемых «вручную». В блок Memory Management входят процедуры и функции для управления распределением памяти. Интерфейс Power Management предназначен для управления потреблением электропитания. Интерфейс Message Queue Point-to-Point позволяет с минимальным использованием ресурсов осуществлять обмен сообщениями между окнами, устройствами и ядром. Блок Process and Thread отвечает за создание процессов и потоков, реализацию и управление многопоточной моделью.

Интерфейс Time обслуживет все системные потребности в определении времени, от получения и установки текущего системного времени до миллисекундного измерения временных интервалов. API ToolHelp используется для отладки, а API Pointer обеспечивает управление графическим курсором. Блок Stylus занимается организацией взаимодействия программы с командами, подаваемыми пользователем при помощи стилуса. Блок Authentication отвечает за управление безопасностью системы и занимается защитой от неавторизованного доступа. Он поддерживает механизмы авторизации и аутентификации, отвечающие протоколам NTLM и Kerberos. Блок Cryptography содержит механизм шифрования информации. Механизм опознавания систем, пользователей, приложений и сервисов, с которыми устанавливается контакт через сеть, управляется блоком Сertificates. Блок RAS API и Dial-Up Networking занимается установкой подключения к удаленному компьютеру, а через него к локальной или глобальной сети при помощи протокола PPP. В блоке Fonts содержится интерфейс управления системными шрифтами, а блок MLang отвечает за определение и преобразование текстовых ресурсов одной кодировки в другую. Интерфейс к функциям программно-организованной клавиатуры Pocket PC организован при помощи API Software-Based Input Panel (SIP API).