
- •Ввод-вывод на уровне технических средств компьютера. Программируемы ввол-вывод. Фрагмент программы управления скоростью двигателя. Пояснения
- •Прямой доступ к памяти (пдп – dma). Компоновка схемы пдп с использованием внешнего контроллера. Временная диаграмма пдп. Пояснения.
- •Побитное отображение устройств. Побитая карта устройств ввода-вывода в управляющем слове для выделенной памяти. Рисунок, пояснения
- •Обработка прерываний на уровне технических средств компьютера. Основные понятия и определения. Поддержка прерываний командами процессора.
- •Процесс обработки прерываний в системе с единственным прерыванием. Рисунок, пояснения.
- •Программируемый контроллер прерываний. Назначение. Рисунок, пояснение.
- •Обработка нескольких прерываний с использованием внешнего контроллера прерываний. Рисунок, пояснения. Фрагмент кода обслуживания на псевдоассемблере для 2х адресной архитектуры.
- •Согласование устройство и цп с помощью прерываний. Контроллер единственного периферийного устройства. Рисунок, пояснения.
- •Согласований устройство и ца с помощью прерываний. Несколько контроллеров соединенные с цп через пкп (программируемый контроллер прерываний)
- •Прерываемые инструкции. Сторожевые таймеры (Watchdog Timers)
- •Основы разработки встроенных систем. Типовая среда разработки с использованием кросс-платформы. Рисунок, пояснения.
- •Обзор компоновщиков и процесса компоновки. Создание файла образа для целевой системы. Рисунок, пояснения.
- •Основные функции компоновщика. Взаимосвязь между таблицей символов и таблицей перемещений (переадресации). Рисунок, пояснения.
- •Форматы исполняемых и компонуемых файлов. Рисунок, пояснения.
- •Форматы исполняемых и компонуемых файлов. Раздел заголовка и заголовок программы. Листинг, таблица типов разделов, пояснения.
- •Размещение исполняемых образов в памяти целевой встроенной системы. Командный файл компоновщика. Упрощенная схема и карта памяти целевой системы. Рисунок, пояснения.
- •Директивы компоновщика section и memory. Форматы директив, примеры использования
- •Инициализация встроенной системы. Общие положения.
- •Инструменты целевой системы передача образа. Общий вид целевой встроенной системы, размещенной на плате.
- •Встроенный загрузчик.
- •Встроенный монитор и целевое средство отладки.
- •Последовательность загрузки и выполнения образа после его перемещения из пзу в озу. Рисунок, пояснения
- •Последовательность загрузки и выполнения образа из озу после его передачи из хост системы. Рисунок, пояснения.
- •Инициализация программного обеспечения целевой системы. Программные компоненты целевой системы. Рисунок, пояснения.
- •Процесс инициализации программного обеспечения. Рисунок, пояснения.
- •Инициализация ос рв целевой системы.
- •Внутрисхемная отладка (отладка на чипе) целевой системы.
Программируемый контроллер прерываний. Назначение. Рисунок, пояснение.
Не все ЦП имеют встроенную возможность определять приоритеты для обработки нескольких типов прерываний.
Внешний контроллер прерываний может использоваться, чтобы ЦП, с возможностью обработки только одного прерывания, мог обработать прерывания от нескольких источников. Такие устройства обладают функциями назначения приоритетов и установки масок прерываний для различных уровней приоритетов.
Схема платы подобных устройств похожа на схему, используемую процессорами, которые могут обрабатывать несколько прерываний (рис. 10.3).
Дополнительное оборудование включает специальные регистры, такие как регистр вектора прерывания, регистр состояния, и регистр маски. Вектор прерывания содержит идентификационные данные запроса на
прерывание наивысшего приоритета; регистр состояния содержит значение прерывания с самым низким приоритетом, которое в настоящий момент будет выполняться; а регистр маски содержит битовую карту, которая или разрешает, или запрещает определенные прерывания.
Еще один специализированный регистр – регистр прерываний, который содержит битовую карту всех отложенных (зафиксированных, ждущих обработки) прерываний.
Программируемые контроллеры прерываний могут поддерживать большое количество устройств. Например, Intel 82093AA – усовершенствованный программируемый контроллер прерываний – поддерживает 24 программируемых прерывания.
Каждое из них может быть независимо установлено на срабатывание по уровню или по фронту, в зависимости от требований (потребностей) подключаемого устройства.
Подпрограмма обработчика прерываний опрашивает ПКП и предпринимает соответствующие действия.
Обработка нескольких прерываний с использованием внешнего контроллера прерываний. Рисунок, пояснения. Фрагмент кода обслуживания на псевдоассемблере для 2х адресной архитектуры.
Для конфигурации, показанной на рисунке 10.4, ЦП с возможностью обрабатывать только одно прерывание, совместно с контроллером прерываний может обрабатывать несколько прерываний.
Шаг 1: закончить выполняющуюся в данный момент команду.
Шаг 2: сохранить содержание счетчика команд по адресу возврата из прерывания.
Шаг 3: загрузить адрес, сохраненный по адресу обработчика прерываний в счетчик команд.
Продолжить цикл выборки-выполнения.
Следующий сценарий иллюстрирует сложность написания программного обеспечения для обработчика прерываний, и указывает на трудноуловимую (малозаметную) проблему, которая может возникнуть.
Обработчик прерываний выполняется по получении определенного (некоторого) сигнала прерывания, который вызван (инициирован) уровнем. Первая инструкция подпрограммы должна очистить прерывание, стробируя 1й бит из сигнала очистки прерывания. Команда intclr является отображаемым в памяти адресом, чей бит младшего разряда соединен с сигналом очищения прерывания. Последовательная запись 0, 1 и 0 является стробированием бита.
Хотя контроллер прерываний автоматически отключает другие прерывания при получении прерывания, код сразу же повторно запускается для обнаружения ложных (побочных). Следующий фрагмент кода иллюстрирует этот процесс для 2-адресной архитектуры псевдоассемблерного кода: