СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2010-5
ПРОГРАММИРОВАНИЕ Все вместе, эти функции задаются в RTEMS структурой, содержащей ука затели на вызываемые функции поль зователя при обработке этих собы тий. Такая структура называется на бором расширений ( extension set ). Структура набора расширений поль зователя может быть задана при ком пиляции приложения и таким обра зом статически включена в таблицу конфигурации RTEMS, которая содер жит все ключевые данные о функци онировании системы (объём RAM, таблицу драйверов, максимальное ко личество ресурсов и т.д.). Такие обра ботчики будут активны в течение всей работы операционной системы. Помимо статического способа за дания таблицы расширений, RTEMS позволяет динамически устанав ливать и удалять свои обработчи ки переключения контекста. Обра ботчики пользователя могут быть использованы при мониторинге активности задач (профилирова ние), фиксировании моментов нас тупления неисправимых ошибок или при контроле состояния стека при переключении задач. Преиму щество динамически подключаемых обработчиков состоит в том, что они могут быть удалены «на лету», если, например, понадобится увеличить производительность системы. Недостатком динамического под ключения набора расширений яв ляется то, что зарегистрироваться в системе он сможет только после начального этапа инициализации RTEMS (функция initialize_execu tive ); таким образом, динамически подключаемыми наборами расши рений не удастся обрабатывать ошибки, возникающие на этапе инициализации системы. Это мо жет происходить при вызове функ ции rtems_fatal_error_occurred , ко торая сигнализирует о наступлении неисправимой ошибки и может вы зываться как из кода ядра RTEMS, так и из приложения. Отслеживать ошибки при инициализации RTEMS можно только при помощи стати ческого набора расширений, ко торый с самого начала инициа лизации RTEMS будет перехваты вать вызов функции rtems_fatal_ error_occurred . ОСРВ RTEMS позволяет несколь ким наборам расширений быть од новременно активными. Это обеспе чивает одновременную загрузку раз ных наборов расширений, каждый из которых будет выполнять опреде лённую задачу. При вызове функция пользователя будет получать в ка честве параметров указатель на системную структуру TCB (Thread Control Block – блок управления по током), которая содержит всю слу жебную информацию о потоке. Та ким образом, пользователь может ра ботать с этой структурой в целях отладки или расширения функцио нальности операционной системы. Динамический набор расширений создаётся функцией rtems_exten sion_create , принимающей в качестве параметров имя расширения, указа тель на таблицу обработчиков и ука затель на идентификатор расшире ния, который будет выдан в случае его успешной регистрации в систе ме. Удаляется динамически под ключаемый набор расширений в лю бой момент при помощи вызова rtems_extension_delete . 67 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 5 2010 ОФИЦИАЛЬНЫЙ ДИСТРИБЬЮТОР ПРОДУКЦИИ TDK LAMBDA Реклама Тел.: (495) 234 0636 • Факс: (495) 234 0640 • E mail: info@prosoft.ru • Web: www.prosoft.ru © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy