是否可以在用户空间中编写串行驱动程序,但是该设备在系统中是否作为常规串行驱动程序/dev/ttyS0
出现?
整个故事是,我们有一个pci Express fpga,pci Express fpga后面有多个设备:串行设备,canbus,i2c,mdio等。
我想将其实现为uio_pci_generic
,但是串行驱动程序有点问题,因为我们宁愿将其显示为常规串行/dev/ttyS0
。
如果上述操作不可行:是否可以在内核(串行)中实现某些pci设备,并在用户空间中实现其他pci设备?就中断而言有问题吗?
感谢任何想法。
答案 0 :(得分:1)
是的,您可以使用pty完成此操作。用户模式驱动程序将打开pty的主端,而要使用串行端口的应用程序将打开从属端。搜索Linux pty。
答案 1 :(得分:1)
在任何需要使用中断的地方,都需要为内核空间而不是用户空间编写代码。中断处理程序需要在原子上下文中提供服务,并且用户空间无法提供原子上下文。第二件事-如果您需要编写HAL层-它也必须写在内核空间中。