9. Создайте блок-схемы алгоритмов для каждой функции, используемой системой стабилизации частоты вращения двигателя, рассмотренной в разделе 7.4.5.
10. Разработайте методику испытаний системы стабилизации частоты вращения двигателя, основанную на восходящих методах проектирования.
1. Замените параллельный интерфейс цифро-аналогового преобразователя DAC0808LCN в устройстве управления лазерным проектором на последовательный в стандарте SPI. Внесите изменения в схему электрических соединений для ЦАП и также в текст функции move-laser (x,y) для программного обслуживания ЦАП.
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. Рассказ: официант — «живая» операционная система реального времени
В этой главе мы представим вам понятия, связанные с операционными системами реального времени. Начнем с притчи, чтобы показать некоторые ключевые моменты и концепции ОСРВ.
Я (Стивен Ф.Барретт) испытываю глубокое и подлинное уважение к профессии официанта. Я восхищаюсь умениями, связанными с этим трудным, часто неблагодарным ремеслом. Я был непосредственным свидетелем всех сложностей этой профессии, когда был старшеклассником средней школы. По вечерам и выходным я подрабатывал в качестве уборщика/посудомойки/помощника повара в офицерском обеденном клубе на авиабазе Минот, в Северной Дакоте. Вот тогда я с трепетом наблюдал за работой официантов. Так или иначе они были способны с успехом запоминать и выполнять требования людей за множеством столиков одновременно. Порой казалось, что они способны делать все сразу. Если случалось что-то необычное, например на обеде появлялся генерал со своей свитой, или ребенок опрокидывал на стол свой стакан молока, они сходу реагировали на эти непредвиденные события. И снова, даже при этих дополнительных покушениях на свое драгоценное время, они умудрялись каким-то образом следить за всеми событиями сразу. Они должны были одновременно следить за состоянием множества заказов на различных столиках и наличием блюд на кухне (например, знать, сколько еще осталось ежедневных удешевленных обедов). Для этого они должны были постоянно держать тесную связь с поварами.
А когда случались небольшие паузы, официанты успевали готовиться к работе следующего дня, протирая серебро или сворачивая салфетки и т.д. Да, при такой интенсивной работе эти талантливые люди, должно быть, очень крепко спали по ночам.
Через несколько лет мне пришлось работать в пиццерии в Беллевю, штат Небраска, где мне была предоставлена возможность сменить мое умение в приготовлении пиццы, на работу официанта в ресторане. Я продержался официантом два дня. А потом попросил администратора, разрешить мне возвратиться к моей кулинарной деятельности. Мне было гораздо легче работать поваром, чем официантом.