У меня есть fpga, подключенная к PCI .
За fpga находятся различные устройства: последовательные, устройства i2c, canbus и др.
Сначала я хотел сделать все это в пользовательском пространстве, используя uio_pci_generic
, но проблема в том, что драйвер последовательного порта следует рассматривать как обычное устройство linux.
Итак, я подумал написать драйвер устройства pci-tty и записать остальные драйверы ( canbus , i2c в пользовательском пространстве).
Итак, для правильной работы моего решения у меня есть следующие предположения:
Я предполагаю, что нет необходимости в uio_pci_generic: если у меня есть свой пользовательский драйвер (для tty -pci), то я смогу получить доступ к памяти из пространства пользователя, верно?
Canbus (который должен быть реализован в пользовательском пространстве) также использует прерывание.
Я предполагаю, что прерывания могут использоваться как в ядре (для драйвера последовательного порта), так и в пользовательском пространстве (доставляется из krnel с использованием механизма опроса), верно?