Я хочу знать, как события используются во встроенном системном коде.
Основное намерение состоит в том, чтобы узнать, как именно устанавливаются/сбрасываются флаги событий в коде. и как определить, какая задача использует какой флаг события и какие биты флага устанавливаются/сбрасываются каждой задачей.
Пожалуйста, оставьте свое предложение или комментарии по этому поводу.
Заранее спасибо.
(изменить 1: скопировано из разъяснения в ответе ниже)
Извините, что не указали необходимые детали. На самом деле меня интересует анализ любого приложения, написанного на языке C с использованием ОС vxworks/Itron/OSEK. Например, в vxworks есть библиотека eventLib для поддержки обработки событий. Я хочу знать, как можно использовать такие системные процедуры для обработки событий в задаче. Что такое флаг события (это глобальный/локальный... или что?), как установить биты любого флага события и какая может быть возможная связь между флагами задачи и события??
Как задача может ожидать нескольких событий в режимах И и ИЛИ?? Мне попался один пример, в котором приведенный ниже сценарий выглядит опасным, но почему??
Scenarios is ==> *[Task1 : Set(e1), Task2 : Wait(e1) and Set(e2), Task3 : Wait(e2) ]*
Я знаю, что несколько флагов событий, ожидающих одной задачей, или циклическая зависимость между несколькими задачами (тупиковая блокировка) являются опасными случаями в отношениях задача-событие, но насколько вышеприведенный сценарий опасен, я не понимаю... Пожалуйста, объясните.
(Are there any more such scenarios possible in task-event handling which should be reviewed in code ?? )
Надеюсь вышеизложенной информации достаточно....