Система прерываний. Предусмотрено одно немаскируемое прерывание и 32 физических прерывания общего назначения с 8 уровнями приоритета.

Предусмотрено одно немаскируемое прерывание и 32 физических прерывания общего назначения с 8 уровнями приоритета.

В то же время система прерывания с использованием встроенного в ядро Cortex-Mi векторного контроллера вложенных прерываний (NVIC - Nested Vector Interrupt Controller или КВВП) может обеспечивать от 32 физических прерываний с 8 уровнями приоритета до 240 прерываний с 256 уровнями приоритета (в зависимости от реализации конкретного микроконтроллера). Благодаря этому время входа в прерывание достаточно мало и всегда детерминировано, что позволяет использовать данные микроконтроллеры в автомобильных и других ответственных приложениях реального времени.

NVIC (КВВП) использует стековую модель работы. Программный счетчик, регистр состояния (статуса) программы, регистр связи и регистры общего назначения загружаются в стек при входе в обработчик прерываний. По выходе из обработчика содержимое регистров восстанавливается. Поэтому для сохранения данных при входе в обработчик прерываний и для восстановления данных при выходе из него нет необходимости работать вручную со стеком в ассемблерном коде.

Обработчики могут быть расставлены по приоритетам с целью обеспечения немедленного выполнения определенного прерывания, даже если в это время выполняется некое другое (с низшим приоритетом). Приоритеты могут меняться по необходимости в любом месте программы. Использование техники tail-chain позволяет не выполнять долговременные операции pop-push при последовательном выполнении нескольких прерываний, а просто при окончании цикла одного обработчика - «перепрыгивать» на начало следующего. И это занимает всего лишь 3 такта вместо 32 для полного цикла pop-push. Все это позволяет сократить задержки и увеличить производительность.

Для обеспечения минимального и детерминированного времени реакции на запрос прерывания, многоцикловые команды набора команд Thumb-2, как например, команды многократного чтения/записи, являются прерываемыми, что важно для систем реального времени.

Контроллер вложенных векторизованных прерываний (КВВП) является стандартным блоком ядра процессора Cortex (рис. 21.12).

 

 

Рис. 21.12.

 

Это означает, что у любого Cortex-микроконтроллера одна и та же структура прерываний, независимо от его производителя. Таким образом, прикладные программы и операционные системы можно легко переносить с одного микроконтроллера на любой другой и, при этом, программисту не требуется изучение нового набора регистров.

КВВП поддерживает вложенные прерывания.

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

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

Контроллер поддерживает одно немаскируемое прерывание и еще до 240 внешних линий прерывания, которые можно подключить к пользовательским УВВ. В ядре процессора CortexМ поддерживается еще 15 дополнительных источников прерываний, использующихся для обработки внутренних исключительных ситуаций ядра.

 








Дата добавления: 2015-09-29; просмотров: 792;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.