Есть ли способ контролировать размер uart rx fifo в linux программно - PullRequest
1 голос
/ 14 июня 2019

Я пишу программное обеспечение для связи с плохо спроектированным оборудованием.Это оборудование может связываться с linux pc (ядро 4.15) по линии RS485 (9600 8N1) и имеет очень короткое время: ПК должен ответить через 2 мс после получения запроса от устройства.

Я смог решить эту задачу, используяФлаг LOW_LATENCY и файл / sys / class / tty / ttySx / rx_trig_bytes.

После открытия порта «rx_trig_bytes» содержимое файла меняется на «14», поэтому мне нужно написать «1» после открытия порта, чтобы получить хорошую задержку ответа.

Есть ли способ сделатьэто вызовом API или исправить это после загрузки системы / загрузки драйвера?Текущая реализация выглядит ужасно: (

1 Ответ

1 голос
/ 14 июня 2019

Забавно, что вы считаете этот путь уродливым, учитывая, что в Unix все файлы, это должно быть разумно.

Полагаю, вы имеете право на собственное эстетическое чувство.

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

...