Главная » Просмотр файлов » Руководство программиста в Photon

Руководство программиста в Photon (953920), страница 71

Файл №953920 Руководство программиста в Photon (Руководство программиста в Photon) 71 страницаРуководство программиста в Photon (953920) страница 712013-09-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 71)

 В настоящее время все добавляемые нами драйверы требуют для корректной работы видеоBIOS. Некоторые драйверы для переключения видеорежимов выполняют вызовы в видеоBIOS. Эти драйверы работают только на системах платформы х86. Другие драйверы опираются на тот факт, что аппаратное обеспечение уже инициализировано (напр., во время загрузки через BIOS, загрузочное ROM или код начальной загрузки), тогда как третьи драйверы (напр., devg-banshee.so) способны сами инициализировать аппаратуру, но требуют информацию, хранящуюся в ROM BIOS'а. Если в Вашей целевой системе нет видеоBIOS'а, Вам, вероятно, понадобится индивидуально настроенный графический драйвер.

Шаг 6. Запуск графического драйвера

Графическая подсистема Photon'а запускается выполнением io-graphics. Вот несколько образцов вызова:

io-graphics -g640x480x8 -dldevg-vga.so -P/usr/photon/palette/vga4.pal

io-graphics -g1024x768x16 -dldevg-vesabios.so

io-graphics -g1024x768x16 -dldevg-rage.so -d0x1002,0x4755 -I0

Где опции означают:

-g

задаёт разрешение и глубину цвета выбранного видеорежима. Заметьте, что драйвер VGA пытается установить для io-graphics 8-битовую глубину цвета, даже когда устанавливает 4-битовый видеорежим из соображений производительности.

-dl

задаёт имя совместно используемого объекта графического драйвера, для того чтобы управлять графическим аппаратным обеспечением.

-d

требуется для драйверов, которые идентифицируют графическое аппаратное обеспечение по его идентификаторам PCI производителя и устройства.

-I

задаёт экземпляр PCI-устройства для подсоединения в случае, если в системе более одного графического устройства с одинаковыми идентификаторами производителя и устройства.

-P

задаёт для использования файл палитры; vga4.pal является палитрой, спроектированной для пользования в 16-цветном видеорежиме.

Более полную информацию об io-graphics см. в "Справочнике утилит QNX Neutrino".

Требуемые файлы

/usr/photon/bin/io-graphics

Запускает графическую подсистему

/lib/dll/devg-

Графические драйверы аппаратного уровня

/usr/lib/libdisputil.so.1

Библиотека программ-утилит, используемых драйверами devg-. Большинство графических драйверов скомпонованы с этой библиотекой.

/usr/lib/libffb.so.1

Библиотека программ растеризации, которые используют драйверы devg-. Большинство графических драйверов скомпонованы с этой библиотекой.

Шаг 7. Запуск оконного менеджера

Этот шаг необязателен, если используется лишь одно приложение или если Ваша встроенная система не требует услуг, предоставляемых оконным менеджером.

В настоящий момент известно только одно неподдерживаемое свойство: множество сообщений Ph_WM_CLOSE к неотзывающемуся приложению не будут выставлять сигнал SIGHUP к этому процессу (до тех пор, пока операция в стиле канал-"убить сеть" (channel-"netkill" – style operation) не будет добавлена в ядро).

Файл конфигурирования рабочего пространства ($HOME/.ph/wm/wm.cfg) может модифицироваться динамически с помощью утилиты pwmopts. Другим способом установки опций, не принятых по умолчанию, является установка через опции командной строки или через переменную окружения PHWMOPTS.

Персонализированное PWM-меню ($HOME/.photon/wn/wm.cfg) оконного менеджера, если оно используется, может озадачить, если команды подаются как абсолютные маршруты имён (абсолютные командные имена должны быть совместимыми для разных систем, обеспечивая совместимость переменной среды PHOTON-PATH). Станадартное меню PWM вызывает все команды из $PHOTON_PATH/bin. Заметьте, что для встроенных систем Вы можете полностью выключить это меню путём использования для pwm опции -W.

Необходимые файлы

/usr/photon/bin/pwm

Шаг 8. Запуск Вашего приложения

Если ваше приложение является единственным исполняющимся и не требует оконного менеджера, Вы можете линковать Ваше приложение как статическое – и Вам не нужна Photon'овская библиотека совместного доступа.

Если Вам требуется оконный менеджер или одновременно исполняются более одной программы Photon'а, лучше использовать Photon'овскую библиотеку совместного доступа.

Необходимые файлы

Файлы Вашего приложения.

Если Вашему приложению требуется библиотека совместного доступа –

/usr/photon/lib/libph.so

Пояснения

Замечено, что когда некоторые пользователи перемещают Photon в некую встраиваемую систему, они сталкиваются со следующими проблемами.

mkifs

По умолчанию утилита mkifs удаляет из исполняемых файлов имена ресурсов Photon'а. Чтобы избежать этого, задайте атрибут +raw для всех Photon'овских приложений.

Флэш-файловая система

На то, как Вы конфигурируете Photon, окажут влияние следующие особенности флэшевой файловой системы:

  • Сжатие и скорость

Поскольку флэш-файловая система замедляется при работе со сжатыми файлами, Вы, вероятно, захотите хранить записи ресурсов в отдельном файле, а не включать их в конец бинарного файла. Чтобы это сделать, измените makefile таким образом, чтобы ресурсы привязывались к отдельному файлу. Например, измените следующую зависимость:

$(ABOBJ) $(MYOBJ)

$(LD) $(LDFLAGS) $(ABOBJ) $(MYOBJ) -M -o mine

usemsg mine ../Usemsg

phabbind mine $(ABMOD)

на:

