[英]IPC pipe through files /dev/ttyS0 and /dev/ttyS1
我想通過串口dev文件執行IPC管道。 這是我首先要使用的要求
sudo socat /dev/ttyS0,raw,echo=0,crnl /dev/ttyS1,raw,echo=0,crnl
它給出了如下錯誤
2014/12/xx 10:33:19 socat[17848] E tcgetattr(4, 0x7fffe76ecaa0): Input/output error
一旦ttyS0和ttyS1連接起來,我假設我們可以像使用pipe()一樣執行讀/寫操作,我將有兩個程序peer0.c和peer1.c,peer0.c打開/ dev / ttyS0和peer1。 c打開/ dev / ttyS1,因此讀寫操作應如下
peer0=>ttyS0--->---ttyS1=>peer1
peer0<=ttyS0---<---ttyS1<=peer1
由於/ dev / ttyS(0/1)是系統范圍的,因此我可以在一個終端中運行peer0.c程序,在另一終端中運行peer1.c,
基本上,我有一個基於Linux的嵌入式應用程序,當移植到目標硬件時,它將由基於Linux的PC通過minicom UART接口進行控制。 目標打開其ttyS0以讀取從PC發送的uart數據,在PC中,命令將通過minicom發送到目標。 現在,我想在一個終端中的同一台PC上運行目標應用程序,並希望從另一個終端/ minicom發送命令。 同樣,通信應該是雙向的
有可能實現這個目標嗎? 還是有其他類似的方法可以達到相同目的?
提前致謝
如果只想傳輸文件,請使用協議通過串行鏈接進行傳輸,例如ZMODEM( http://en.wikipedia.org/wiki/ZMODEM ),如果要完整的IPC,請通過鏈接建立PPP連接( http://en.wikipedia.org/wiki/Point-to-Point_Protocol )
peer0=>ttyS0--->---ttyS1=>peer1 peer0<=ttyS0---<---ttyS1<=peer1
您似乎希望socat
參與上述--->---
和---<---
。 這是不可能的,因為socat
必須打開ttyS0
和ttyS1
並與peer0
爭奪ttyS0
輸入,並與peer1
爭奪ttyS1
輸入。 要實現通過另一個端口與一個串行端口上的應用程序進行通信的目標,只需用一根空調制解調器電纜連接兩個端口即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.