直接访问PCI串口

Cyr*_*ril 5 c c++ windows serial-port

您好,我有一个很久以前用C++构建的应用程序.

它用于通过串行端口控制设备.

我记得那个开发它的人说他的软件直接访问串口(直接访问内存).

由于具有串行端口的PC现在变得罕见,如果我使用PCI扩展串口,软件是否仍然可以直接访问串口?

谢谢

unw*_*ind 1

这在一定程度上取决于您的 PCIe 串行端口有多少向后兼容的驱动程序支持。

如果它提供(可能是虚拟的) 16550 UART寄存器直接 I/O 空间映射,您将需要更改软件中的“基地址”,但它可能会起作用。如果驱动程序不这样做,那么它就无法工作。

前四个标准串行端口具有以下基址和与其关联的中断:

     | base   IRQ 
-----------------
COM1 | 0x3f8  IRQ4
COM2 | 0x2f8  IRQ3
COM3 | 0x3e8  n/a
COM4 | 0x2e8  n/a
Run Code Online (Sandbox Code Playgroud)

该软件可能应该被重写以使用对端口的更高级别的访问。