您好,我之前有一个用 C++ 构建的应用程序。

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

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

由于现在带串口的PC越来越少,如果我使用PCI扩展串口,软件还会直接访问串口吗?

谢谢

最佳答案

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

如果它提供(可能是虚拟的) 16550 UARTregisters 的直接 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/

10-10 04:15