Компоненты и технологии • №2 '2011 компоненты


PRIORITY выше, чем conf igKERNEL



Pdf көрінісі
бет73/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   69   70   71   72   73   74   75   76   ...   129
Kurniz

PRIORITY выше, чем conf igKERNEL_
INTERRUPT_PRIORITY.
Рассмотрим пример. Пусть некий микро-
контроллер имеет 7 возможных приоритетов 
прерываний. Значение приоритета 7 соответ-
ствует самому высокоприоритетному пре-
рыванию, 1 — самому низкоприоритетному. 
Зададим значение conf igMAX_SYSCALL_
INTERRUPT_PRIORITY = 3, а значение 
configKERNEL_INTERRUPT_PRIORITY = 1 
(рис. 13).
Прерывания с приоритетом 1–3 не будут 
выполняться, пока ядро или задача выпол-
няют код, находящийся в критической сек-
ции, но могут при этом использовать API-
функции. На время реакции на такие преры-
вания будет оказывать влияние активность 
ядра FreeRTOS.
На прерывания с приоритетом 4 и выше 
не влияют критические секции, так что ниче-
го, что делает ядро в данный момент, не поме-
шает выполнению обработчика такого пре-
рывания. Обычно те прерывания, которые 
имеют самые строгие временны′е требования 
(например, управление током в обмотках 
двигателя), должны иметь приоритет выше, 
чем conf igMAX_SYSCALL_INTERRUPT_
PRIORITY, чтобы гарантировать, что ядро 
не внесет дрожание (jitter) во время реакции 
на прерывание.
И наконец, прерывания, которые не вы-
зывают никаких API-функций, могут иметь 
любой из возможных приоритетов.
Критическая секция в FreeRTOS — это уча-
сток кода, во время выполнения которого за-
прещены прерывания процессора и, соответ-
ственно, не происходит переключение кон-
текста каждый квант времени [7]. Подробнее 
о критических секциях — в следующей пу-
бликации.
рис. 11. Результаты выполнения учебной программы № 2
рис. 12. Последовательность выполнения задач и прерываний в учебной программе № 2




Достарыңызбен бөлісу:
1   ...   69   70   71   72   73   74   75   76   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет