用户空间中的串行驱动程序

时间:2019-01-02 08:19:09

标签: linux-kernel kernel-module pci

是否可以在用户空间中编写串行驱动程序,但是该设备在系统中是否作为常规串行驱动程序/dev/ttyS0出现?

整个故事是,我们有一个pci Express fpga,pci Express fpga后面有多个设备:串行设备,canbus,i2c,mdio等。

我想将其实现为uio_pci_generic,但是串行驱动程序有点问题,因为我们宁愿将其显示为常规串行/dev/ttyS0

如果上述操作不可行:是否可以在内核(串行)中实现某些pci设备,并在用户空间中实现其他pci设备?就中断而言有问题吗?

感谢任何想法。

2 个答案:

答案 0 :(得分:1)

是的,您可以使用pty完成此操作。用户模式驱动程序将打开pty的主端,而要使用串行端口的应用程序将打开从属端。搜索Linux pty。

答案 1 :(得分:1)

在任何需要使用中断的地方,都需要为内核空间而不是用户空间编写代码。中断处理程序需要在原子上下文中提供服务,并且用户空间无法提供原子上下文。第二件事-如果您需要编写HAL层-它也必须写在内核空间中。