2.4.5. Контроллер вложенных векторизованных прерываний
Контроллер вложенных векторизованных прерываний (КВВП) является стандартным блоком ядра Cortex. Это означает, что у любого Cortex-микроконтроллера будет присутствовать одна и та же структура прерываний, независимо от его производителя. Таким образом, прикладной код и операционные системы можно легко портировать с одного МК на любой другой и, при этом, программисту не потребуется изучение нового набора регистров. При разработке КВВП также учитывалось, что задержка реагирования на прерывание должна быть очень малой. Данная задача решена двояким образом: собственно возможностями КВВП, а также набором инструкций Thumb-2, многоцикловые инструкции которого, как например, инструкции многократного чтения/записи, являются прерываемыми. Задержка реагирования на прерывание то же является детерминистичной, что важно для систем реального времени. Как следует из наименования КВВП, им поддерживаются вложенные прерывания и, в частности, у МК STM32 используется 16 уровней приоритетов. Структура прерываний КВВП разработана с учетом программирования полностью на Си и исключает потребность в написании каких-либо ассемблерных макросов или специальных, несовместимых с ANSI, директив.
В процессор STM32 входит контроллер вложенных векторизованных прерываний, поддерживающий до 240 внешних УВВ
Несмотря на то, что КВВП является стандартным блоком ядра Cortex, в целях минимизации количества логических вентилей, разработчик МК может сконфигурировать количество линий прерываний, идущих к КВВП. Контроллер поддерживает одно немаскируемое прерывание и еще до 240 внешних линий прерывания, которые можно подключить к пользовательским УВВ. В ядре Cortex поддерживается еще 15 дополнительных источников прерываний, использующихся для обработки внутренних исключительных ситуаций ядра Cortex. Максимальное число маскируемых линий прерывания КВВП микроконтроллеров STM32 равно 43.
|