Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Читать онлайн Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 118 119 120 121 122 123 124 125 126 ... 150
Перейти на страницу:

2. Измените код, содержащийся в laser.с (раздел 7.2.6) таким образом, чтобы выбранный образ постоянно воспроизводился, пока не будет выбран другой.

3. Запишите функцию для каждого образа в laser.с (раздел 7.2.6).

4. Измените программное обеспечение для цифрового вольтметра, чтобы осуществить работу с 10-разрядным кодом оцифровки модулем ATD.

5. Разработайте и реализуйте метеостанцию с тремя каналами измерения: окружающей температуры, относительной влажности и барометрического давления. Отобразите каждую из измеренных величин через интервал в 3 секунды на ЖК индикаторе. Разработайте структуру программы, блок-схемы алгоритмов, код программы и методику проверки для метеостанции.

Глава 8

ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ ВЫ СМОЖЕТЕ:

• Подробно описать понятия и термины, касающиеся операционных систем реального времени, ОСРВ (RTOS — Real Time Operating System).

• Понять принципы работы ОСРВ.

• Различать жесткие, твердые и мягкие ОСРВ.

• Описать основные свойства записи, списков связей, стеков и очередей.

• Дать определение динамическому распределению памяти и описать связанные с ним преимущества и недостатки.

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

• Объяснить важность системных таблиц, блоков управления устройствами и диспетчера при реализации ОСРВ.

• Объяснить различия между алгоритмами планирования ОСРВ.

• Рассказать о проблемах, связанных с ОСРВ.

Операционные системы реального времени достаточно давно и успешно используются в промышленных программируемых контроллерах и во встраиваемых приложениях на основе 32-разрядных МК. Однако в настоящее время, в связи со значительного роста функциональности и быстро действии 16-разрядных МК наблюдается тенденция внедрения ОСРВ в системы на основе этой элементной базы. Поэтому авторы предлагают читателю познакомится с основными идеями, на основе которого строится ОСРВ.

8.1. Рассказ: официант — «живая» операционная система реального времени

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

Я (Стивен Ф.Барретт) испытываю глубокое и подлинное уважение к профессии официанта. Я восхищаюсь умениями, связанными с этим трудным, часто неблагодарным ремеслом. Я был непосредственным свидетелем всех сложностей этой профессии, когда был старшеклассником средней школы. По вечерам и выходным я подрабатывал в качестве уборщика/посудомойки/помощника повара в офицерском обеденном клубе на авиабазе Минот, в Северной Дакоте. Вот тогда я с трепетом наблюдал за работой официантов. Так или иначе они были способны с успехом запоминать и выполнять требования людей за множеством столиков одновременно. Порой казалось, что они способны делать все сразу. Если случалось что-то необычное, например на обеде появлялся генерал со своей свитой, или ребенок опрокидывал на стол свой стакан молока, они сходу реагировали на эти непредвиденные события. И снова, даже при этих дополнительных покушениях на свое драгоценное время, они умудрялись каким-то образом следить за всеми событиями сразу. Они должны были одновременно следить за состоянием множества заказов на различных столиках и наличием блюд на кухне (например, знать, сколько еще осталось ежедневных удешевленных обедов). Для этого они должны были постоянно держать тесную связь с поварами.

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

Через несколько лет мне пришлось работать в пиццерии в Беллевю, штат Небраска, где мне была предоставлена возможность сменить мое умение в приготовлении пиццы, на работу официанта в ресторане. Я продержался официантом два дня. А потом попросил администратора, разрешить мне возвратиться к моей кулинарной деятельности. Мне было гораздо легче работать поваром, чем официантом.

Так вот, официант — это классический пример операционной системы, реального времени (ОСРВ) — системы, которая должна реагировать на множество событий, пользуясь ограниченными ресурсами. Во встроенной системе управления, основанной на ОСРВ, мы имеем только одно устройство, последовательный процессор, которое должно обнаруживать множество событий, сортировать их по приоритетам, и реагировать на них соответствующим образом. При этом процессор не может обслуживать до полного завершения только событие с самым высоким приоритетом, игнорируя все остальные. Он должен каким-то образом реагировать на событие с самым высоким приоритетом в течение некоторого времени, а затем перейти к обработке другого события со следующим уровнем приоритета. Нетрудно представить себе, что ждет официанта, который всю свою энергию и внимание будет уделять только одному столику, игнорируя все остальные.

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

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

Наша цель в этой главе состоит в том, чтобы познакомить вас с понятиями и сложностями разработки ОСРВ системы. Будем считать, что вы не имеете никакой предварительной подготовки в этой области. Мы не предлагаем вам написать собственную ОСРВ, отказавшись от покупки готовой версии. Наша цель состоит в том, чтобы рассказать о понятиях и проблемах ОСРВ. А выбор между разработкой собственной системы и покупкой коммерческой версии мы оставляем за вами.

8.2. Что является целью ОСРВ?

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

Так что же такое операционная система реального времени? Согласно большинству фундаментальных определений, ОСРВ — это операционная система процессора, которая должна своевременно обрабатывать несколько событий при ограниченных ресурсах. Во встроенной системе управления целый ряд событий обрабатывается одним устройством — последовательным процессором. Операционная система должна обрабатывать многие, часто одновременные события, каждое из которых требует для своей для этого драгоценного времени. Так как мы используем одно устройство, последовательный процессор, он может выполнять в каждый момент только один шаг программы. Мы исследуем методы, которые позволяют так определить систему приоритетов событий, чтобы сначала были обработаны события с самым высоким приоритетом, но при этом другие события с более низким приоритетом не игнорировались.

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

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

Мы исследуем здесь широкий диапазон систем ОСРВ — от простых систем опроса (поллинга) до сложных, с несколькими различными прерываниями и рассмотрим также смешанные системы, которые являются комбинацией обоих типов систем. При простом опросе, операционная система регулярно проходит через ряд задач. Например, операционная система, контролируя местную защиту, могла бы последовательно циклически опрашивать состояние каждого датчика защиты в помещениях вашей фирмы. При этом система защиты как бы задает каждому датчику вопрос «А здесь все в порядке?» Система же, использующая несколько прерываний, вместо этого реагировала бы на события в тот момент, когда они случаются. Например, при активации датчика защиты, он вызывал бы тревогу в операционной системе через прерывание, показывая, что произошло некоторое важное событие, требующее реакции. Различие между двумя операционными системами заключается в том, что при поллинге, операционная система постоянно опрашивает состояния, а система, управляемая прерыванием, приводится в готовность, когда происходит некоторое ключевое событие. Важно подчеркнуть, что ни одна методика не лучше другой. Каждая имеет собственные преимущества и недостатки. В действительности важно, чтобы особенности каждой операционной системы соответствовали ее конкретному применению.

1 ... 118 119 120 121 122 123 124 125 126 ... 150
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт.
Комментарии