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

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

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

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

В конце приложения мы включили файлы с примером, который Вы можете использовать. Если Ваш РС не имеет стандартной клавиатуры, msoft-совместимой мыши или видеокарты, поддерживаемой драйверами, используемыми в этих примерах, Вам понадобится модифицировать примеры так, чтобы они работали в Вашем окружении.

Когда Вы запускаете Photon в десктопном окружении, Вы бездумно набираете ph-сценарий, который выполняет за Вас всю работу. Этот сценарий:

  • запускает Photon

  • определяет Ваши устройства ввода

  • запускает драйверы ввода

  • определяет Ваше графическое устройство

  • переключается в соответствующий графический режим

  • запускает графический драйвер

  • запускает менеджер шрифтов с требуемыми шрифтами

  • запускает оконный менеджер

  • запускает менеджер рабочего стола.

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

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

Шаги по загрузке Photon'а

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

  1. Экспорт переменной окружения PHOTON_PATH.

  2. Запуск сервера Photon'а.

  3. Запуск драйверов ввода (мышь, клавиатура, чувствительный к касанию экран, прочая)

  4. Запуск менеджера шрифтов

  5. Переключение в графический режим

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

  7. Запуск оконного менеджера (необязательно)

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

Каждый из этих шагов требует определённых файлов, которые должны быть установлены в Вашей целевой системе. При чёткой предопределённости того, какие графические устройства Вы имеете и какие шрифты требуются Вашему приложению, Вы можете иметь абсолютный минимум числа файлов (и требуемого дискового пространства).

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

Шаг 1. Экспорт переменной окружения PHOTON_PATH

Переменная окружения PHOTON_PATH предназначена для хранения директории с установленным Photon'ом. По умолчанию это директория /usr/photon. Предполагается, что в ней располагаются по меньшей мере следующие поддиректории:

bin

Исполняемые файлы Photon'а

font_repository

Файлы шрифтов Photon'а и конфигурационные файлы (ОС-независимые)

palette

Графические палитры (ОС-независимые)

translations

Photon'овские файлы перевода международных языков (ОС-независимые)

Вы должны установить переменную окружения PHOTON_PATH:

export PHOTON_PATH = /usr/photon

Шаг 2. Запуск сервера Photon'а

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

Photon &

 Если в Вашем встраиваемом окружении имеется чувствительный к касанию экран или световое перо, Вы можете откорректировать значение ввода для событий указателя, задав опции D, -R и U. Например, для исключения случайного изменения позиции из-за того, что нажатие пальцем захватывает больше чем один пиксель, задайте опцию U. Более подробную информацию см. в описании Photon в книге "Справочник утилит QNX Neutrino".

Сервер должен располагаться в текущем PATH и путь должен быть определён до того, как команда будет запущена. В QNX Neutrino этим путём является /usr/photon/bin. Например:

export PATH=:/bin:/usr/bin:/usr/photon/bin

 Если загрузочный образ Вашей системы слишком велик из-за того, что Вы включили в неё Photon или другие исполняемые файлы, Вы можете смонтировать файловую систему, подождать её появления и затем загрузить исполняемые файлы из файловой системы на этапе загрузки. Более подробно см. описание утилиты mkifs в "Сравочнике утилит QNX Neutrino".

Если Вы включаете в ваш загрузочный образ какой-либо исполняемый файл Photon'а, Вы должны также добавить в переменную окружения MKIFS_PATH путь /usr/photon/bin

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

/usr/photon/bin/Photon

Шаг 3. Запуск драйверов ввода

Обычно для окружения в настольном компьютере Вы используете утилиту inputtrap, чтобы автоматически генерировать корректную командную строку и вызывать соответствующий драйвер devi-. Например:

kbd fd –d/dev/kbd msoft

Обычно Вы запускаете inputtrap, поскольку наперёд не знаете, какой должна быть соответствующая командная строка.