$(ABOBJ) $(MYOBJ)

$(LD) $(LDFLAGS) $(ABOBJ) $(MYOBJ) -M -o mine

usemsg mine ../Usemsg

phabbind mine.res $(ABMOD)

Вам также понадобится экспортировать переменную пути AB_RESOVRD, если записи ресурсов находятся не в той же директории, что и исполняемые файлы. Это исключает из поиска директорию, содержащую исполняемые файлы.

  • Поиск

Флэш-файловая система имеет ограничения на поиск и запись. Ваш код должен не допускать запись в середину файла.

 Процедуры, основанные на работе с конфигурационными файлами, с флэш-файловой системой не совместимы.

Графика

Во многих встроенных системах отсутствуют компоненты, обычные в настольных системах. Вот несколько тонкостей, которые можно ожидать:

BIOS ROMs

Поскольку многие переключатели режимов, поддерживаемые в Photon'е, требуют видеоBIOS для переключения графических режимов, возможно потребуется наличие BIOS'а на материнской плате. Справьтесь в QNX Software Systems по поводу того, доступна ли не BIOS-версия.

Текстовый режим

Photon не требует поддержки текстового режима, так что Вы можете убрать какие-либо установки, связанные с текстовым режимом.

Видеообласть

Память RAM можно сделать непрерывной, поскольку драйверы Photon'а не ограничены месторасположением видеообласти (напр., 0хА000). Вы можете разместить видеобуфер в любом месте памяти.

Различные проблемы

Вот ещё несколько замечаний по разным поводам:

Скорость процессора

В определённых встроенных системах производительность процессора будет ниже, чем в настольных системах. Вам надо учитывать это при разработке приложений Photon'а для встраиваемой среды.

Прокрутка

Если при щелчке на жёлоб прокрутки область прокрутки пролистывается вниз более чем на одну страницу, попробуйте увеличить значение задержки повтора мыши в Photon'е. Например:

Photon -D1000 &

Ввод

Вы можеет установить параметры синхронизации передачи данных и для ввода и для сервера Photon'а. Путём снижения скорости генерирования событий мыши Вы можете уменьшить траффик через систему Photon'а. На медленных 386 и 486 платформах общепринятой практикой является снижение дросселирования ввода с 10 до 20 мс.

Phindows и Phditto

Если разрабатываемое Вами приложение требует поддержки удалённой диагностики с помощью Phindows или phditto, Вам может понадобиться установить phrelay, библиотеку визуализации и файл конфигурирования служб.

Пример

Давайте рассмотрим шаги, связанные со встраиванием Photon'а для использования в неком встраиваемом устройстве. Нашей целью является построение системы Photon со следующими минимальными возможностями:

  • Масштабируемые TrueType шрифты – наименьший доступный набор, включающий обычный шрифт, наклонный и жирный наклонный.

  • Совершеннейший минимум, необходимый для работы графического драйвера под чипсет RageLT.

  • Необязательные мышь/клавиатура – мы должны быть в состоянии запускать и останавливать эту службу по мере надобности.

  • Необязательный оконный менеджер – мы должны быть в состоянии запускать и останавливать эту службу по мере надобности.

Встраивание Photon'а требует анализа ряда положений:

  • Требуемые бинарные файлы

  • Требуемые библиотеки (.so)

  • Требуемые шрифты

  • Требуемые серверы

  • Размещение их всех вместе

  • Полезные подсказки

Требуемые бинарные файлы

Первый шаг затрагивает проверку полной системы. Запустите Photon на Вашем компьютере.

Прсмотрите вывод команды pidin arg. Это вывод в Gateway Laptop, выбирающий для показа только компоненты, относящиеся к Photon'у:

pidin ar

pid Arguments

3620894 Photon

3665951 fontsleuth -d /usr/photon/font_repository

3727406 pwm

3657775 /usr/photon/bin/phfontFA -d /usr/photon/font_repository -j -s 300k

3698736 io-graphics -g1024x768x32 -dldevg-rage.so -I0 -d0x1002,0x4c42

3715121 devi-hirun kbd fd -d/dev/kbd ps2 kb -2

3772466 shelf

3809331 bkgdmgr

3809332 wmswitch

3809336 Xphoton -once

3809337 gtwm

Нам нужны только несколько программ:

  • Photon

  • phfontFA – см. обсуждение шрифтов ниже

  • io-graphics

  • pwm – только если нам нужно обслуживание оконного менеджера

  • devi-hirun – только если нам нужны мышь или клавиатура (или чувствительный к прикосновению экран); см. раздел "Драйверы ввода (devi-)" в сводке "Справочника утилит QNX Neutrino".

Для большинства встраиваемых систем другие компоненты являются совершенно необязательными:

fontsleuth

используется для автоматической установки шрифтов

shelf

Для "быстрого запуска" приложений. Она создаёт "полку" (по умолчанию по правой стороне экрана) для приложений, которые Вы можете запускать

bkgdmgr

Для рисования фоновой картинки экрана

wmswitch

Работает с pwm для обработки переключений между приложениями при нажатии Alt-Tab

Xphoton

Для запуска Х-приложений

gtwm

Xphoton-овский оконный менеджер

Сохраните список аргументов для Вашей системы в файле. Он нам позднее понадобится.

Требующиеся библиотеки

В нашей системе нам требуются только следующие компоненты:

  • Photon

  • photonFA (или аналогичный менеджер шрифтов – см. обсуждение шрифтов ниже)

  • io-graphics

  • pwm

  • devi-hirun

Посмотрим на вывод команды piding mem.

1048603 1 /photon/bin/Photon 10r RECEIVE 64K 120K 8192(516K)*

Характеристики

Тип файла
Документ
Размер
7,62 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее