Смекни!
smekni.com

Программирование микропроцессорных систем (стр. 2 из 2)

Варианты организации планирования задач по приоритетам:

1. Использование слова запросов на выполнение задач.

Задача выставляет в слове запросов флаг запроса, после окончания выполнения любой задачи производится анализ запросов в слове запросов в соответствии с порядком убывания приоритетов задач. При обнаружении запроса система переходит к выполнению задачи имеющий наивысший приоритет.

Этот вариант чаще всего используют в сложных многопроцессорных системах с большим числом задач алгоритм организации планирования выполнения пяти задач с различными приоритетами с формированием и анализом слова запросов на их решение показан на рис.3.1

2. Использование системы вложенных прерываний.

Во втором случае выполняемая задача может быть прервана для выполнения задачи с большим приоритетом.

Этот вариант обычно используют в системах с небольшим числом задач (3 – 4 задачи). показан на рис.3.2

Р и с. 3.1. Организация планирования выполнения задач с различными приоритетами

с формированием и анализом слова запросов на их решение
(за время выполнения текущей задачи поступили запросы на решение от 1-й, 2-й и 5-й. После анализа слова состояния будет выполняться 1-я из них как задача, имеющая наивысший приоритет.)

Рисунок 3.2 Порядок выполнения задач по прерываниям, которые

имеют различные приоритеты (задачи в зависимости от важности распределены по шести уровням. Наивысшим по приоритету является уровень У1.

)

При проектировании специализированных микропроцессорных контроллеров применяется преимущественно последний вариант организации планирования.

Для организации прерываний могут использоваться:

Внешний таймер.(В том числе встроенные таймеры)

Дополнительный аппаратный контроллер прерываний из-за огра
ниченого числа прерываний реализованных в микроконтроллере.

Аппаратные контроллеры устройств индикации, ввода-вывода,
канала передачи данных.

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

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

Аппаратные контроллеры ввода-вывода, индикации, передачи данных позволяют задачам работать асинхронно получая доступ к задачам в интервал времени не занятый оперативной задачей.

4. X - 16-битное число без знака, находящееся в ОЗУ с начальным адресом ADR1, CONST - 16-битная константа. Выполнить вычитание X - CONST и занести результат в ОЗУ с адреса ADR2

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

; Вычитание из 2-Х байтного числа 2-байтной константы

; ADR1 – Начальный адрес числа Х

; ADR2 – Адрес Для выгрузки результата

; CONST – Постоянная.

ADR1 .EQU 100 H. ;выделяем адрес для числа – X

ADR2 .EQU 102 H. ;Выделяем адрес для сохранения - Z

ADRCONST .EQU 104H. ;Выделяем адрес для константы

CLRC ;Сброс флага

SUBXC:

MOV R0,#ADR1 ; Загрузка в R0 Начального адреса X

MOVR1,#ADRCONST ;Загрузка в R0 Начального адреса константы

MOVR2,# ADR2 ;Загрузка в R2 Начального адреса результата

MOVA,@R1 ;Загрузка в аккумулятор младшего байта константы

CPLA ;Преобразование в дополнительный код

INCA

ADD A,@R0 ;Вычитание младших байт

MOV @R2,A ;Сохранение младшего байта Разницы

INC R0 ;Переход к старшим байтам Х и Константы

INCR1

MOVA,@R1 ;Загрузка в аккумулятор старшего байта константы

CPL A ;Преобразование в обратный код

ADDC A,@R0 ;Вычитание старших байт

MOV @R2,A ;Сохранение старшего байта разницы