- •Обработка прерываний на уровне технических средств компьютера. Основные понятия и определения. Поддержка прерываний командами процессора.
- •Процесс обработки прерывания в системе с единственным прерыванием.
- •Программируемый контроллер прерываний.
- •Обработка нескольких прерываний с использованием внешнего контроллера прерываний. Фрагмент кода обслуживания на псевдоассемблере для 2-х адресной архитектуры.
- •Срв. Некоторые определения в соответствии с Oxford Dictionary of Computing, Янгом и проектом pdcs.
- •Срв. Жесткие (hard), мягкие (soft) системы и системы квази-реального времени (firm).
- •Некоторые характерные области применения срв. Инерциальная система измерения параметров пространственного движения самолета.
- •Типы воздействий в срв. Обобщенная модель срв.
- •Типы воздействий в срв. Система управления процессами датчик/привод.
- •Некоторые характерные области применения срв. Связь дисциплины «срв» с другими инженерными дисциплинами.
- •5. Согласование устройств и цп с помощью прерываний. Контроллер единственного периферийного устройства. Рисунок, пояснение.
- •6. Согласование устройств и цп с помощью прерываний. Несколько контроллеров соединенные с цп через пкп (программируемый контроллер прерываний)
- •8. Теоретические основы операционных систем реального времени. Основные понятия и определения.
- •8. Операционные системы реального времени (ос рв). Роль ядер и псевдоядер в операционных системах.
- •9. Теоретические основы осрв
- •10. Процесс планирования
- •11. Характеристики задачи. Фактическая рабочая нагрузка.
- •12. Типичная модель задачи
- •13. Циклическое планирование. Смешанное планирование трех задач. Рисунок, пояснения.
- •14. Циклическая исполняющая система. Понятие кадра и основного цикла. Ограничения на размер кадра. Рисунок, пояснения.
- •15. Приоритетное фиксированное планирование с монотонной частотой. Основные результаты применения политики алгоритма монотонной частоты.
- •16. Основы разработки встроенных систем. Типовая среда разработки с использованием кросс- платформы. Рисунок, пояснения.
- •15. Системы, управляемые прерываниями. Программы обработки прерываний.
- •17. Псевдокод программы обслуживания стековой модели, описание функционирования.
- •18. Системы с вытесняющим приоритетом
- •20. Фоновая обработка. Программируемый сторожевой таймер (software watchdog timer).
- •21. Инициализация приоритетной/фоновой системы. Описание.
- •17. Обзор Компоновщиков и процесса компоновки. Создание файла образа для целевой системы. Рисунок, пояснения.
- •18. Таблица символов. Взаимосвязь между таблицей символов и таблицей перемещений (переадресации). Рисунок, пояснения.
- •19. Размещение исполняемых образов в памяти целевой встроенной системы. Командный файл компоновщика. Общее описание и примеры директив.
- •20. Упрощенная схема и карта памяти целевой системы. Листинги использования директив Memory и Section на примере карты памяти целевой системы.
- •21. Объеденение входных секций в исполняемом образе , пример (рисунок), код листинга примера.
- •22. Размещение исполняемого образа в памяти целевой системы. Рисунок, пояснение
- •23. Инициализация встроенной системы. Основные понятия и задачи.
- •24. Инструменты целевой системы и передача образа. Способы загрузки образа в целевую систему.
- •Прямой доступ к памяти (пдп/dma)
- •Ввод-вывод с использованием выделенной памяти
- •Побитное отображение устройств
- •26 Встроенный загрузчик
- •Вбудовані системи та системи реального часу
- •1::Введение. Основные концепции встроеных систем (вс) и систем реального времени (рв)::07.09.2010
- •2::Системы рального времени: некоторые определения, примеры и краткая история::14.09.2010
- •3::Операционные системы реального времени::21.09.2010
- •4::Системы управляемые прерываниями::28.09.2010
- •Обработка прерываний на уровне технических средств компьютера
- •Теоретические основы операционных систем рв
- •Основы разработки встроенных систем
20. Фоновая обработка. Программируемый сторожевой таймер (software watchdog timer).
Фоновая обработка
Динамические обслуживающие функции. В наборе динамических (run-time) обслуживающих функций встроенной ОС можно выделить вызываемые и фоновые функции. Состав вызываемых функций отражается интерфейсом прикладных программ. В качестве примеров вызываемых функций можно указать коммуникационные, запросы о текущем состоянии системы или отдельных программных компонент (задач), требования модификации состояний компонент, переключение режимов работы.
Примерами фоновых функций являются интерпретаторы статических графиков активизации задач, интерпретаторы графиков передачи сообщений. Еще один пример фоновой функции связан с работой караульного (alarm) механизма. Караульный механизм обеспечивает инициирование заданных системных событий (активизация задач, передача сообщений) при достижении неким системным счетчиком заданных значений. Системный счетчик может представлять показания какого-либо физического датчика – таймера, измерителя угла поворота и т.п. Для фиксации связи между определенным системным счетчиком, его конкретными показаниями и соответствующими системными событиями используются караульные элементы. Настройка караульных элементов может осуществляться либо статически, либо динамически. В последнем случае в состав вызываемых функций включаются операторы настройки караульных элементов.
Сторожевой таймер
Допустим, в нашей системе есть некий процесс, выполняющий какую-либо полезную задачу. Назовем его прикладным или наблюдаемым процессом. Если процесс выполняет важную целевую функцию, то прекращение егодеятельности может привести к остановке работы всей встроенной системы, то есть к сбою. Если не принять особых мер по обнаружению таких ситуаций, встроенная система может работать некорректно в течении достаточно долгого времени. Для вывода систем из сбойного состояния и приведения её в нормальный режим функционирования обычно используют сторожевой таймер. Таким образом, сторожевой таймер является механизмом защиты системы от сбоев.
Рассмотрим работу сторожевого таймера подробнее. В работе участвуют три процесса: наблюдаемый прикладной процесс, процесс сторожевого таймера и служебный процесс, реализующий механизм защиты системы от аварийных ситуаций. Суть механизма сторожевого таймера состоит в проверке критерия, по которому можно определить, что наблюдаемый процесс работает нормально. Если сторожевой таймер обнаруживает, что с наблюдаемым процессом все в порядке, то ничего не происходит. Если сторожевой таймер определил, что с наблюдаемым процессом что-то не так, происходит передача информации системе разрешения аварийных ситуаций, которая, в свою очередь, принимает решение о дальнейшей судьбе наблюдаемого процесса. В самом примитивном варианте в качестве сторожевого таймера выступает обычный вычитающий счетчик. Во время инициализации в счетчик записывается какое-либо значение. Если в процессе работы в счетчик эпизодически вносится новая константа, то ничего не происходит. Если же прикладной процесс не успевает записать константу, и счетчик успевает досчитать до нуля, вырабатывается сигнал аппаратного рестарта и процессор перезапускается. Естественно, простой вариант реализации сторожевого таймера не является 100% гарантией от выхода системы из сбойного состояния. Рассмотрим типичную ошибку, допускаемую программистами при использовании простого сторожевого таймера. Для того, чтобы контролируемый процесс прекратил работу, достаточно вставить код обновления счетчика сторожевого таймера внутрь цикла проверки, который будет всегда давать ложное значение из-за какой-либо ошибки (в аппаратуре или программе).
while( device_ready() == 0 ) reset_watchdog_timer();
Если функция device_ready всегда будет возвращать ноль, то мы бесконечное время будем сбрасывать сторожевой таймер, и система будет всегда находиться в состоянии сбоя.
Нужно заметить, что в большинстве микроконтроллеров реализована самая простая схема работы сторожевого таймера. Для её нормальной работы нужна дополнительная, сложная программная обработка.
Ещё одним неудобством простой схемы сторожевого таймера является выработка аппаратного сигнала рестарта (RESET). В большинстве случаев гораздо корректнее производить повторную инициализацию или рестарт одной или нескольких взаимосвязанных частей системы, а полный горячий рестарт осуществлять только при каких-либо фатальных сбоях.