Вениамин, я рад, что тебе снова понравилось.

По моему опыту, RTOS использовалась только для управления процессором, а не оперативной памятью. Это означает, что планировщик RTOS определяет, какую задачу запускать. Триггерами для задач могут быть таймеры или сигналы тревоги для циклических задач и события для входящих данных шины (CAN, FlexRay). Итак, цепочка активации выглядит так:

Таймер запускает тревогу RTOS —> тревога запускает задачу —> задача переходит в состояние активации/ожидания —> планировщик решает запустить задачу в соответствии с ее приоритетом и состоянием других задач.

В приложении, критичном для безопасности, вы также хотите знать, каков максимальный промежуток времени, когда выполняется определенная задача после ее активации, чтобы быть уверенным, что механизм безопасности будет эффективным. Это приводит к использованию в основном кооперативной модели многозадачности и отказу от упреждающей многозадачности. Совместные задачи не приостанавливаются, кроме как по прерываниям и когда они сами передают управление планировщику. Упреждающая многозадачность — это модель, к которой вы привыкли на ПК и т. д.

Ваш вопрос тестирования: у нас есть рекомендации, например. как долго может выполняться невыгружаемая функция и регулярно измерять это время. Затем мы также проводим обширный анализ кода/архитектуры/безопасности, обзоры и тестирование. По крайней мере, в теории. Реальность не всегда такой идеальный мир, совсем нет, к сожалению. Если вы хотите узнать больше о состоянии разработки программного обеспечения для автомобилей, вы можете послушать http://developeronfire.com/103.