Операционная система ЗОСРВ «Нейтрино» > Описание базовых компонентов целевой системы > Драйверы > Подсистема ввода-вывода > Последовательные устройства > devc-ser8250



devc-ser8250

Менеджер последовательных 8250-совместимых каналов связи

Синтаксис:

devc-ser8250 [[опции менеджера][опции библиотеки io-char] [порт[^сдвиг][,прерывание]]]... &

Опции:

-a
Автоматическое детектирование поддерживаемых PCI карт и портов, указанных на системной странице. При запуске драйвера с данной опцией не должно быть запущенно других копий devc-ser8250 с данным параметром.
Опция -a поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2024
-b число
Скорость передачи в бодах (по умолчанию – 115200).
-c тактовая_частота[/делитель]
Определить собственную тактовую частоту (в Герцах) и делитель для последовательного порта. Значение по умолчанию (-c 1843200/16) подходит для PC-совместимых последовательных портов.
-D did
Идентификатор ID PCI-устройства.
-i index
PCI индекс (по умолчанию 0).
-m
Отображать физическую память устройства вместо памяти ввода-вывода (x86).
-p [номер_BAR'а]^[сдвиг]
Указать номер BAR'а и смещение внутри BAR'а для доступа к регистрам порта PCI устройства. Используется только при запуске с опциями -V -D -i Номер BAR'а - целое число от 0 до 5 Сдвиг - целое число, смещение относительно начала BAR'а в байтах.
Опция -p поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2024
-T число
Активировать FIFO-буфер передатчика и установить число символов (1, 4, 8 или 14), передаваемых при каждом прерывании на передачу. Значение по умолчанию – 0 (FIFO выключен).
-t число
Активировать FIFO-буфер приемника и установить пороговое число символов (1, 4, 8 или 14) для срабатывания прерывания по получению данных. Значение по умолчанию – 0 (прерывания не инициируются).
-u число
Добавить номер число к префиксу имени устройства (/dev/ser). Значение по умолчанию – 1; дополнительным устройствам присваиваются номера в порядке возрастания.
-V vid
Идентификатор вендора PCI-устройства.
-K число
Тип контроллера устройства (по умолчанию - '0'). Значение '1' используется для контроллеров HSUART. Для остальных контроллеров - '0'
Опция -K поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2024
порт
Шестнадцатеричный адрес порта ввода-вывода (для систем x86) или адрес физической памяти последовательного порта (для PowerPC и MIPS).
сдвиг
Разнесение регистров устройства, выраженное степенью числа 2. Например:
0 (по умолчанию)
Регистры разнесены на 1 байт.
1
Регистры разнесены на 2 байта.
2
Регистры разнесены на 4 байта.
n
Регистры разнесены на 2n байтов.
прерывание
Используемое этим портом прерывание задается шестнадцатеричным числом (если введен префикс 0x) или десятичным числом (если префикс отсутствует).

Опции библиотеки io_char:

Поддерживаемые опции можно найти в статье Опции io-char.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:


Caution: Для запуска этого драйвера необходимо войти в систему под учетной записью root.

Драйвер devc-ser8250 является небольшой программой для администрирования устройств с последовательным интерфейсом в ЗОСРВ «Нейтрино». Он может работать с любым числом последовательных портов, использующих микросхемы серии 8250, 14450 или 16550. Каждому устройству может быть назначено собственное прерывание, либо устройства могут совместно использовать одно прерывание при условии, что аппаратные средства поддерживают режим разделения прерываний. Если порты ввода-вывода для устройств в системе x86 не указаны, то devc-ser8250 использует стандартные PC-порты COM1 (3f8,4) и COM2 (2f8,3).

При запуске драйвера для PCI устройств с параметрами -V -D -i необходимо указывать каждый открываемый порт на карте с помощью опции -p с указанием номера BAR'а и смещением внутри BAR'а.

При запуске драйвера с указанием опции -a происходит автоматическое детектирование портов, указанных на системной странице. Также автоматически детектируются поддерживаемые PCI карты. Запуск с данной опцией возможен только для одной копии драйвера.


Note: Драйвер может работать с универсальными асинхронными приемопередатчиками (UART), совместимыми с устройствами 8250.

Приоритет драйвера устройств с последовательным интерфейсом приводится в соответствие с приоритетом клиента. Все внутренние события обрабатываются с приоритетом 24 (соответствует приоритету внутренней обработки импульсов). Приоритет обработки событий жестко запрограммирован и не может устанавливаться ни одной из перечисленных опций. (Для изменения приоритета требуется изменение программы main.c драйвера.)

При взаимодействии драйвера с клиентским приложением он работает с приоритетом клиента. Вся остальная обработка выполняется либо с приоритетом 24r, либо по прерыванию.

Каждому устройству присваивается имя в пространстве путевых имен /dev/sern, где n принимает значения в порядке возрастания, начиная с 1, которое можно изменить с помощью опции -u. Результат использования последовательных PC-портов по умолчанию:

Устройство Порт Прерывание
/dev/ser1 3f8 4
/dev/ser2 2f8 3


Note: Если в приложении используется консоль /dev/console, следует создать ее привязку к одному из устройств (/dev/ser1, /dev/ser2, ...) путем добавления в файл построения образа, используемый в команде mkifs подобной строки:

[type=link] /dev/console = /dev/ser1


Полное управление всеми устройствами осуществляется с использованием прерываний, и по умолчанию устройства поддерживают стандартное аппаратное управление обменом данными на входе и выходе (RTS/CTS). Это управление можно деактивировать с помощью опции -F.


Note: В редактируемом режиме аппаратное управление обменом данными не поддерживается.

По умолчанию запрос на чтение выдается при доступности по крайней мере одного символа. Для повышения эффективности можно использовать три параметра, управляющие ответами на запросы на чтение:

Time
Возвратить по истечении указанного интервала времени.
Min
Возвратить при нахождении во входном буфере указанного числа символов.
Char
Возвратить при нахождении во входном буфере этого символа пересылки.


Note: Если значение Min превышает размер входного буфера, оно уменьшается до размера буфера. Для предотвращения такой ситуации размер входного буфера можно изменить с помощью опции -I.

Эти параметры устанавливаются с помощью библиотечных подпрограмм (см. tcgetattr(), tcsetattr(), readcond() и TimerTimeout()).

Менеджер последовательных портов поддерживает режим необработанных входных данных и редактируемый режим, то есть действует как реальный терминал ввода-вывода.

В структуре termios поддерживаются следующие поля и флаги:

Поле Поддерживаемые флаги
c_cc Все символы
c_iflag BRKINT ICRNL IGNBRK IXON
c_oflag OPOST
c_oflag CLOCAL CSIZE CSTOPB PARENB PARODD
c_lflag ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH

Поддерживаемые устройства:

PCI-устройства:

Прочие устройства:

Примеры:

Запуск администратора devc-ser8250; с автоматическим детектированием портов, поддерживаемых PCI карт и портов, указанных на системной странице:

devc-ser8250 -a &

Запуск администратора devc-ser8250; с автоматическим детектированием портов, изменяется скорость двоичной передачи в бодах – устанавливается скорость 38400 вместо скорости по умолчанию 115200:

devc-ser8250 -a -b 38400 &

Запуск администратора devc-ser8250 с пятью портами (для последних четырех портов установлена скорость 38400 бод):

devc-ser8250 3f8,4 -b 38400 280,3 288,3 290,3 298,3 &

Можно указать несколько опций -F и -f; действие этих опций зависит от их расположения и распространяется на указанный после них последовательный порт:

devc-ser8250 -F 3f8,4 -f 2f8,3 &

Запуск администратора devc-ser8250 с двумя портами (ser3, ser4):

devc-ser8250 -u3 1030,10 -u4 1028,10 &

Запуск администратора devc-ser8250 для PCI карты по VID,DID с двумя портами: BAR0 и смещением 2 (/dev/ser12), BAR1 и смещением 0 (/dev/ser13):

devc-ser8250 -V0x9710 -D0x9835 -u12 -p0^2 -u13 -p1^0 &

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», Драйверы

Тематические ссылки:

devc-*




Предыдущий раздел: Драйверы