【发布时间】:2013-03-27 07:03:00
【问题描述】:
我的问题是——如何在 uCLinux 2.6.21 中同步调用 write(),即在发送结束之前调用未完成? 现在我有以下代码:
//...
fd = open (PORT, O_RDWR | O_SYNC)
//...
FIO3CLR |= 0x30000000; // RTS = 0 (enable transfer)
write (fd, "A", 1) // pass
FIO3SET |= 0x30000000; // RTS = 1 (disable transfer)
命令FIO3SET |= 0x30000000; 在调用write() 后几乎立即开始执行,因为该任务是不可取的。
谢谢。
【问题讨论】:
-
我认为
O_SYNC只对磁盘文件有意义,对其他I/O流没有意义。 -
您没有定义
FIO3CLR是什么。 -
既然你声称使用的是Linux,我怀疑
FIO3SET |= 0x30000000;没有任何意义。您不应该调用ioctl()或类似函数来处理串行线TTY 吗? -
巴尔玛,你完全正确。
-
Basile Starynkevitch,它在文件顶部的#include
中定义