СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2010-5

ПРОГРАММИРОВАНИЕ 70 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 5 2010 создании потока и его текущий прио ритет, количество ресурсов, контекст регистров. Теперь осталось решить проблему порядка переключения задач и часто тыих переключения. При быстром пе реключении задач мы не будем успе вать считывать с экрана сообщения от обработчиков, поэтому сделаем так, чтобы они переключались один раз в секунду. Для этого мы будем создавать задачи с атрибутом RTEMS_TIMESLICE , который будет для каждой задачи вы делять определённый квант времени, по истечении которого она переклю чится на другую задачу с такимже при оритетом: name = rtems_build_name('T', 'A', 'S', '1'); // формируем имя потока status = rtems_task_create (name, 1, RTEMS_MINIMUM_STACK_SIZE, RTEMS_TIMESLICE, RTEMS_FLOATING_POINT, &id); Теперь необходимо задать число микросекунд на системный такт и чис ло тактов на квант времени для задачи: #define CONFIGURE_MICROSECONDS_PER_TICK 1000 #define CONFIGURE_TICKS_PER_TIMESLICE 1000 Один квант будет занимать 1000 × × 1000 = 1 000 000 мкс, или 1 с, т.е. планировщик RTEMS будет переклю чать задачи 1 раз в секунду. Пример работы приложения показан на ри сунке 1. С ТАТИСТИКА ИСПОЛЬЗОВАНИЯ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА ОСРВ RTEMS имеет компонент, от вечающий за сбор информации об использовании центрального про цессора – менеджер статистики ис пользования ЦП. Во время анализа и отладки приложений реального вре мени важно точно знать, какое коли чество времени центрального про цессора потребляет каждая из задач. RTEMS получает эту информацию, запоминая при каждом переключе нии контекста, сколько системных тактов выполнялась задача. Если за дача выполнялась меньше одного системного такта, то предполагает ся, что она заняла один такт. Прило жение может динамически «докла дывать» об использовании централь ного процессора при помощи вызова функции rtems_cpu_usage_re port . Также статистика может быть сброшена в любой момент времени вызовом функции rtems_cpu_us age_reset . Г РАФИЧЕСКИЙ ПАКЕТ P ICO TK В базовом виде RTEMS не включает в себя поддержку графического режи ма, однако для платформ i386 имеется несколько дополнений для RTEMS, позволяющих работать с графичес ким режимом. В этой статье речь пой дёт о графическом пакете PicoTK как о наиболее простом в настройке прик ладном интерфейсе. Как следует из названия, PicoTK яв ляется небольшим пакетом и служит для простого представления инфор мации, в отличие от других пакетов поддержки графики, таких как Qt / em bedded или NanoX , ориентированных на более сложный оконный интер фейс. Пакет PicoTK располагает следующи ми возможностями: ● поддерживает глубину цвета 1, 4 или 8 бит, соответственно 2, 16 или 256 отображаемых цветов; ● позволяет рисовать точки, линии, текст, битовые изображения; ● поддерживает разрешения 320 × 200, 640 × 480, 800 × 600, 1280 × 1024; ● имеет эмулятор для Linux/X11, ис пользующий механизм разделяемой памяти. Использование эмулятора значи тельно ускоряет этап разработки части приложения для RTEMS, отвечающей за графическое представление инфор мации, за счёт кросс компиляции и за пуска графического модуля приложе ния для RTEMS в ОС Linux. Эмулятор поддерживает разрешение 640 × 480. Эмулятор fbe (frame buffer emulator – эмулятор буфера кадра) работает по принципу последовательного чтения кадра из участка разделяемой памяти между собой и графическим приложе нием. Поступающее изображение из участка разделяемой памяти отобра жается через X Windows . Для установки PicoTK на ПК, где ве дётся разработка приложений для RTEMS, необходимо наличие X сервера и библиотек Xlib . RTEMS поддерживает PicoTK , начиная с бета версии 4.5.0. Рассмотрим особенности установки и настройки пакета PicoTK для работы с RTEMS. Помещаем архив с PicoTK в домаш нюю папку и распаковываем: $ tar xzf picotk xx.tgz Собираем PicoTK (компилируем из X, при сборке из текстовой консоли бу дет выдана ошибка): $ cd picotk $ make Запускаем пример приложения на PicoTK в эмуляторе: $ emulators/fbe & demo/demo Далее создаём статическую библио теку пакета PicoTK для RTEMS libP TKrtems.a : $ export PATH=$PATH:/opt/rtems 4.9/bin Рис. 1. Пример работы набора расширений © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy