[英]Porting DOS program to linux to read/write serial port over usb
我有旧的DOS
程序,它与串口一起使用。 我需要将它移植到linux
。 我通过USB将我的串行设备连接到linux(使用rs232电缆)。 它显示为/ dev / ttyUSB0。
我可以使用功能inb
, outb
(而不是DOS
相当于INP,OUTP)来读取或从我的代码在设备写什么呢? ( inb
和outb
为低级读取字节写入特定的端口地址特殊功能)。 我不明白如何确定正确的端口号。
也许还有另一种方法 - 例如打开文件'/ dev / ttyUSB0'。 但在这种情况下,我在读取设备寄存器时遇到问题,例如调制解调器控制寄存器(MCR)或线路状态寄存器(LSR)。
您可以使用inb / outb或mmap(例如devmem,取决于架构)作为板载标准串行端口,但不建议用户使用。 您需要root权限,可能会导致与内核驱动程序冲突,您必须确保您的硬件(例如16C550)与您的代码完全兼容。
在添加串口时可以使用udev规则或旧的热插拔来触发程序。 要确定USB串口转换器的端口,您可以使用USB总线ID和端口ID。 您可以通过lsusb -t
命令检查数字。
您可以从picocom源代码中学习
实时应用可能存在的问题:USB总线轮询和进程/线程切换引起的延迟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.