Событие Autosar Rte_Receive с состоянием ожидания и активацией задачи

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

У меня есть периодическая задача 100 мс, и я хочу иметь RTE_Receive с состоянием ожидания в этой задаче. Это означает, что как только происходит соответствующее событие, моя задача переходит в активно-готовое состояние.

Означает ли это, что задача запускается в том же цикле (когда происходит событие) или она ждет следующего цикла 100 мс для запуска задачи? Я просто хочу определить наихудшую задержку. Если реализация Receive-wait лучше, чем просто RTE_read (который просто обрабатывает данные в следующем доступном цикле)

Извините, если вопрос звучит слишком глупо. Я просто пытаюсь изучить концепции AUTOSAR.


person Sri    schedule 10.04.2018    source источник


Ответы (1)


Похоже, есть какое-то недоразумение.

Согласно вашему примерному сценарию, задача периодически активируется и запускается даже до того, как будет выполнен Rte_Receive() API, блокирующий или нет. В конце концов, вызов API Rte_Receive() выполняется в коде RunnableEntity, выполняемого как часть тела задачи.

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

person Uwe Honekamp    schedule 10.04.2018
comment
Когда я снова прочитал свой вопрос, я понял, что не очень ясно выразился. Я знаю, что он периодически активируется. Я имею в виду, что если задача находится в состоянии ожидания? и происходит событие приема, задача возобновляется немедленно или она ожидает следующего периодического выполнения из ОС? - person Sri; 11.04.2018