无需 driver 直接寻址外部硬件?
Adress external Hardware directly without driver?
是否可以在不使用 driver 的情况下访问外部硬件,即在程序和外部设备之间没有 driver 抽象层?
您可以通过直接在您的程序代码中实现自己的 driver-like controlling/handling 来使用设备吗?
我试图理解一个实现 Modbus 协议和一些非常具体的 Modbus 配置的程序。现在我不知道它究竟是如何与 Modbus 设备通信的。
在我看来,这与 driver 所做的非常相似。
但它甚至可以 DIRECTLY 与未安装 driver 的设备通信吗?
是的,有几个微内核 OS 始终以这种方式配置 -- 驱动程序完全在内核之外实现。
您可能需要做的第一件事是访问设备的寄存器;通常使用 mmap() 执行,您可能需要深入挖掘才能找到缓存能力等的正确设置...
第二个问题是中断。除非你是 运行 QNX 之类的人,否则你将无法让中断直接向你的程序发出信号。您可能需要关闭它们并定期轮询设备。
如果您正在使用 linux 并且需要 io 端口(inb、outb 等...)man ioperm 以获取更多信息。
是否可以在不使用 driver 的情况下访问外部硬件,即在程序和外部设备之间没有 driver 抽象层?
您可以通过直接在您的程序代码中实现自己的 driver-like controlling/handling 来使用设备吗?
我试图理解一个实现 Modbus 协议和一些非常具体的 Modbus 配置的程序。现在我不知道它究竟是如何与 Modbus 设备通信的。 在我看来,这与 driver 所做的非常相似。
但它甚至可以 DIRECTLY 与未安装 driver 的设备通信吗?
是的,有几个微内核 OS 始终以这种方式配置 -- 驱动程序完全在内核之外实现。 您可能需要做的第一件事是访问设备的寄存器;通常使用 mmap() 执行,您可能需要深入挖掘才能找到缓存能力等的正确设置... 第二个问题是中断。除非你是 运行 QNX 之类的人,否则你将无法让中断直接向你的程序发出信号。您可能需要关闭它们并定期轮询设备。
如果您正在使用 linux 并且需要 io 端口(inb、outb 等...)man ioperm 以获取更多信息。