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



Pdf көрінісі
бет58/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   54   55   56   57   58   59   60   61   ...   129
Kurniz

Отложенная обработка 
прерываний
При проектировании встраиваемой 
микроконтроллерной системы на осно-
ве FreeRTOS необходимо учесть, насколько 
долго продолжается процесс обработки пре-
рывания. В самом простом случае, когда при 
обработке прерывания повторные прерыва-
ния запрещены, временные задержки в об-
работчике прерываний могут существенно 
ухудшить время реакции системы на собы-
тия. Тогда для выполнения продолжитель-
ных действий по обработке прерывания 
вводится так называемый «отложенный» ре-
жим их выполнения [5]. В процессе реакции 
на прерывание обработчик прерывания вы-
полняет только первичные действия, напри-
мер считывает данные. Затем львиную долю 
обработки берет на себя задача-обработчик 
прерывания. Такая организация обработки 
прерываний называется отложенной обра-
боткой. При этом обработчик прерывания 
выполняет только самые «экстренные» дей-
ствия, а основная обработка «откладывает-
ся», пока ее не выполнит задача-обработчик 
прерывания.
Двоичные семафоры
Двоичные семафоры предназначены для 
эффективной синхронизации выполне-
ния задачи с возникновением прерывания. 
Они позволяют переводить задачу из со-
стояния блокировки в состояние готовности 
к выполнению каждый раз, когда происходит 
прерывание. Это дает возможность перене-
сти б
óльшую часть кода, отвечающего за об-
работку внешнего события, из обработчика 
прерывания в тело задачи, выполнение кото-
рой синхронизировано с соответствующим 
прерыванием. Внутри обработчика прерыва-
ния останется лишь небольшой, быстро вы-
полняющийся фрагмент кода. Говорят, что 
обработка прерывания отложена и непосред-
ственно выполняется задачей-обработчиком.
Если прерывание происходит при возник-
новении особенно критичного к времени ре-
акции внешнего события, то имеет смысл на-
значить задаче-обработчику достаточно вы-
сокий приоритет, чтобы при возникновении 
прерывания она вытесняла другие задачи 
в системе. Это произойдет, когда завершит 
свое выполнение обработчик прерывания. 
Выполнение задачи-обработчика начинается 
сразу же после окончания выполнения об-
работчика прерывания. Создается впечатле-
ние, что весь код, отвечающий за обработку 
внешнего события, реализован внутри об-
работчика прерывания (рис. 1).
На рис. 1 видно, что прерывание преры-
вает выполнение одной задачи и возвращает 
управление другой. В момент времени (1) 
выполняется прикладная задача, когда про-


Достарыңызбен бөлісу:
1   ...   54   55   56   57   58   59   60   61   ...   129




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

    Басты бет