Программа обеспечивает проверку функционирования контроллера прерываний при обработке запросов на прерывания от периферийных устройств с помощью последовательного выполнения следующих тестов:
– Тест проверки контроллера прерываний при обработке запросов на прерывания от программируемого таймера.
– Тест проверки контроллера прерываний при обработке запросов на прерывания от SPI.
– Тест проверки контроллера прерываний при обработке запросов на прерывания от DMA.
Тест проверки контроллера прерываний при обработке запросов на прерывания от программируемого таймера.
Проверка функционирования контроллера прерываний при обработке запросов на прерывания от программируемого таймера производится в следующем порядке. Предварительно в регистр сравнения программируемого таймера заносится константа, задающая длительность интервала, который должен отсчитать таймер после старта, а в счётчик таймера заносится константа 0. Кроме этого обнуляется переменная, которая выполняет роль счётчика прерываний от таймера. Затем производится запуск таймера в режиме одиночного счёта и с отработкой прерывания после завершения счёта. После отсчёта заданного интервала времени таймер формирует запрос на прерывание, который должен быть обработан контроллером прерываний. В результате этой обработки должна быть запущена программа обработки прерывания от таймера, при выполнении которой инкрементируется счётчик прерываний от таймера. Тест считается успешно завершённым, если при завершении счёта таймера был сформирован запрос на прерывание, после обработки которого в конечном итоге значение счётчика прерываний увеличилось на единицу.
Тест проверки контроллера прерываний при обработке запросов на прерывания от SPI.
Проверка функционирования контроллера прерываний при обработке запросов на прерывания от SPI производится в следующем порядке. Предварительно SPI должен быть подготовлен для работы по внешней петле. При этом SPI должен быть настроен на работу в режиме по прерываниям. Задача программы обработчика прерываний заключается в чтении принятых символов из регистра данных SPI и инкрементировании переменной – счётчика прерываний от SPI. Программа обслуживания SPI передаёт в SPI заданное количество символов, после чего проверяется значение счётчика прерываний от SPI. Тест считается успешно завершённым, если количество прерываний от SPI совпало с количеством переданных в SPI символов.
Тест проверки контроллера прерываний при обработке запросов на прерывания от DMA.
Проверка функционирования контроллера прерываний при обработке запросов на прерывания от DMA производится в следующем порядке. Предварительно канал DMA должен быть настроен на обмены память – память в асинхронном режиме по прерываниям. В счётчик DMA заносится размер пересылаемого фрагмента памяти. Задача программы обработчика прерываний – инкрементировать счётчик прерываний при возникновении прерывания от DMA. Далее программа обслуживания DMA запускает канал DMA в работу и производит сканирование счётчика прерываний от DMA до момента изменения его значения. Тест считается успешно завершённым, если после пересылки заданного фрагмента памяти канал DMA формирует запрос на прерывание, в результате обработки которого запускается программа обработчика прерываний, которая в свою очередь увеличивает значение счётчика прерываний на 1.