我想知道嵌入式系统代码中如何使用事件。
主要目的是了解事件标志在代码中的设置/重置方式。以及如何识别哪个任务正在使用哪个事件标志以及标志的哪些位被每个任务设置/重置。
请提出您的建议或意见。
提前致谢。
(编辑1:从下面的答案中的澄清复制)
很抱歉没有指定所需的详细信息。实际上,我对使用 vxworks/Itron/OSEK OS 分析任何用 C 语言编写的应用程序很感兴趣。例如 vxworks 中有 eventLib 库来支持事件处理。我想知道如何利用这样的系统例程来处理任务中的事件。什么是事件标志(是全局/本地......还是什么?),如何设置任何事件标志的位以及任务和事件标志之间可能的关系?
任务如何在 AND 和 OR 模式下等待多个事件?我遇到了一个示例,其中下面给出的场景看起来很危险,但是为什么呢?
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 ?? )
我希望以上信息足够......