您好,我之前有一个用 C++ 构建的应用程序。
它用于通过串行端口控制设备。
我记得开发它的那个人说他的软件是直接访问串口(直接访问内存)。
由于现在带串口的PC越来越少,如果我使用PCI扩展串口,软件还会直接访问串口吗?
谢谢
最佳答案
这在一定程度上取决于您的 PCIe 串行端口有多少向后兼容的驱动程序支持。
如果它提供(可能是虚拟的) 16550 UART 的 registers 的直接 I/O 空间映射,您将需要更改软件中的“基址”,但它可能会起作用。如果驱动程序不这样做,那么它就不会工作。
前四个标准串行端口具有以下基地址和与之关联的中断:
| base IRQ
-----------------
COM1 | 0x3f8 IRQ4
COM2 | 0x2f8 IRQ3
COM3 | 0x3e8 n/a
COM4 | 0x2e8 n/a
该软件可能应该被重写以使用对端口的更高级别的访问。
关于c++ - 直接访问PCI串口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10848253/