Во встраиваемых системах устройства ввода часто располагаются по необычным адресам, не поддаются PnP-идентификации или просто не поддерживаются существующими devi- драйверами. Кроме того, утилита inputtrap имеет склонность быть излишне большой и просто занимает драгоценную память в ограниченном окружении. Исходя из этих соображений, Вам обычно стоит задавать командную строку для драйвера devi- вручную. (Вы можете временно проинсталлировать утилиту inputtrap и использовать её для создания корректной командной строки.)

Вы можете настроить драйверы ввода для своих нужд, использовав набор инструментов Разработчика Драйверов Ввода (Input DDK). Например, Вы можете изменить размер базовой памяти или создать свой модуль для поддержки новых устройств.

Требующиеся файлы

Соответствующий драйвер devi- в директории /usr/photon/bin.

Шаг 4. Запуск менеджера шрифтов

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

Первым шагом является принятие решения о том, какие шрифты Вам нужны:

  • Очень вероятно, что Вам понадобится курсорный шрифт phcursor.phf.

  • Если Ваша встраиваемая система включает в себя терминал pterm, Вам потребуются семейства шрифтов PC Terminal (pcterm.phf), PC serif (pcs.phf) и/или PC Sanserif (pcss.phf). Вам, вероятно, понадобится также файл $HOME/.photon/pterm.rc или $PHOTON_PATH/config/pterm.rc, чтобы сконфигурировать шрифт терминала.

  • Большинство базирующихся на виджетах приложений предполагают, что следующие алиасы:

  • TextFont

  • MenuFont

  • FixedFont

  • BallonFont

  • TitleFont

определены, будучи соответствующим образом отображены в файле отображения шрифтов (fontmap).

  • Вэб-броузер требует следующие типы шрифтов:

  • шрифт основного тела (напр., PrimaSans BT , Dutch 801 Rm BT, прочая)

  • заголовочный шрифт (напр., Swis721 BT, прочая)

  • непропорциональный шрифт (напр., Courier 10 BT, PrimaSansMono BT, прочая).

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

Вы можете отобразить или подставить имена шрифтов, используя файл fontmap или раздел Mappings утилиты fontadmin. Более полную информацию см. в "Справочнике утилит QNX Neutrino".

Конфигурирование шрифтов

Вы можете конфигурировать шрифты во встраиваемых системах сами, но проще использовать систему разработки, чтобы сконфигурировать шрифты для встраиваемой системы и присоединить данные о шрифтах и конфигурационные файлы к соответствующей директории образа построения Встраиваемой Файловой Системы (EFS).

Например, предположим, что корневая директория этого образа –/usr/EKit/bsp/board/build/root (реальный путь зависит от Вашего окружения системы разработки). Измените Вашу текущую директорию так, чтобы ею стала корневая директория Вашей встраиваемой поддиректории:

export EKIT_DIR=/usr/EKit/bsp/board/build/root

cd /usr/EKit/bsp/board/build/root

Затем создайте поддиректорию шрифтов для Вашей встраиваемой системы. Например:

mkdir -p my_dir /font_repository

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

cp font_filename my_dir/font_repository (повторите для каждого шрифта)

cp /usr/photon/font_repository/font* my_dir/font_repository

cp /usr/photon/font_repository/phfont.ini my_dir/font_repository

mkfontdir -i $EKIT_DIR/my_dir/fontdir \

-d $EKIT_DIR/my_dir/font_repository

# ЗАМЕЧАНИЕ: утилита mkfontdir требует полный путь

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

Чтобы изменить соответствие шрифтов, вызовите утилиту fontadmin:

fontadmin -c my_dir/font_repository -d my_dir/font_repository

Если Ваш, исполняющийся при запуске сценарий вызывает особый сервер шрифтов (напр., phfontphf или phfontFA), вы не получите пользы от предварительной обработки файла fontopt утилитой phfont; Вам надо вручную передать каждую опцию, содержащуюся в этом файле, в командную строку.

