Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Группы флагов событий:служебные службы и структуры данных


Посмотреть серию раскрытых ОСРВ

В этой статье продолжается рассмотрение групп флагов событий.

Служебные службы группы флажков событий

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 возвращается.


Встроенный

  1. Плюсы и минусы облака по сравнению с собственными службами
  2. Токен блокчейна Microsoft Azure и службы управления данными
  3. Структуры и классы в C ++
  4. Почтовые ящики:введение и основные услуги
  5. Семафоры:служебные службы и структуры данных
  6. Семафоры:введение и базовые услуги
  7. Группы флагов событий:введение и базовые услуги
  8. Очереди:введение и базовые услуги
  9. Apacer:во всем мире выпущены карты CV110-SD и CV110-MSD
  10. Группа OpenHW создала и анонсировала семейство ядер с открытым исходным кодом CORE-V