Я ничего не знаю о коде Тесла, но я прочитал другой код в реальном времени и проанализировал временные ошибки в нем.Основная идея заключается в том, что если вы проверяете что-то каждую миллисекунду, вы всегда будете реагировать на изменения в течение миллисекунды.Самая простая из возможных систем реального времени имеет «циклический руководитель», построенный на основе повторяющегося графика, который говорит ему, что делать, когда он разработан таким образом, что во всех возможных случаях все, с чем нужно иметь дело, решается в установленные сроки.Традиционно вы беспокоитесь о времени процессора здесь, но не обязательно.Система, на которую я смотрел, больше всего пострадала от расписания для последовательной шины под названием 1553 (https://en.wikipedia.org/wiki/MIL-STD-1553)-, почти не было достаточно времени, чтобы все передать и получить вовремя.
Этослишком прост, потому что он не справляется с редкими событиями, с которыми нужно иметь дело очень быстро, такими как реакция на прерывания. Умные схемы для обработки прерываний не имеют такого большого преимущества, как вы ожидаете, потому что часторедкий наихудший случай, когда умная схема не справляется с циклическим исполнением, а код реального времени должен работать в худшем случае, но на практике вам нужно что-то с обработчиками прерываний и процессами с высоким приоритетом, которые должны выполняться по требованию и с процессами с низким приоритетомэто может быть проигнорировано, когда другие вещи должны установить крайние сроки, но будут выполняться иначе. Существуют различные схемы и методологии для утверждения, что эти более сложные системы всегда будут выполнять свои крайние сроки. Одна из самых известных - https://en.wikipedia.org/wiki/Rate-monotonic_scheduling. См.также https://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling.
Операционная система с открытым исходным кодом в реальном времени, которая использовалась в реальной жизни: https://en.wikipedia.org/wiki/RTEMS.