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


API-функции, предназначенные



Pdf көрінісі
бет104/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   100   101   102   103   104   105   106   107   ...   129
Kurniz

API-функции, предназначенные
для вызова из сопрограмм
Текущая версия FreeRTOS v7.0.1 поддер-
живает следующие API-функции, предназна-
ченные для вызова из сопрограмм:
crDELAY()

;
crQUEUE_SEND()

;
crQUEUE_RECEIVE()

.
Кроме этого, существуют еще API-функции 
crQUEUE_SEND_FROM_ISR() и crQUEUE_
RECEIVE_FROM_ISR(), предназначенные для 
вызова из обработчиков прерываний и вы-
полняющие операции с очередью, которая ис-
пользуется только в сопрограммах.
Все вышеперечисленные API-функции 
на самом деле представляют собой макросы 
языка Си, но для простоты будем называть 
их API-функциями.
Стоит подчеркнуть, что API-функции, 
предназначенные для вызова из сопрограмм, 
разрешено вызывать только непосредствен-
но из тела сопрограммы. Вызов их из других 
функций запрещен.
Префикс всех вышеперечисленных API-
функций указывает на заголовочный файл 
croutine.h, в котором эти API-функции объ-
явлены.
реализация задержек 
в сопрограммах
Для корректной реализации временных за-
держек внутри сопрограмм следует приме-
нять API-функцию crDELAY(), которая пере-
водит вызывающую сопрограмму в блоки-
рованное состояние на заданное количество 
квантов времени. Ее прототип:
void crDELAY( xCoRoutineHandle xHandle, portTickType 
xTicksToDelay );
Аргументы API-функции crDELAY():
1. xHandle — дескриптор вызывающей со-
программы. Автоматически передается 
в функцию, реализующую сопрограмму, 
в виде первого ее аргумента.
2. xTicksToDelay — количество квантов вре-
мени, в течение которых сопрограмма 
будет заблокирована. Если xTicksToDelay 
равен 0, то вместо блокировки сопрограм-
мы происходит переключение на другую 
готовую к выполнению сопрограмму.
Отдельно следует обратить внимание на вы-
зов crDELAY(), когда аргумент xTicksToDelay 
равен 0. В этом случае вызывающая 


Достарыңызбен бөлісу:
1   ...   100   101   102   103   104   105   106   107   ...   129




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

    Басты бет