AUTOSAR: рекомендуется напрямую вызывать runnable из планировщика?

Я открываю для себя мир AUTOSAR.

Мой вопрос о коде:

Я понял, что исполняемые объекты SW-C вызываются из RTE с использованием API-интерфейсов RTE в соответствии с событиями (init, хронирование, получение данных). Можно ли напрямую вызывать исполняемый объект (как мы вызываем функцию) из планировщика, например, после синхронного события (например, в TopDeadCenter движка). Я думаю, что это "переопределит" RTE, опасно ли так действовать?

2 ответа

В общем, если вы хотите обойти то, что делает RTE, вы, вероятно, не разрабатываете вещи, как задумано Autosar.

Непосредственное обращение к исполняемым объектам SWC является довольно серьезным нарушением этой концепции. Runnables являются планируемыми объектами, предназначенными для планирования ОС косвенно через RTE. RunEable должен быть активирован RTE в ответ на RTEEvent или несколько таких событий.

Обход RTE нарушит гарантии параллелизма и повторного входа, которые предоставляет RTE, а также согласованность данных, которые RTE предоставляет в отношении любых данных, считываемых / записываемых исполняемым файлом.

Если вы хотите вызвать runnable в ответ на событие, и это событие обнаружено другим SWC, вы должны использовать связь клиент / сервер. Ваш исполняемый файл станет операцией на сервере и будет вызываться через точку вызова. В этом случае "связь клиент-сервер" - это то, что вы должны посмотреть в спецификации, чтобы понять это.

Это никогда не является хорошей идеей, чтобы обойти RTE, поскольку это гораздо больше, чем просто отправка вызовов.

Взгляните на многоуровневую структуру AUTOSAR Architecture; Ваше RunnableEntity (Приложение) и Планировщик BSW (Системные службы) находятся "на двух этажах". Так что не надо.:)

Другие вопросы по тегам