2016-03-21 16 views
1

Я читал о разработке компонента программного обеспечения Autosar. Я все еще путаюсь о WaitPoint и Event о внутреннем поведении. В чем основные отличия между WaitPoint и Event в программном компоненте AUTOSAR? и будет здорово, если вы сможете показать мне образец кода c в соответствии с ними.WaitPoint и событие

ответ

2

Event в AUTOSAR имеет два разных значения в отношении программных компонентов. Либо он вызывает RunnableEntity, либо разрешает WaitPoint. Если инициируется RunnableEntity, например. по DataReceivedEvent Rte активирует ваш RunnableEntity, а затем вы можете вызвать Rte_Read(), чтобы прочитать данные. Второй случай заключается в том, что вы определяете WaitPoint для этого RunnableEntity и разрешаете DataReceivedEvent. Если вы затем вызовете Rte_Receive(), функция будет блокироваться до тех пор, пока не будут получены новые данные.

Обычно такая функция реализуется с помощью OSEK WaitEvent(), и если Rte принимает данные, он будет использовать функцию OSEK SetEvent на активацию задачи, называемой WaitEvent().

+0

① Итак, 'Rte_Receive()' всегда сопряжен с 'WaitPoint'? ② Что произошло, когда я вызывал 'Rte_Receive' или' Rte_Read' без указания 'WaitPoint' или' Event' на RunnableEntity? –

+0

Вы можете заблокировать или не блокировать 'Rte_Receive()'. Если у вас нет 'WaitPoint', он всегда не блокируется. С 'Rte_Read' возможна только неблокировка. Вы можете настроить 'Rte_Read' или' Rte_Receive' даже без 'DataReceivedEvent'. – ZzetT