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


рис. 1. Состояния сопрограммы 99



Pdf көрінісі
бет98/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   94   95   96   97   98   99   100   101   ...   129
Kurniz

рис. 1. Состояния сопрограммы


99
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 9 '2011
www.kite.ru
компоненты
микроконтроллеры
К функциям, реализующим сопрограммы, 
предъявляются следующие требования:
1. Функция должна начинаться с вызова API-
функции crSTART().
2. Функция должна завершаться вызовом 
API-функции crEND().
3. Как и в случае с задачей, функция никогда 
не должна заканчивать свое выполнение, 
весь полезный код сопрограммы должен 
быть заключен внутри бесконечного цикла.
4. Сопрограммы выполняются в режиме ко-
оперативной многозадачности. Поэтому 
если в программе используется несколько 
сопрограмм, то для того, чтобы процессор-
ное время получали все сопрограммы в про-
грамме, бесконечный цикл должен содержать 
вызовы блокирующих API-функций.
Создание сопрограммы
Для создания сопрограммы следует до за-
пуска планировщика вызвать API-функ-
цию xCoRoutineCreate(), прототип которой 
приведен ниже:
portBASE_TYPE xCoRoutineCreate(
crCOROUTINE_CODE pxCoRoutineCode,
unsigned portBASE_TYPE uxPriority,
unsigned portBASE_TYPE uxIndex
);
Аргументы и возвращаемое значение:
1. pxCoRoutineCode — указатель на функ-
цию, реализующую сопрограмму (факти-
чески — идентификатор функции в про-
грамме).
2. uxPriority — приоритет создаваемой со-
программы. Если задано значение боль-
ше, чем (conf igMAX_CO_ROUTINE_
PRIORITIES — 1), то сопрограмма 
получит приоритет? равный (configMAX_
CO_ROUTINE_PRIORITIES — 1).
3. uxIndex — целочисленный параметр
который передается сопрограмме при ее 
создании. Позволяет создавать несколько 
экземпляров одной сопрограммы.
4. Возвращаемое значение. Равно pdPASS
если сопрограмма успешно создана и до-
бавлена к списку готовых к выполне-
нию, в противном случае — код ошибки, 
определенный в файле ProjDefs.h (обычно 


Достарыңызбен бөлісу:
1   ...   94   95   96   97   98   99   100   101   ...   129




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

    Басты бет