Группы флагов событий:служебные службы и структуры данных
Посмотреть серию раскрытых ОСРВ
В этой статье продолжается рассмотрение групп флагов событий.
Служебные службы группы флажков событий
Nucleus RTOS имеет три вызова API, которые предоставляют служебные функции, связанные с группами флагов событий:возвращают информацию о группе, возвращают количество групп флагов событий в приложении и возвращают указатели на все группы в приложении. Первые два из них реализованы в Nucleus SE.
Информация о группе флагов событий
Этот сервисный вызов получает выборку информации о группе флагов событий. Реализация Nucleus SE отличается от Nucleus RTOS тем, что возвращает меньше информации, так как именование объектов и порядок приостановки не поддерживаются, а приостановка задачи может быть отключена.
Вызов API Nucleus RTOS для получения информации о группе событий
Прототип сервисного вызова:
<цитата>
STATUS NU_Event_Group_Information (NU_EVENT_GROUP * группа,
CHAR * имя, UNSIGNED * даже t_flags, UNSIGNED * tasks_waiting,
NU_TASK ** first_task);
Параметры:
<цитата>группа - указатель на пользовательский блок управления группой флагов событий
имя - указатель на 8-ми символьную область назначения для имени группы флагов событий; это включает место для нулевого терминатора
event_flags - указатель на переменную, которая получит текущее значение указанной группы флагов события
tasks_waiting - указатель на переменную, которая получит количество задач, приостановленных в этой группе флагов событий
первая_задача - указатель на переменную типа NU_TASK который получит указатель на первую приостановленную задачу
Возврат:
<цитата>NU_SUCCESS - звонок был успешно завершен
NU_INVALID_GROUP - указатель группы флагов события недействителен
Вызов Nucleus SE API для получения информации о группе событий
Этот вызов API поддерживает ключевые функции Nucleus RTOS API.
Прототип сервисного вызова:
<цитата>
STATUS NUSE_Event_Group_Information (группа NUSE_EVENT_GROUP,
U8 * event_flags, U8 * tasks_waiting, NUSE_TASK * first_task);
Параметры:
<цитата>группа - индекс группы флагов событий, информация о которой запрашивается
event_flags - указатель на переменную, которая получит текущее значение указанной группы флагов события
tasks_waiting - указатель на переменную, которая получит количество задач, приостановленных в этой группе флагов событий (ничего не возвращается, если приостановка задачи отключена)
первая_задача - указатель на переменную типа NUSE_TASK который получит индекс первой приостановленной задачи (ничего не возвращается, если приостановка задачи отключена)
Возврат:
<цитата>NUSE_SUCCESS - звонок был успешно завершен
NUSE_INVALID_GROUP - недействительный индекс группы флагов событий
Внедрение Nucleus SE информации о группах событий
Реализация этого вызова API довольно проста:
* event_flags =NUSE_Event_Group_Data [группа]; #if NUSE_BLOCKING_ENABLE * tasks_waiting =NUSE_Event_Group_Blocking_Count [группа]; if (NUSE_Event_Group_Blocking_Count [группа]! =0) {индекс U8; for (index =0; indexФункция возвращает значение группы флагов события. Затем, если включена блокировка вызовов API, возвращается количество ожидающих задач и индекс первой (в противном случае эти два параметра устанавливаются на 0).
Получение количества групп флагов событий
Этот сервисный вызов возвращает количество групп флагов событий, настроенных в приложении. В то время как в Nucleus RTOS это будет меняться со временем, и возвращаемое значение будет представлять текущее количество групп, в Nucleus SE возвращаемое значение устанавливается во время сборки и не может быть изменено.
Вызов API Nucleus RTOS для подсчета групп флагов событий
Прототип сервисного вызова:
<цитата>UNSIGNED NU_Established_Event_Groups (VOID);
Параметры:
<цитата>Нет
Возврат:
<цитата>Текущее количество созданных групп флагов событий в приложении
Вызов Nucleus SE API для подсчета групп флагов событий
Этот вызов API поддерживает ключевые функции Nucleus RTOS API.
Прототип сервисного вызова:
<цитата>U8 NUSE_Event_Group_Count (недействительно);
Параметры:
<цитата>Нет
Возврат:
<цитата>Количество настроенных групп флагов событий в приложении
Реализация Nucleus SE подсчета групп флагов событий
Реализация этого вызова API почти тривиально проста:значение #define символ NUSE_EVENT_GROUP_NUMBER возвращается.
Встроенный
- Плюсы и минусы облака по сравнению с собственными службами
- Токен блокчейна Microsoft Azure и службы управления данными
- Структуры и классы в C ++
- Почтовые ящики:введение и основные услуги
- Семафоры:служебные службы и структуры данных
- Семафоры:введение и базовые услуги
- Группы флагов событий:введение и базовые услуги
- Очереди:введение и базовые услуги
- Apacer:во всем мире выпущены карты CV110-SD и CV110-MSD
- Группа OpenHW создала и анонсировала семейство ядер с открытым исходным кодом CORE-V