Operating system 无驱动程序直接寻址外部硬件?

Operating system 无驱动程序直接寻址外部硬件?,operating-system,driver,hardware,modbus,Operating System,Driver,Hardware,Modbus,是否可以在不使用驱动程序的情况下访问外部硬件,即在程序和外部设备之间没有驱动程序抽象层 您能否通过在程序代码中直接实现自己的驱动程序(如控制/处理)来使用设备 我试图理解一个实现Modbus协议的程序和一些非常具体的Modbus配置。现在我不知道它是如何与Modbus设备通信的。 在我看来,这与司机的工作非常相似 但是它甚至可以在没有安装驱动程序的情况下直接与设备通信吗?是的,有几个微内核操作系统总是以这种方式配置——驱动程序完全在内核之外实现。 您可能需要的第一件事是访问设备的寄存器;通常使用

是否可以在不使用驱动程序的情况下访问外部硬件,即在程序和外部设备之间没有驱动程序抽象层

您能否通过在程序代码中直接实现自己的驱动程序(如控制/处理)来使用设备

我试图理解一个实现Modbus协议的程序和一些非常具体的Modbus配置。现在我不知道它是如何与Modbus设备通信的。 在我看来,这与司机的工作非常相似


但是它甚至可以在没有安装驱动程序的情况下直接与设备通信吗?

是的,有几个微内核操作系统总是以这种方式配置——驱动程序完全在内核之外实现。 您可能需要的第一件事是访问设备的寄存器;通常使用mmap()执行,您可能需要仔细研究一下以找到正确的可缓存性设置,等等。。。 第二个问题是中断。除非您正在运行类似QNX的东西,否则您将无法让中断直接向您的程序发出信号。您可能需要关闭它们并定期轮询设备

如果您使用的是linux并且需要io端口(inb、outb等),请使用man ioperm了解更多信息