Я читал о разработке компонента программного обеспечения Autosar. Я все еще путаюсь о WaitPoint
и Event
о внутреннем поведении. В чем основные отличия между WaitPoint
и Event
в программном компоненте AUTOSAR? и будет здорово, если вы сможете показать мне образец кода c в соответствии с ними.WaitPoint и событие
1
A
ответ
2
Event
в AUTOSAR имеет два разных значения в отношении программных компонентов. Либо он вызывает RunnableEntity
, либо разрешает WaitPoint
. Если инициируется RunnableEntity
, например. по DataReceivedEvent
Rte активирует ваш RunnableEntity
, а затем вы можете вызвать Rte_Read(), чтобы прочитать данные. Второй случай заключается в том, что вы определяете WaitPoint
для этого RunnableEntity
и разрешаете DataReceivedEvent
. Если вы затем вызовете Rte_Receive(), функция будет блокироваться до тех пор, пока не будут получены новые данные.
Обычно такая функция реализуется с помощью OSEK WaitEvent()
, и если Rte принимает данные, он будет использовать функцию OSEK SetEvent
на активацию задачи, называемой WaitEvent()
.
① Итак, 'Rte_Receive()' всегда сопряжен с 'WaitPoint'? ② Что произошло, когда я вызывал 'Rte_Receive' или' Rte_Read' без указания 'WaitPoint' или' Event' на RunnableEntity? –
Вы можете заблокировать или не блокировать 'Rte_Receive()'. Если у вас нет 'WaitPoint', он всегда не блокируется. С 'Rte_Read' возможна только неблокировка. Вы можете настроить 'Rte_Read' или' Rte_Receive' даже без 'DataReceivedEvent'. – ZzetT