等待点和事件

WaitPoint and Event

我一直在阅读有关开发 Autosar 软件组件的内容。我仍然对 WaitPointEvent 的内部行为感到困惑。 AUTOSAR 软件组件中 WaitPointEvent 之间的主要区别是什么?如果你能根据他们给我看一个c代码示例就太好了。

AUTOSAR 中的Event 对于软件组件有两种不同的含义。它要么触发 RunnableEntity,要么解析 WaitPoint。如果 RunnableEntity 被触发,例如通过 DataReceivedEvent Rte 将激活您的 RunnableEntity 然后您可以调用 Rte_Read() 来读取数据。第二种情况是当您为 RunnableEntity 定义一个 WaitPoint 并让 DataReceivedEvent 解析它时。如果您随后调用 Rte_Receive() 函数将阻塞,直到收到新数据。

通常,这样的功能是由OSEK WaitEvent() 实现的,如果Rte 接收到数据,它将使用OSEK SetEvent 函数来唤醒调用WaitEvent() 的任务。