Сколько времени может занять поток, который блокируется при получении из последовательного порта RS232, для пробуждения?
В зависимости от режима (например, канонического) процесс может ждать вечно (например, для символа EOL).
Я хочу знать, будет ли поток быть разбуженным в течение микросекунд после прерывания UART, поражающего ядро, или
Конец кадра (т. е. стоп-бит) на проводе является лучшей (т. е. непротиворечивой) контрольной точкой.
" Прерывание UART, попадающее в ядро ", является плохой контрольной точкой, учитывая, что создание и обработка прерываний могут быть отложены.
FIFO UART может не генерировать прерывание для каждого символа / байта.
Контроллер прерываний назначает приоритеты ожидающим прерываниям, а UART редко присваивается высокий приоритет.
Программное обеспечение может отключать прерывания для критических областей.
, придется ли ему ждать следующего Временной интервал 100 мс на процессоре.
Выполняемый процесс с наивысшим приоритетом получает управление после завершения системного вызова.
Ссылка: Linux Разработка ядра: вытеснение и переключение контекста :
Consequently, whenever the kernel is preparing to return to user-space, either
on return from an interrupt or after a system call, the value of need_resched
is checked. If it is set, the scheduler is invoked to select a new (more fit)
process to execute.
Я стремлюсь минимизировать Linux последовательную задержку между полученным стоп-битом и стартовым битом ответа из высокоприоритетного потока пользовательского пространства.
Я подозревал, что это то, что вы действительно ищете.
Конфигурация последовательного терминала имеет решающее значение для минимизации таких широт. Например, исследуйте флаг ASYNC_LOW_LATENCY .
Однако конфигурация ядра Linux может дополнительно улучшить / минимизировать такую задержку, например, этот разработчик сообщает уменьшение величины от миллисекунд до всего ~ 100 микросхем c.
Я знаком только с последовательными интерфейсами на микроконтроллерах ATMEGA и STM32 ...
Тогда обязательно ознакомьтесь Linux серийные драйверы .