Вы можете оттестировать установку шрифтов до построения встраиваемого образа, перезапустив Ваш сервер шрифтов настольной системы, указав ему новую конфигурацию (вызвав утилиту phfont с опцией -d, задавая поддиректорию шрифтов из построенного образа). Чтобы вернуться к первоначальным установкам, просто выполните:

phfont &

Запуск сервера шрифтов

Если Вы сведущи в том, какие возможности сервера шрифтов Вам требуются (масштабируемые PFR – portable font resourse – с помощью утилиты phfontpfr; или же простая поддержка побитовых отображений с помощью phfontphf), то Вы можете запустить непосредственно соответствующий сервер:

/usr/photon/bin/phfontphf &

Если файлов шрифтов нет в локальном образе, Вам надо задать директорию, содержащую эти файлы и конфигурацию, использовав опцию -d командной строки (либо для утилиты phfont, либо для реальных серверов phfontphf, phfontpfr и прочих):

/usr/photon/bin/phfontphf -d /fs/hd1-qnx4/my_dir/font_repository

Кроме того, если my_dir не является той, что и $PHOTON_PATH во встроенной системе, для правильного местоположения необходимо указать опцию -d.

Доступные серверы располагаются в /usr/photon/bin и включают в себя:

phfontphf

Только шрифты побитовых образов

phfontpfr

Поддержка масштабируемых поточнобитовых ресурсов переносимых шрифтов (Scalable Bitstream PFR) и набора TrueType

phfontFF

Поддержка масштабируемых TrueType, Type1, Type2, Bitstream Speedo (только retail кодирование) и Bitstream Stroke шрифтов

phfontFA

Поддержка всего вышеперечисленного

Шаг 5. Переключение в графический режим

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

В окружении встроенных систем эта информация должна быть предопределена. Процесс переключения между графическими режимами и запуск графического драйвера должен быть выполнен вручную непосредственно заданием команд без использования удобных инструментов, таких как "перехватчики" (trappers) и приложения, конфигурирующие дисплей.

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

В настольных системах в видеоBIOS'е вызывается код самотестирования при запуске BIOS и контроллер устанавливается в это время. Когда вызывается переключатель режимов, видеоконтролер находится в инициализируемом состоянии, так что переключателю режимов не требуется знать, как устанавливать контроллер. В дополнение к этому, многие переключатели режимов в настольных системах используют поддержку ядром виртуальной машины 8086 для исполнения кода в видеоBIOS для выполнения переключения режимов. Поддержка виртуальной машины 8086 доступна только для платформы х86.

Во встроенных системах, которые не используют BIOS, работа по установке видеоконтроллера ложится либо на код начального загрузчика программы (IPL code) (init_hw2), либо на переключатель режимов. Если система будет использоваться только в одном режиме, то код начального загрузчика обычно модифицируется таким образом, чтобы установить видеоконтроллер. Если предусмотрена поддержка более чем одного режима, используется специальный переключатель режима, который может полностью установить контроллер без использования ресурсов в видеоBIOS.

Установка карты в правильный режим

Есть несколько способов переключения карты в графический режим:

  • Поместить в код начального загрузчика код, который переключает в графический режим во время загрузки. В системах х86, имеющих видеоBIOS, это может быть достигнуто исполнением программного прерывания для вызова видеоBIOS'а. Например:

mov ah, 0 ; установить режим

mov al, 12h ; режим 0х12: 640х480, 16 цветов

int 10h

  • Написать программу-переключатель режимов, которая может быть выполнена при запуске Photon'а

  • Иметь динамически подсоединяемую библиотеку графических драйверов, выполняющую переключение режимов.

Если Вы решили переключать режимы с помощью DLL графических драйверов, возможно, что Вы решите использовать драйвер, предоставляемый либо QNX Software Systems, либо сторонними разработчиками.

Однако, если Вы хотите написать Вашу собственную программу переключения режимов, Вы, вероятно, найдёте полезным комплект разработчика графических драйверов (Graphics Driver Development Kit).

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

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

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

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